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.
Likely the first local-services organization with a Model Context Protocol server. Bleeding-edge AI infrastructure for a one-person book donation operation in Albuquerque.
Install Option 1 — HTTP (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 support HTTP transport (Claude Desktop with HTTP, Cursor, Continue.dev, custom apps), add to your MCP config:
{
"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 all 8 available tools.
Install Option 2 — Node.js (stdio)
For MCP clients that require stdio transport (current Claude Desktop default), use the Node.js package. Source available at /mcp/nmlp-mcp/.
Once published to npm:
npm install -g nmlp-mcp
Then add to your MCP client config:
{
"mcpServers": {
"nmlp": {
"command": "nmlp-mcp"
}
}
}
Until the npm package is published, install from local source:
git clone https://newmexicoliteracyproject.org/mcp/nmlp-mcp/
cd nmlp-mcp
npm install
npm link
Available tools
nmlp_check_coverage
Returns service-area coverage tier and typical pickup window 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 nationwide coverage. Service area is Albuquerque metro and most of NM.
- 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 source: Cloudflare Pages Function (Cloudflare Workers runtime)
- Node.js stdio source:
/mcp/nmlp-mcp/ - License: CC-BY-4.0 with attribution to NMLP
- Spec: modelcontextprotocol.io