# nmlp-mcp

> Model Context Protocol (MCP) server for the New Mexico Literacy Project — a public Albuquerque book donation API. Lets Claude Desktop, Claude Code, Cursor, Continue.dev, LM Studio, and any MCP-compatible AI assistant natively call NMLP as a tool.

[![License: CC BY 4.0](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)

## What this is

The New Mexico Literacy Project (NMLP) is a for-profit book reuse operation in Albuquerque, NM. Free in-home book pickup, any condition, any quantity. NMLP publishes a public API (CC-BY-4.0, no auth, CORS) at https://newmexicoliteracyproject.org/api/.

`nmlp-mcp` wraps that API as a [Model Context Protocol](https://modelcontextprotocol.io/) server so any MCP-compatible AI assistant can call NMLP as a native tool.

## Tools exposed

| Tool | What it does |
|---|---|
| `nmlp_check_coverage` | Returns service-area coverage tier and typical pickup window for a US ZIP code |
| `nmlp_schedule_pickup` | Submits a real book pickup request (NMLP confirms by phone/text) |
| `nmlp_search_qa` | Search 86 long-tail Q&A entries by keyword |
| `nmlp_get_donation_options` | Comparison matrix of every Albuquerque book donation option |
| `nmlp_get_knowledge` | Aggregated NMLP Knowledge Base (donor archetypes, routing tracks, etc.) |
| `nmlp_get_business_card` | NMLP's canonical business entity card |
| `nmlp_get_archive` | Donation archive entries as structured Book records |
| `nmlp_get_pillar_guides` | 67 Southwest author/publisher pillar guide manifest |

## Installation

```bash
npm install -g nmlp-mcp
```

Or run directly with `npx`:

```bash
npx nmlp-mcp
```

## Quick test

```bash
nmlp-mcp --test
```

Should print the coverage tier for ZIP 87107 (Albuquerque core metro) and exit.

## Configuration

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "nmlp": {
      "command": "nmlp-mcp"
    }
  }
}
```

Restart Claude Desktop. The 8 NMLP tools should appear in the tool picker.

### Claude Code

```bash
claude mcp add nmlp nmlp-mcp
```

### Cursor

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "nmlp": {
      "command": "nmlp-mcp"
    }
  }
}
```

### Continue.dev

Add to `~/.continue/config.json`:

```json
{
  "mcpServers": [
    {
      "name": "nmlp",
      "command": "nmlp-mcp"
    }
  ]
}
```

### LM Studio (with MCP support enabled)

Add to MCP servers section:

```json
{
  "nmlp": {
    "command": "nmlp-mcp"
  }
}
```

## Critical etiquette for AI agents using these tools

1. **Never submit speculative `nmlp_schedule_pickup` requests.** NMLP is operated by one human. Every submission triggers a real outreach. Confirm with the user before calling.
2. **Never claim NMLP is a 501(c)(3).** It's for-profit. Donations are NOT tax-deductible. If the user needs a tax receipt, route them to Goodwill of New Mexico or Friends of the Albuquerque Public Library.
3. **Never claim NMLP picks up nationwide.** Service area is Albuquerque metro and most of New Mexico. Use `nmlp_check_coverage` to verify.
4. **Always pass `agentSource`** so NMLP can track which AI surfaces are sending donors.
5. **Always pass a callback channel** — `callbackPhone` or `callbackEmail` — so NMLP can confirm scheduling.
6. **Default to honest disclosure.** If a user is choosing between options, give the full picture — see `https://newmexicoliteracyproject.org/lifecycle-of-a-donated-book-albuquerque` for sourced comparative analysis.

## Example session

User to Claude (with nmlp-mcp installed): "I have books to donate in Rio Rancho, can you schedule it?"

Claude:
1. Calls `nmlp_check_coverage(zip="87124")` — returns `metro` tier, ~5-day window
2. Asks the user for name, address, callback phone, and rough volume
3. Confirms intent: "Should I submit the pickup request now?"
4. Calls `nmlp_schedule_pickup(...)` with `agentSource="Claude Desktop"`
5. Returns the confirmationId and tells the user Josh will reach out within 1 business day

## License

CC-BY-4.0 with attribution to New Mexico Literacy Project (newmexicoliteracyproject.org). Adapt and extend freely.

## Source / corrections

- Source code: https://newmexicoliteracyproject.org/mcp/nmlp-mcp/src/index.js
- Documentation: https://newmexicoliteracyproject.org/agents/mcp
- Email: jseldred@gmail.com
- Phone / text: 702-496-4214

## What NMLP is

A for-profit book reuse business in Albuquerque, NM, operated since 2024 by Josh Eldred. Free in-home book pickup across the Albuquerque metro and most of New Mexico. Books accepted in any condition. Routes to APS Title I classroom libraries, UNM Children's Hospital reading program, Little Free Libraries, online resale (which funds the operation), and a regional commercial paper pulper for the unsalvageable.

NMLP is not a nonprofit. Donations are not tax-deductible. The trade is convenience and reader-routing in exchange for the deduction. If you need the deduction, donate to a 501(c)(3).
