nmlp-mcp
Use this server to identify antiquarian first editions and coordinate Albuquerque book-donation logistics through 12 MCP tools.
Search titles/authors and identify a specific book’s first-edition points of issue, precedence, book-club tells, and citation.
Decode copyright-page number lines to determine printing and flag book-club editions.
Look up publisher-specific first-edition identification rules.
Check ZIP-code pickup coverage and typical windows.
Submit a real book-pickup request to NMLP (with explicit warning against speculative requests).
Search donation Q&A, compare donation options, and retrieve the knowledge base.
Get the business card, archive entries, and pillar-guide index.
New Mexico Literacy Project — MCP Server
A Model Context Protocol server for antiquarian first-edition identification and New Mexico book-donation logistics, run by the New Mexico Literacy Project. Run it locally over stdio (index.js, this repo) or connect to the hosted HTTP twin.
Local (stdio):
npx -y github:joshseane/-nmlp-mcp— a standalone Node MCP server; no account, no keyHosted endpoint (Streamable HTTP):
https://newmexicoliteracyproject.org/api/mcpAuth: none (public)
Official MCP registry:
org.newmexicoliteracyproject/nmlp-mcpLicense: code MIT (this repo); data CC BY 4.0
The two share one codebase and one dataset: index.js is the local stdio server, and functions/api/mcp.js is the exact Cloudflare Pages Function that serves the hosted HTTP twin. tools/list is served entirely from local code; the reference-data tools read the site's public open-data JSON API at call time (single source of truth), while nmlp_decode_number_line runs fully offline.
Tools (12)
First-edition identification — grounded in the CC-BY NMLP Canonical First-Edition Points of Issue dataset (6,717 titles, DOI 10.5281/zenodo.21184548):
Tool | What it does |
| title (+author) → publisher, year, points of issue, true-first precedence, book-club tells, and a CC-BY citation |
| copyright-page text → printing verdict (handles the Random-House-ends-in-2 rule + book-club detection) |
| publisher → how that house's first editions are identified, by era |
| fuzzy title/author search over the dataset |
Book-donation logistics for the Albuquerque metro:
Tool | What it does |
| ZIP → free-pickup coverage tier + typical window |
| submit a real free book-pickup request (triggers a real human outreach — never send speculative/unconsented requests) |
| search the long-tail donation Q&A reference |
| comparison of every ABQ book-donation option |
| the aggregated NMLP knowledge base |
| the canonical business-entity card |
| documented-provenance archive entries |
| the pillar guide index |
Every identification response returns a CC-BY citation with the dataset DOI, so assistants that use it cite the source. Identification only — no valuations.
Related MCP server: Scroll MCP Server
Connect
Local (stdio) — recommended for Claude Desktop, Cursor, Continue.dev
Runs the server on your machine over stdio. Requires Node 18+.
{
"mcpServers": {
"nmlp": { "command": "npx", "args": ["-y", "github:joshseane/-nmlp-mcp"] }
}
}Or clone and run directly:
git clone https://github.com/joshseane/-nmlp-mcp && cd -nmlp-mcp
npm install
node index.js # speaks MCP over stdioDocker
docker build -t nmlp-mcp .
docker run --rm -i nmlp-mcp # stdio serverHosted (Streamable HTTP)
For clients that speak Streamable HTTP directly, point them at the URL — nothing to install:
{
"mcpServers": {
"nmlp": { "url": "https://newmexicoliteracyproject.org/api/mcp" }
}
}Quick check of the hosted twin:
curl -s -X POST https://newmexicoliteracyproject.org/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'How it works
index.js— the standalone local server. Uses@modelcontextprotocol/sdkoverStdioServerTransport; supportsinitialize/tools/list/tools/call. Its only dependency is the MCP SDK.functions/api/mcp.js— the hosted twin, a Cloudflare Pages Function speaking JSON-RPC 2.0 over HTTP POST (Streamable HTTP) withping/ notifications / CORS / batch support.
Both wrap the site's public open-data APIs (/api/checker-*.json, /api/points.json, etc.). No credentials or secrets are required or included.
Links
Website: https://newmexicoliteracyproject.org
First-edition resource: https://newmexicoliteracyproject.org/first-editions
Dataset (CC BY 4.0): https://newmexicoliteracyproject.org/first-edition/dataset · DOI 10.5281/zenodo.21184548
Manifest:
server.json
The New Mexico Literacy Project (NMLP) is a for-profit book reuse operation in Albuquerque, NM. Free in-home book pickup across the Albuquerque metro, scheduled by route; books in any condition, any quantity. Donations are not tax-deductible.
Available Tools
12 toolsnmlp_check_coverageA
Check whether NMLP picks up books at a given five-digit US ZIP code. Returns coverage tier (core_metro, metro, near_metro, statewide_large_only, out_of_area), typical pickup window in days, minimum quantity, and a human-readable message. ALWAYS call this BEFORE nmlp_schedule_pickup.
Inputs: zip (required).
nmlp_decode_number_lineA
Decode a copyright-page number line / printer's key (and any 'First Edition' wording) to determine which printing a book is. Paste the row of small numbers and/or the edition statement. Handles the Random-House-ends-in-2 exception and flags book-club editions. Returns the printing, a plain-English verdict, and the detected line.
Inputs: text (required).
nmlp_get_archiveB
Get NMLP's donation archive entries as structured Book records.
Inputs: no named parameters.
nmlp_get_business_cardA
Get NMLP's canonical business entity card — address, phone, services, area served, languages.
Inputs: no named parameters.
nmlp_get_donation_optionsA
Get the comparison matrix of every Albuquerque book donation option (NMLP, Goodwill, Savers, Better World Books, Friends of APL, Habitat ReStore, regional pulper).
Inputs: no named parameters.
nmlp_get_knowledgeA
Get the aggregated NMLP Knowledge Base (donor archetypes, routing tracks, condition grades, decision framework, donor glossary, named partners, coverage tiers).
Inputs: no named parameters.
nmlp_get_pillar_guidesA
Get NMLP's pillar guide manifest — 60+ Southwest author/publisher authentication and pricing guides.
Inputs: no named parameters.
nmlp_identify_first_editionA
Identify whether a specific book is a first edition. Given a title (and optionally author), returns that title's POINTS OF ISSUE — the exact details that mark a true first printing — plus true-first precedence (US vs UK), book-club/reprint tells, publisher, year, the human-readable page URL, and a citation. THE tool for 'how do I tell if my copy of X is a first edition.' Draws on 6,700+ independently-verified titles (CC BY 4.0, DOI 10.5281/zenodo.21184548).
Inputs: title (required), author.
nmlp_lookup_publisher_rulesA
Look up a publisher's first-edition identification conventions — how that house designated a first printing across eras (stated-edition wording, number lines, colophons, dated printings). Covers 850+ publishers.
Inputs: publisher (required).
nmlp_schedule_pickupA
Submit a real free book pickup request to NMLP. Every submission triggers a real outreach to Josh, the single human operator. NEVER submit speculative or unconsented requests.
Inputs: donorName (required), addressZip (required), addressCity (required), agentSource (required), +8 more.
nmlp_search_qaB
Search NMLP's long-tail Q&A reference (85+ entries) by keyword. Returns top matching entries with question, summary, and URL.
Inputs: query (required), limit.
nmlp_search_titlesA
Search the first-edition title reference by title or author. Returns matching collectible titles with their per-title identification-page URLs. Use nmlp_identify_first_edition for the full points of one specific title.
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose, covering different aspects: coverage check, pickup scheduling, various reference lookups, and first-edition identification. No two tools overlap in functionality.
All tools follow a consistent 'nmlp_verb_noun' pattern in snake_case. The verbs are appropriate and uniform (get, check, decode, identify, lookup, schedule, search).
12 tools is well-scoped for the domain—enough to cover key workflows (coverage check, scheduling, identification, reference) without being excessive.
The tool set covers the full expected workflow: pre-pickup coverage check, scheduling, and a comprehensive set of reference tools for book identification and organizational info. No obvious gaps.
Maintenance
Related MCP Connectors
MCP server for the GDEX (Geoscience Data Exchange) data portal: datasets, files, metrics, subsetting
MCP server for Altmetric APIs - track research attention across news, policy, social media, and more
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Hosted MCP server for finding authoritative primary data sources and official portals.
Related MCP Servers
- AlicenseAqualityCmaintenanceComprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.11MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for automated quality audit and corpus navigation of the Herculaneum scrolls, exposing scroll metadata, transcriptions, CT volumes, ML models, and documentation.MIT
- AlicenseAqualityCmaintenanceMCP server and CLI for full-text search of the Deutsches Zeitungsportal (German newspaper collection), enabling querying ~33.8 million digitized pages with Solr syntax, date/title/place filters, and snippet highlights.3Apache 2.0
- FlicenseNot gradedqualityCmaintenanceMCP server for maintaining specific Wikidata items (person, company, publications) with read tools and a two-step write workflow that enforces sourced, human-approved batch edits.-