Signed, evidence-carrying reference data for coding agents over MCP
FactReason provides 5 well-structured tools with complete input and output schemas, clear descriptions (avg 180 chars), and proper tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only reference lookups with no destructive operations. Naming follows verb_noun convention (factreason_package_upgrade_advisory, factreason_api_breaking_changes). However, descriptions lack explicit guidance on when to use each tool vs. alternatives, parameter descriptions are minimal (e.g., 'Registry containing both package versions' lacks format/constraint details), and output schemas use overly permissive 'additionalProperties: true' patterns that reduce clarity. Error handling and recovery guidance are absent from descriptions.
Compare two versions of a third-party API and return breaking changes, including removed endpoints, parameter type changes, removed request body fields, and migration guides. Use factreason_package_upgrade_advisory for npm or PyPI packages.
Search exact request and response schemas for third-party API endpoints. Pass service alone to list its indexed endpoints, add query to narrow by path or operation, or use query alone across services; returns matches or nearest services. Uses metered access and does not modify source data. Prefer factreason_integration_brief for one callable request.
Discover an API by service name, returning its base URL, auth scheme, and a list of callable endpoints with their paths, methods, and parameter names. Useful for initial exploration. Uses metered access.
Compile one callable third-party API brief: base URL, auth scheme, required parameters and types, request body, and documented response codes. Service is required and endpoint optionally narrows the operation. Set responseFormat="compact" for tokenizer-measured context savings; the backward-compatible default returns the full brief plus compact form. Uses metered access. Prefer factreason_api_schema when exploring multiple endpoints.
Output schemas use 'additionalProperties: true' excessively, reducing clarity about guaranteed fields. Clients cannot reliably extract data without defensive parsing.
Parameter descriptions lack actionable constraints. E.g., 'Exact package name' does not specify case sensitivity, allowed characters, or max length. 'Optional exact version' does not clarify version format (semver, PEP 440, etc.).
Descriptions do not explain error cases or recovery paths. E.g., factreason_package_upgrade_advisory mentions 'misses are never billed' but does not explain what a miss is or how the LLM should handle it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
Compare two exact published npm or PyPI versions and return publisher-declared registry metadata changes, including yanks, exports, module format, runtime floors, peers, and licences, with before/after evidence. Set responseFormat="compact" for tokenizer-measured context savings; the backward-compatible default is "full". This is a read-only metered lookup; misses are never billed and every API key carries one-off trial credit. Use it for package metadata; use factreason_api_breaking_changes for a third-party HTTP API, and consult changelogs for behavioural changes.
Tool descriptions lack differentiation guidance. factreason_api_schema and factreason_integration_brief both query API metadata but descriptions do not clearly state when to use one vs. the other. LLMs may conflate them.
STDIO-only transport prevents remote accessibility and hosted MCP client integration. Server cannot be used by cloud-based agents or multi-tenant platforms.