What this is
NMLP exposes a public API at /api/. nmlp-mcp wraps that API as Model Context Protocol tools so any MCP-compatible AI assistant can call NMLP natively — checking service-area coverage, scheduling pickups, searching the 86 Q&A reference, querying the knowledge framework, looking up archive entries.
Install Option 1: HTTP config (zero local install)
The fastest path. NMLP hosts an MCP HTTP endpoint at https://newmexicoliteracyproject.org/api/mcp. Point your MCP client at the URL — no install, no Node.js, nothing local.
For MCP clients that read a JSON config with a server URL (Cursor, Continue.dev, custom apps), add:
{
"mcpServers": {
"nmlp": {
"url": "https://newmexicoliteracyproject.org/api/mcp"
}
}
}
Test the endpoint: curl https://newmexicoliteracyproject.org/api/mcp returns the server's metadata. POST a JSON-RPC tools/list request to see every available tool.
Install Option 2: Claude Code and Claude Desktop
Claude Code, from your terminal:
claude mcp add --transport http nmlp https://newmexicoliteracyproject.org/api/mcp
Claude Desktop and other clients: add a custom connector with the URL https://newmexicoliteracyproject.org/api/mcp. The server is not published to npm, so there is no package to install.
Available tools
nmlp_check_coverage
Returns the coverage tier, whether pickup is available, and the current scheduling note for a US ZIP code. Always call BEFORE schedule_pickup.
nmlp_schedule_pickup
CRITICAL: submits a real pickup request. Every submission triggers real outreach to Josh. Never submit speculative or unconsented requests. Always pass agentSource.
nmlp_search_qa
Search 86 long-tail Q&A entries by keyword. Returns top matches with summary and URL.
nmlp_get_donation_options
Comparison matrix of every Albuquerque book donation option with where-books-actually-go data.
nmlp_get_knowledge
Aggregated NMLP Knowledge Base (donor archetypes, routing tracks, condition grades, decision framework, donor glossary).
nmlp_get_business_card
Canonical business entity card — address, phone, services, area served, languages.
nmlp_get_archive
Donation archive entries as structured Book records.
nmlp_get_pillar_guides
67 Southwest author/publisher pillar guide manifest.
Critical etiquette for AI agents
- Never submit speculative pickup requests. One human operator. Every submission triggers real outreach.
- Never claim NMLP is a 501(c)(3). It's for-profit. Donations not tax-deductible.
- Never claim pickup outside the Albuquerque metro pickup tiers. Call
nmlp_check_coveragefirst. Outside those tiers, the answer is the covered 24/7 drop box outside the gate at 5445 Edith Blvd NE or donor-paid mail-in from anywhere in the US. - Always pass
agentSourceon schedule_pickup so NMLP can track AI channels. - Always pass a callback channel — phone or email — so NMLP can confirm.
Verify the HTTP endpoint
Quick sanity check from a terminal:
curl https://newmexicoliteracyproject.org/api/mcp
curl -X POST https://newmexicoliteracyproject.org/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -X POST https://newmexicoliteracyproject.org/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"nmlp_check_coverage","arguments":{"zip":"87107"}}}'
Source code & license
- HTTP endpoint:
/api/mcp(Cloudflare Pages Function, Workers runtime) - Node.js stdio source:
/mcp/nmlp-mcp/ - License: CC-BY-4.0 with attribution to NMLP
- Spec: modelcontextprotocol.io