Skip to main content
Glama

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 key

  • Hosted endpoint (Streamable HTTP): https://newmexicoliteracyproject.org/api/mcp

  • Auth: none (public)

  • Official MCP registry: org.newmexicoliteracyproject/nmlp-mcp

  • License: 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

nmlp_identify_first_edition

title (+author) → publisher, year, points of issue, true-first precedence, book-club tells, and a CC-BY citation

nmlp_decode_number_line

copyright-page text → printing verdict (handles the Random-House-ends-in-2 rule + book-club detection)

nmlp_lookup_publisher_rules

publisher → how that house's first editions are identified, by era

nmlp_search_titles

fuzzy title/author search over the dataset

Book-donation logistics for the Albuquerque metro:

Tool

What it does

nmlp_check_coverage

ZIP → free-pickup coverage tier + typical window

nmlp_schedule_pickup

submit a real free book-pickup request (triggers a real human outreach — never send speculative/unconsented requests)

nmlp_search_qa

search the long-tail donation Q&A reference

nmlp_get_donation_options

comparison of every ABQ book-donation option

nmlp_get_knowledge

the aggregated NMLP knowledge base

nmlp_get_business_card

the canonical business-entity card

nmlp_get_archive

documented-provenance archive entries

nmlp_get_pillar_guides

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

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 stdio

Docker

docker build -t nmlp-mcp .
docker run --rm -i nmlp-mcp      # stdio server

Hosted (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/sdk over StdioServerTransport; supports initialize / 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) with ping / 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.


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 tools
nmlp_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

    A4.1/5.0

    Scored across 12 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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).

    Tool Count5/5

    12 tools is well-scoped for the domain—enough to cover key workflows (coverage check, scheduling, identification, reference) without being excessive.

    Completeness5/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Comprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.
      11
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP 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.
      3
      Apache 2.0
    • F
      license
      Not graded
      quality
      C
      maintenance
      MCP 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.
      -