Local + hosted MCP server for antiquarian first-edition identification (points of issue, number-line decoding, publisher rules over a CC-BY, DOI-cited dataset of 6,700+ titles / 850+ publishers) and New Mexico book-donation logistics. 12 tools.
NMLP MCP demonstrates solid foundational quality with well-structured tool names, consistent schema patterns, and detailed descriptions for complex domain tasks (first-edition identification). However, gaps in parameter descriptions, missing output schema documentation, and incomplete error handling prevent a higher score. The server excels at domain-specific naming (nmlp_identify_first_edition, nmlp_decode_number_line) and provides genuinely useful context in descriptions. But 3 tools (nmlp_get_knowledge, nmlp_get_donation_options, nmlp_get_archive, nmlp_get_pillar_guides, nmlp_get_business_card, nmlp_get_tools_list) have empty parameter objects with no documentation of return structures, and error responses are not visible in source. The write tool (nmlp_schedule_pickup) lacks a dry-run/confirmation pattern despite triggering real outreach.
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.
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.
Get NMLP's donation archive entries as structured Book records.
Get NMLP's canonical business entity card — address, phone, services, area served, languages.
Get the comparison matrix of every Albuquerque book donation option (NMLP, Goodwill, Savers, Better World Books, Friends of APL, Habitat ReStore, regional pulper).
Six read-only tools (nmlp_get_knowledge, nmlp_get_donation_options, nmlp_get_archive, nmlp_get_pillar_guides, nmlp_get_business_card, nmlp_get_tools_list) declare empty inputSchema with no description of what they return. LLMs cannot plan downstream tool chains or extract needed fields without documented return structures.
nmlp_schedule_pickup triggers real outreach to a human operator but lacks a dry-run parameter or confirmation/approval mechanism. A single mistake by an LLM submits an unwanted request with real consequences. This violates the confirmation-request pattern for irreversible operations.
No visible error handling in the source code. Tools that call external APIs (nmlp_identify_first_edition, nmlp_lookup_publisher_rules, nmlp_search_qa) have no documented failure modes, retryability, or recovery guidance. LLMs cannot self-correct on API failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
Get the aggregated NMLP Knowledge Base (donor archetypes, routing tracks, condition grades, decision framework, donor glossary, named partners, coverage tiers).
Get NMLP's pillar guide manifest — 60+ Southwest author/publisher authentication and pricing guides.
Get the list of all available tools exposed by this MCP server.
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).
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.
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.
Search NMLP's long-tail Q&A reference (85+ entries) by keyword. Returns top matching entries with question, summary, and URL.
nmlp_get_tools_list is a meta-tool with a trivial purpose (returning the tools list, which the client should already have from tools/list). This adds noise and violates the single-responsibility principle.
nmlp_schedule_pickup requires 'agentSource' as a required parameter to identify the AI agent. While this aids auditing, the field is under-documented, no description of expected format (agent name string? version?), and it creates friction for agentic workflows. Should be auto-populated server-side if possible.
Parameters like 'estimatedSize' in nmlp_schedule_pickup accept free-form text ('two boxes', 'whole garage'). While intentionally flexible, the description provides examples rather than a format guide. LLMs may produce inconsistent input. Consider providing a constrained format or enum.