Serveur MCP

SpecProof

ai.specproof/specproof-mcp

Ce que fait ce MCP

Enables precise searching of standards specifications.

build_cross_spec_suite
Build Cross-Spec Suite
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_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)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'build_cross_spec_suiteArguments', 'required': ['spec_base', 'keyword'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}, 'keyword': {'type': 'string', 'title': 'Keyword'}, 'spec_base': {'type': 'string', 'title': 'Spec Base'}, 'include_references': {'type': 'boolean', 'title': 'Include References', 'default': True}}}
Schéma de sortie
{'type': 'object', 'title': 'build_cross_spec_suiteOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
diff_spec_versions
Diff Spec Versions
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" 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)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'diff_spec_versionsArguments', 'required': ['spec_base'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'spec_base': {'type': 'string', 'title': 'Spec Base'}, 'obligation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Obligation', 'default': None}, 'to_version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'To Version', 'default': None}, 'from_version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'From Version', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'diff_spec_versionsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
generate_tests
Generate Conformance Tests
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 (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)
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'generate_testsArguments', 'required': ['requirement_id'], 'properties': {'target': {'type': 'string', 'title': 'Target', 'default': 'pytest'}, 'requirement_id': {'type': 'integer', 'title': 'Requirement Id'}}}
Schéma de sortie
{'type': 'object', 'title': 'generate_testsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_database_stats
Database Statistics
Get comprehensive database and system statistics.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'get_database_statsArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', 'title': 'get_database_statsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_document_content
Get Document Content
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)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'get_document_contentArguments', 'required': ['filename'], 'properties': {'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Section', 'default': None}, 'filename': {'type': 'string', 'title': 'Filename'}, 'page_range': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Page Range', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_document_contentOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_most_referenced_specs
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)
Schéma d’entrée
{'type': 'object', 'title': 'get_most_referenced_specsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}, 'series': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Series', 'default': None}, 'doc_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Doc Type', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_most_referenced_specsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_relationship_graph
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: spec_number: Center specification number depth: Number of hops to expand (1-3, default: 1) reference_type: Filter by type - "normative", "informative" (optional)
Schéma d’entrée
{'type': 'object', 'title': 'get_relationship_graphArguments', 'required': ['spec_number'], 'properties': {'depth': {'type': 'integer', 'title': 'Depth', 'default': 1}, 'spec_number': {'type': 'string', 'title': 'Spec Number'}, 'reference_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reference Type', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_relationship_graphOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_requirements
Get Requirements
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_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)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'get_requirementsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 30}, 'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Search', 'default': None}, 'obligation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Obligation', 'default': None}, 'spec_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Spec Number', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_requirementsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_rfc_lineage
RFC Lineage
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: The RFC, e.g. "7231", "rfc7231" or "RFC 7231"
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'get_rfc_lineageArguments', 'required': ['rfc'], 'properties': {'rfc': {'type': 'string', 'title': 'Rfc'}}}
Schéma de sortie
{'type': 'object', 'title': 'get_rfc_lineageOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_schema_definitions
Get Schema Definitions
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, 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)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'get_schema_definitionsArguments', 'properties': {'kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Kind', 'default': None}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 10}, 'spec_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Spec Number', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_schema_definitionsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_series_overview
Get an overview of all specification series with document counts, reference statistics, and working group assignments.
Schéma d’entrée
{'type': 'object', 'title': 'get_series_overviewArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', 'title': 'get_series_overviewOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_spec_dependents
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)
Schéma d’entrée
{'type': 'object', 'title': 'get_spec_dependentsArguments', 'required': ['spec_number'], 'properties': {'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 50}, 'spec_number': {'type': 'string', 'title': 'Spec Number'}}}
Schéma de sortie
{'type': 'object', 'title': 'get_spec_dependentsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_spec_metadata
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" limit: Maximum results (default: 50)
Schéma d’entrée
{'type': 'object', 'title': 'get_spec_metadataArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'series': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Series', 'default': None}, 'doc_class': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Doc Class', 'default': None}, 'spec_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Spec Number', 'default': None}, 'working_group': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Working Group', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_spec_metadataOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_spec_references
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)
Schéma d’entrée
{'type': 'object', 'title': 'get_spec_referencesArguments', 'required': ['spec_number'], 'properties': {'spec_number': {'type': 'string', 'title': 'Spec Number'}, 'reference_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reference Type', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'get_spec_referencesOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
list_documents
List Documents
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)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'list_documentsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}, 'doc_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Doc Type', 'default': None}, 'search_pattern': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Search Pattern', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'list_documentsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
search_specifications
Search Specifications
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: Maximum number of results to return (default: 10, max: 50)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'search_specificationsArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query'}, 'doc_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Doc Type', 'default': None}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 10}, 'spec_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Spec Number', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'search_specificationsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
semantic_search
Semantic Search
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_type: FAISS index type - "hnsw", "ivf", or "flat" (optional, auto-selected)
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'title': 'semantic_searchArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query'}, 'index_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Index Type', 'default': None}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 5}, 'similarity_threshold': {'type': 'number', 'title': 'Similarity Threshold', 'default': 0.3}}}
Schéma de sortie
{'type': 'object', 'title': 'semantic_searchOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Ajouté
get_database_stats
17 September 2026 07:57
Ajouté
build_cross_spec_suite
17 September 2026 07:57
Ajouté
get_rfc_lineage
17 September 2026 07:57
Ajouté
get_schema_definitions
17 September 2026 07:57
Ajouté
diff_spec_versions
17 September 2026 07:57
Ajouté
generate_tests
17 September 2026 07:57
Ajouté
get_requirements
17 September 2026 07:57
Ajouté
list_documents
17 September 2026 07:57
Ajouté
get_document_content
17 September 2026 07:57
Ajouté
semantic_search
17 September 2026 07:57
Ajouté
search_specifications
17 September 2026 07:57
Ajouté
get_series_overview
17 September 2026 07:57
Ajouté
get_most_referenced_specs
17 September 2026 07:57
Ajouté
get_spec_metadata
17 September 2026 07:57
Ajouté
get_relationship_graph
17 September 2026 07:57
Ajouté
get_spec_dependents
17 September 2026 07:57
Ajouté
get_spec_references
17 September 2026 07:57