ibouazizi avatar

SpecProof

ibouazizi/specproof

Lets Claude search through 3GPP, IETF, and MPEG standards documents using semantic and full-text search. You get back citations with section numbers, page references, and source release versions. The server runs as a managed MCP endpoint at mcp.specproof.ai with API key auth and IP allowlisting. Built on a FAISS-accelerated index with 600k+ chunks and sub-second query times. Reach for this when you're working on telecom protocols, network architecture, or codec implementation and need to pull exact clauses from standards docs without manually paging through PDFs. Free tier gives you 1k searches to try it out.

tools
17
transport
HTTP
last updated
Feb 1, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.specproof.ai/ --name specproof-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http specproof-mcp https://mcp.specproof.ai/

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 17 tools

Verified live against the running server on Nov 6, 2026.

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)2 params

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

Parameters* required
reference_typevalue
spec_number*string
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)2 params

Get all specifications that reference a given spec (reverse lookup). Args: spec_number: Specification number to find dependents of max_results: Maximum results (default: 50)

Parameters* required
max_resultsinteger
default: 50
spec_number*string
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...3 params

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

Parameters* required
depthinteger
default: 1
reference_typevalue
spec_number*string
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" lim...5 params

Get 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" lim...

Parameters* required
doc_classvalue
limitinteger
default: 50
seriesvalue
spec_numbervalue
working_groupvalue
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)3 params

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

Parameters* required
doc_typevalue
limitinteger
default: 20
seriesvalue
get_series_overviewGet an overview of all specification series with document counts, reference statistics, and working group assignments.

Get an overview of all specification series with document counts, reference statistics, and working group assignments.

No parameters. Call it with no arguments.

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: Maxi...4 params

Search 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: Maxi...

Parameters* required
doc_typevalue
max_resultsinteger
default: 10
query*string
spec_numbervalue
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...4 params

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

Parameters* required
index_typevalue
max_resultsinteger
default: 5
query*string
similarity_thresholdnumber
default: 0.3
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)3 params

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

Parameters* required
filename*string
page_rangevalue
sectionvalue
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)3 params

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

Parameters* required
doc_typevalue
limitinteger
default: 20
search_patternvalue
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_no...4 params

List 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_no...

Parameters* required
limitinteger
default: 30
obligationvalue
searchvalue
spec_numbervalue
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 (b...2 params

Generate 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 (b...

Parameters* required
requirement_id*integer
targetstring
default: pytest
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...5 params

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

Parameters* required
from_versionvalue
limitinteger
default: 25
obligationvalue
spec_base*string
to_versionvalue
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...4 params

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

Parameters* required
kindvalue
limitinteger
default: 10
namevalue
spec_numbervalue
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...1 params

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

Parameters* required
rfc*string
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_b...4 params

Assemble 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_b...

Parameters* required
include_referencesboolean
default: true
keyword*string
limitinteger
default: 20
spec_base*string
get_database_statsGet comprehensive database and system statistics.

Get comprehensive database and system statistics.

No parameters. Call it with no arguments.

Sponsors

Readme

Details

Repository
github.com/ibouazizi/specproof
Website
specproof.ai
Category
Search & Web Crawling
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Search & Web Crawling MCP servers

View all
1nimo1987 avatarxurprisenimo1987/xurprise-mcp-docsAgent-native commerce for SEA/China/global. 43 brands. 6 tools. 9-language search.0stars
2awesomehye avatarUpnote Lens Mcpawesomehye/upnote-lens-mcpRead, search, and summarize your UpNote notes — and create new ones.0stars
3bigjai avatarTokennukebigjai/tokennukeCode indexing MCP: 15 tools, 10 languages, hybrid search, call graphs, O(1) retrieval.0stars
4bitofacoder avatarOmni Mcp Serverbitofacoder/omni-mcp-serverAll-in-one MCP server: GitHub, Git, Slack, web fetch, memory, and filesystem. Agent Mode opt-in.0stars
5ceki-me avatarMcp Serverceki-me/mcp-serverHire specialists by the hour — search, schedule, and pay via MCP protocol.0stars
6chrischall avatarCompass Mcpchrischall/compass-mcpCompass real-estate for Claude — search, property details, photos, price history, compare0stars