specir-mcp
This server provides a structured query interface for technical specification documents, enabling exact entity resolution, data fetching with graph context, explanations, searches, and status reports.
specir_resolve: Resolve an exact domain entity (command, section, table, figure, etc.) by kind and ID, optionally constrained to a specific spec.
specir_fetch: Fetch a full entity record by its canonical UID, with an option to include graph edges (cross-references) to related entities; profile filtering options (e.g., test_points, generic) may be available.
specir_explain: Combine a named entity with its defining section to understand its context and purpose.
specir_search: Search for structured entities or raw passages using a query string, supporting hybrid, entity, or passage modes, with customizable result limits and spec filtering.
specir_status: Report the current state of loaded plugins and database coverage metadata.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@specir-mcpsearch for telemetry in acme-device spec"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
specir-mcp
specir-mcp is a data-neutral framework for turning technical documents into
a structured intermediate representation (SpecIR) and querying it through six
stable MCP tools.
The repository contains no standards PDFs, extracted specification text, knowledge-base databases, model weights, or vendor-specific protocol tables. All bundled demo content is fictional.
Features
Document, section, table, figure, entity, passage, provenance, and edge IR.
Extensible domain plugin manifests with dependency-aware loading.
PDF outline-based section extraction and reusable structure parsers.
Multi-engine PDF table candidates with deterministic arbitration, geometry, non-table rejection, cross-page matching, and auditable review decisions.
SQLite-backed exact lookup, fetch, explanation, search, and status APIs.
A six-tool FastMCP surface:
specir_resolve,specir_fetch,specir_explain,specir_search,specir_status, andspecir_validate.Product-ranked
related_entitiesplus evidence-completexrefs_raw.Data-neutral typed edges for definitions, listings, field membership, and named status mentions.
Explicit coverage metadata so missing extraction is not confused with absence from a source document.
Related MCP server: literature-agent-mcp
Quick start
python -m venv .venv
. .venv/bin/activate
pip install -e ".[test]"
# Generate a small database from the fictional Acme Device Interface fixture.
specir-demo --output data/demo.db
export SPEC_IR_DB="$PWD/data/demo.db"
specir-mcp-serverThe same server may be launched from a source checkout:
fastmcp run src/specir/query/server.pyExample MCP calls:
specir_resolve(kind="command", id="A1h", spec="acme-device")
specir_fetch(uid="acme-device:2.1", include_xrefs=true,
xref_profile="test_points")
specir_explain(name="Read Telemetry", kind="command", spec="acme-device")
specir_search(query="telemetry", spec="acme-device")
specir_status()
specir_validate(mode="summary")test_points is the default fetch profile: weak or boilerplate edges remain
auditable under xrefs_raw.suppressed_references but do not enter the ranked
related_entities list. Request xref_profile="generic" for an unfiltered
debug view.
When a database contains one document, spec="auto" selects it. With multiple
documents, exact lookups return candidates and request an explicit spec.
Using your own data
Create a database with specir.query.schema.create_database, then insert
documents and entities using the schema documented by the Python dataclasses.
Set SPEC_IR_DB to that database before starting the server. The framework
never downloads or bundles source documents.
The optional PDF extractor can build coordinate-clipped section records:
from specir.extractors.pdf import build_section_tree
sections = build_section_tree("my-spec", "path/to/your-document.pdf")You are responsible for having permission to process and store the documents you supply.
Optional table extraction
Install only the engines you need. PyMuPDF is included in the core package; the other engines are optional and unavailable engines are skipped safely.
pip install -e ".[tables]" # pdfplumber
pip install -e ".[table-camelot]" # Camelot; may need system libraries
pip install -e ".[table-docling]" # neural candidate adapterfrom specir.extractors import arbitrate_candidates, generate_candidates
candidates = generate_candidates(
"path/to/your-document.pdf",
pages=[10, 11],
engines=("pymupdf", "pdfplumber"),
)
results = arbitrate_candidates(candidates)Every candidate retains its engine, strategy, bounding box, cell geometry,
quality metrics, and deterministic ID. Arbitration never treats the first
engine result as authoritative. It reports TRUSTED_AUTOMATIC,
NEEDS_REVIEW, CONFLICTING_CANDIDATES, or REJECTED_NON_TABLE and preserves
alternatives as evidence.
table_continuations.assess_continuation scores adjacent-page fragments and
keeps disagreements in a review state. recover_outer_fragment repairs nested
fragments only when the smallest enclosing candidate passes semantic,
geometric, caption-boundary, and unrelated-table checks. Neural extraction is
configured with explicit DoclingTableProfile values; no document names or
vendor rules are built into the framework.
Use build_review_queue and apply_review_decisions to bind a human decision
to the exact candidate state. Stale decisions, duplicate decisions, and
unknown replacement candidates fail closed.
Development
pytest
python -m buildThe tests create temporary synthetic databases and do not require external specifications or network access.
License
Apache License 2.0. See LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to search, discover, and retrieve technical specifications from a SpecLib instance. It provides tools for full-text search, scope listing, and reading specs as markdown content.
- FlicenseCqualityDmaintenanceExposes a local biomedical literature pipeline as MCP tools for automated research workflows. Enables literature search, open-access paper retrieval, and draft generation for biomedical and pathology domains through standard MCP clients.6

Specifai MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Specifai project integration and automation with any MCP-compatible AI tool. This server currently exposes tools to read all documents generated by the Specifai project.1813MIT- AlicenseNot gradedqualityDmaintenanceEnables AI agents to parse, create, update, delete, and search natural language specification elements in markdown files via MCP tools.1MIT
Related MCP Connectors
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
IEEE Xplore MCP — BYOK wrapper over the IEEE Xplore Metadata Search API
Read-only MCP over an agentic SLR workspace with per-claim citation verification
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jietianliang/specir-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server