SpecProof
ai.specproof/specproof-mcpVersion 1.0.0SpecProof: Search standards specs with MCP-ready precision.
Status
Responds423 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:33 UTC
- Latency
- 423 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.specproof.ai/Responds423 msNo sign-in
Claude Code
claude mcp add --transport http specproof-mcp https://mcp.specproof.ai/Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: specproof-mcp
Remote MCP server URL: https://mcp.specproof.ai/Cursor
{
"mcpServers": {
"specproof-mcp": {
"url": "https://mcp.specproof.ai/"
}
}
}VS Code
code --add-mcp '{"name":"specproof-mcp","type":"http","url":"https://mcp.specproof.ai/"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
17 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
build_cross_spec_suiteAssemble the normative requirements for one procedure across a spec AND the specs it
normatively references — a procedure like registration or handover is never described in a
single document. Returns a cited suite plan; feed the requirement_ids to generate_tests.
Args:
spec_base: The anchor spec, e.g. "23502" or "38331"
keyword: The procedure/topic, e.g. "registration", "handover", "authentication"
include_references: Also pull matching clauses from specs this one references (default: True)
limit: Max requirements in the plan (default: 20, max: 50)
| No | Yes | Yes | No |
diff_spec_versionsDiff two versions of a specification at the NORMATIVE level: which requirements were
added, removed, or reworded. Not a textual diff — a clause that merely moved page or was
recased counts as unchanged.
Args:
spec_base: Spec identity without the version, e.g. "38331" or "23501"
from_version: Older version label, e.g. "j20" (default: the second-newest in the corpus)
to_version: Newer version label, e.g. "j30" (default: the newest in the corpus)
obligation: Only report changes at this strength — "must", "must_not", "should", "should_not", "may"
limit: Max requirements to list per bucket (default: 25)
| No | Yes | Yes | No |
generate_testsGenerate a cited, runnable conformance test that verifies one normative requirement.
The test is grounded in the requirement sentence plus its surrounding clause from the
corpus, and every test cites the spec, section and page it enforces. If the requirement
is not testable (boilerplate, scope text), the generator abstains rather than inventing
a test.
Args:
requirement_id: The requirement's id, as shown by get_requirements
target: "pytest" for a runnable Python test module, or "gherkin" for a reviewable
.feature file (default: pytest)
| No | Yes | No | No |
get_database_statsGet comprehensive database and system statistics. | No | Yes | Yes | No |
get_document_contentGet specific content from a specification document.
Args:
filename: Document filename (required)
page_range: Page range like "10-15" or single page "20" (optional)
section: Section title filter (optional)
| No | Yes | Yes | No |
get_most_referenced_specsGet the most referenced (most important) specifications ranked by incoming reference count.
Args:
doc_type: Filter by "3gpp" or "ietf"
series: Filter by series number
limit: Maximum results (default: 20)
| Not declared | Not declared | Not declared | Not declared |
get_relationship_graphGet a relationship graph centered on a specification, expanding N hops.
Returns JSON with nodes and edges suitable for graph visualization.
Each node includes title, series, working group, and reference counts.
Each edge includes source, target, reference type, and count.
Args:
spec_number: Center specification number
depth: Number of hops to expand (1-3, default: 1)
reference_type: Filter by type - "normative", "informative" (optional)
| Not declared | Not declared | Not declared | Not declared |
get_requirementsList normative requirements (RFC 2119 / BCP 14 "shall/should/may" statements)
extracted from specifications, each cited back to its source clause.
Args:
spec_number: Filter by spec number, e.g. "23.501" or "RFC 9110" (optional)
obligation: Filter by strength - "must", "must_not", "should", "should_not", or "may" (optional)
search: Keyword to search within the requirement text (optional)
limit: Maximum number of requirements to return (default: 30, max: 100)
| No | Yes | Yes | No |
get_rfc_lineageAn RFC's revision history. RFCs are immutable — an RFC is never revised, it is obsoleted
or updated by a *different* RFC — so this Obsoletes/Updates graph, not a version diff, IS
its change history. Use it to find out whether an RFC you depend on has been superseded.
Args:
rfc: The RFC, e.g. "7231", "rfc7231" or "RFC 7231"
| No | Yes | Yes | No |
get_schema_definitionsLook up formal, machine-checkable structure defined in the specifications: ASN.1 types
(3GPP RRC/NAS message grammars) and JSON Schema / OpenAPI models (5G Service Based
Interfaces).
Prefer this over prose search when the question is about a message's *structure* — field
names, types, ranges, optionality. The definition is returned verbatim from the spec, so
it is exact rather than recalled.
Args:
name: Type or schema name, e.g. "RRCSetup", "MeasConfig", "SmContextCreateData"
spec_number: Restrict to a spec, e.g. "38.331"
kind: "asn1", "openapi" or "json_schema"
limit: Maximum definitions to return (default: 10, max: 25)
| No | Yes | Yes | No |
get_series_overviewGet an overview of all specification series with document counts, reference statistics, and working group assignments. | Not declared | Not declared | Not declared | Not declared |
get_spec_dependentsGet all specifications that reference a given spec (reverse lookup).
Args:
spec_number: Specification number to find dependents of
max_results: Maximum results (default: 50)
| Not declared | Not declared | Not declared | Not declared |
get_spec_metadataGet enriched metadata for specifications with filtering.
Args:
spec_number: Filter by spec number (partial match)
series: Filter by series (e.g., "26" for 26.xxx codecs)
working_group: Filter by working group (e.g., "SA4")
doc_class: Filter by document class - "TS" or "TR"
limit: Maximum results (default: 50)
| Not declared | Not declared | Not declared | Not declared |
get_spec_referencesGet all specifications referenced by a given spec.
Args:
spec_number: Specification number (e.g., "23.501", "26.230")
reference_type: Filter by type - "normative", "informative", "inline" (optional)
| Not declared | Not declared | Not declared | Not declared |
list_documentsList available specification documents.
Args:
doc_type: Filter by document type - "3gpp", "ietf", or "mpeg" (optional)
search_pattern: Search pattern for spec number or title (optional)
limit: Maximum number of results (default: 20, max: 100)
| No | Yes | Yes | No |
search_specificationsSearch across 3GPP, IETF, and Multimedia specification documents using full-text search.
Args:
query: Search query terms (required)
doc_type: Filter by document type - "3gpp", "ietf", or "mpeg" (optional)
spec_number: Filter by specification number (optional)
max_results: Maximum number of results to return (default: 10, max: 50)
| No | Yes | Yes | No |
semantic_searchPerform semantic search using vector embeddings with FAISS acceleration.
Args:
query: Natural language search query (required)
max_results: Maximum number of results to return (default: 5, max: 20)
similarity_threshold: Minimum similarity threshold 0.0-1.0 (default: 0.3)
index_type: FAISS index type - "hnsw", "ivf", or "flat" (optional, auto-selected)
| No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Feb 1, 2026
- Updated
- Feb 1, 2026
- Categories (suggested)
- DatabasesSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared