SpecProof

SpecProof: Search standards specs with MCP-ready precision.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
100%
Integridad del esquema
64%
Calidad de los nombres
98%
Riesgo de envenenamiento
80%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • HIGHTool poisoning patterns detected
  • INFOTool description contains placeholder or incomplete texten get_spec_metadata

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,932Tokens (definiciones de herramientas)
~1.3 KBTamaño de respuesta típico
Impacto significativo en la atención (3.07% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "specproof-mcp": {
      "url": "https://mcp.specproof.ai/"
    }
  }
}

Puntos de conexión remotos

https://mcp.specproof.ai/streamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (17)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_spec_references(spec_number, reference_type)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_number": {
      "title": "Spec Number",
      "type": "string"
    },
    "reference_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Reference Type"
    }
  },
  "required": [
    "spec_number"
  ],
  "title": "get_spec_referencesArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_spec_referencesOutput"
}
🟢get_spec_dependents(spec_number, max_results)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_number": {
      "title": "Spec Number",
      "type": "string"
    },
    "max_results": {
      "default": 50,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "spec_number"
  ],
  "title": "get_spec_dependentsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_spec_dependentsOutput"
}
🟢get_relationship_graph(spec_number, depth, reference_type)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_number": {
      "title": "Spec Number",
      "type": "string"
    },
    "depth": {
      "default": 1,
      "title": "Depth",
      "type": "integer"
    },
    "reference_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Reference Type"
    }
  },
  "required": [
    "spec_number"
  ],
  "title": "get_relationship_graphArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_relationship_graphOutput"
}
🟢get_spec_metadata(spec_number, series, working_group, doc_class, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Spec Number"
    },
    "series": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Series"
    },
    "working_group": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Working Group"
    },
    "doc_class": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Doc Class"
    },
    "limit": {
      "default": 50,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "get_spec_metadataArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_spec_metadataOutput"
}
🟢get_most_referenced_specs(doc_type, series, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "doc_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Doc Type"
    },
    "series": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Series"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "get_most_referenced_specsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_most_referenced_specsOutput"
}
🟢get_series_overview

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

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "get_series_overviewArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_series_overviewOutput"
}
🟢search_specifications(query, doc_type, spec_number, max_results)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "doc_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Doc Type"
    },
    "spec_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Spec Number"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_specificationsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "search_specificationsOutput"
}
🟢semantic_search(query, max_results, similarity_threshold, index_type)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 5,
      "title": "Max Results",
      "type": "integer"
    },
    "similarity_threshold": {
      "default": 0.3,
      "title": "Similarity Threshold",
      "type": "number"
    },
    "index_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Index Type"
    }
  },
  "required": [
    "query"
  ],
  "title": "semantic_searchArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "semantic_searchOutput"
}
🟢get_document_content(filename, page_range, section)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "filename": {
      "title": "Filename",
      "type": "string"
    },
    "page_range": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Page Range"
    },
    "section": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Section"
    }
  },
  "required": [
    "filename"
  ],
  "title": "get_document_contentArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_document_contentOutput"
}
🟢list_documents(doc_type, search_pattern, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "doc_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Doc Type"
    },
    "search_pattern": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search Pattern"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "list_documentsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_documentsOutput"
}
🟢get_requirements(spec_number, obligation, search, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Spec Number"
    },
    "obligation": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Obligation"
    },
    "search": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search"
    },
    "limit": {
      "default": 30,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "get_requirementsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_requirementsOutput"
}
🟢generate_tests(requirement_id, target)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "requirement_id": {
      "title": "Requirement Id",
      "type": "integer"
    },
    "target": {
      "default": "pytest",
      "title": "Target",
      "type": "string"
    }
  },
  "required": [
    "requirement_id"
  ],
  "title": "generate_testsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "generate_testsOutput"
}
🟢diff_spec_versions(spec_base, from_version, to_version, obligation, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_base": {
      "title": "Spec Base",
      "type": "string"
    },
    "from_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "From Version"
    },
    "to_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "To Version"
    },
    "obligation": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Obligation"
    },
    "limit": {
      "default": 25,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "spec_base"
  ],
  "title": "diff_spec_versionsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "diff_spec_versionsOutput"
}
🟢get_schema_definitions(name, spec_number, kind, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "spec_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Spec Number"
    },
    "kind": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Kind"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "get_schema_definitionsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_schema_definitionsOutput"
}
🟢get_rfc_lineage(rfc)

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"

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rfc": {
      "title": "Rfc",
      "type": "string"
    }
  },
  "required": [
    "rfc"
  ],
  "title": "get_rfc_lineageArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_rfc_lineageOutput"
}
🟢build_cross_spec_suite(spec_base, keyword, include_references, limit)

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)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "spec_base": {
      "title": "Spec Base",
      "type": "string"
    },
    "keyword": {
      "title": "Keyword",
      "type": "string"
    },
    "include_references": {
      "default": true,
      "title": "Include References",
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "spec_base",
    "keyword"
  ],
  "title": "build_cross_spec_suiteArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "build_cross_spec_suiteOutput"
}
🟢get_database_stats

Get comprehensive database and system statistics.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "title": "get_database_statsArguments"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_database_statsOutput"
}

Prompts recomendados

search_research
Search for information about [topic] using SpecProof
Herramientas esperadas: search_specifications
find_specific
Find [specific item] using SpecProof
Herramientas esperadas: search_specifications
retrieve_data
Get details about [item] from SpecProof
Herramientas esperadas: get_spec_references
fetch_info
Fetch [information type] using SpecProof
Herramientas esperadas: get_spec_references
list_items
List all [items] available in SpecProof
Herramientas esperadas: list_documents

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada17 herramientas
verificadoversión no registrada17 herramientas