streamable-httpMITupdated 20d ago
FactReason Reference data agents need before they write code. Dependency upgrade advisories for npm and PyPI, developer API schemas across 1,097 services, and electronic component specifications โ over MCP, Ed25519-signed, with optional tokenizer-measured compact responses and evidence attached. https://factreason.com/mcp ยท Documentation ยท OpenAPI ยท Agent skill ยท factreason.com
What can you do with FactReason?
Stop an agent shipping a broken dependency upgrade
Your agent wants to bump chalk from 4.1.2 to 5.0.0. Before it edits package.json, it asks what breaks:
GET /api/v1/packages/npm/chalk/advisory?from=4.1.2&to=5.0.0
Authorization: Bearer <key>
{
"found": true,
"packageName": "chalk",
"fromVersion": "4.1.2",
"toVersion": "5.0.0",
"breakingCount": 2,
"advisories": [
{
"severity": "breaking",
"changeType": "MODULE_FORMAT_CHANGED",
"description": "chalk 5.0.0 changed module format from \"commonjs (undeclared)\" to \"module\". CommonJS require() of this package will now fail.",
"evidenceField": "type",
"evidenceBefore": null,
"evidenceAfter": "module",
"migrationHint": "Convert the call site to import(), or pin to the last CommonJS release."
},
{
"severity": "breaking",
"changeType": "RUNTIME_REQUIREMENT_RAISED",
"description": "chalk 5.0.0 raised its runtime requirement from \">=10\" to \"^12.17.0 || ^14.13 || >=16.0.0\". Older runtimes are no longer supported.",
"evidenceField": "engines.node",
"evidenceBefore": ">=10",
"evidenceAfter": "^12.17.0 || ^14.13 || >=16.0.0",
"migrationHint": "Confirm the deployment runtime satisfies the new floor before upgrading."
}
]
}
Via MCP, the same question is one tool call:
{
"name": "factreason_package_upgrade_advisory",
"arguments": { "registry": "npm", "name": "chalk", "from": "4.1.2", "to": "5.0.0" }
}
Set responseFormat: "compact" on supported heavy MCP tools to remove repeated fields and prose while retaining the facts an agent needs. Package advisories preserve evidenceField, evidenceBefore, evidenceAfter, and migrationHint. Each compact response includes tokenMetrics counted with o200k_base. The default remains full for compatibility, and compact output never bypasses authorization or changes the query price.
Token savings vary with the response. Metrics count one exact JSON structuredContent payload and include the tokenMetrics object itself; the matching text block remains for MCP clients that do not consume structured content yet. The private application repository also carries a repeatable npm run benchmark:tokens fixture so published claims can be checked before release.
Every finding carries evidenceField, evidenceBefore and evidenceAfter โ the exact registry metadata field and its values either side of the change. An agent can verify the claim against npm or PyPI directly rather than taking our word for it.
An agent can call factreason_create_key to get its own key instantly โ no human, no card, no signup โ and retry immediately. Every API key carries $0.05 of one-off trial credit, spent at the published per-tier prices โ about two advisory lookups, or fifty component lookups. After that, successful advisory lookups cost $0.02 per query. Misses are never billed and never consume trial credit. Wallet-equipped agents can pay the 402 challenge directly with x402 on Base.
Connect
Streamable HTTP. No install, no package to pull.
{
"mcpServers": {
"factreason": {
"type": "http",
"url": "https://factreason.com/mcp"
}
}
}
Manifest: /.well-known/mcp.json
Human quickstart and workflow guidance: /docs. Agents can fetch the same material as Markdown from /docs.md or use the complete index at /llms-full.txt.
The container/stdio bridge accepts an optional FACTREASON_API_KEY environment variable and forwards it as a Bearer
credential to the same live endpoint. Tool discovery works without a key; metered lookups return HTTP 402 when neither
a key nor a valid x402 payment is supplied.
Get a key โ no signup, no card:
curl -X POST https://factreason.com/api/v1/keys/create \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com"}'
Tools
| Tool | What it answers |
|---|---|
factreason_package_upgrade_advisory |
What breaks between two published npm/PyPI versions |
factreason_api_schema |
Exact request/response shape of an API endpoint at a version |
factreason_integration_brief |
Everything needed to write one working call to an API |
factreason_discover_api |
Which of 1,097 services can do X |
factreason_deprecation_scan |
Which endpoints are deprecated, sunset dates, replacements |
factreason_auth_playbook |
Auth schemes, scopes, rate-limit headers, error-code table |
factreason_component_spec |
Electronics component pinouts, voltages, packages |
factreason_subscribe_spec_changes |
Webhook or polling callback when a spec changes |
factreason_create_topup_link |
Stripe checkout link when credit runs out |
Proof-of-Fact Signatures
Successful REST data responses and MCP tool-call responses are signed by our Ed25519 private key:
X-Warehouse-Proof-Signature: Ed25519 signature of the response payloadX-Fact-Public-Key-Id: Stable signing key identifierX-Fact-Signature-Alg:EdDSA
Public keys are published and rotated via JWKS at https://factreason.com/.well-known/jwks.json.
Licence & Contact
MIT. Attribution requirement for APIs.guru source data: CC-BY 4.0.
Questions, support, or data reports: hello@factreason.com.
Install
Add FactReason to your client. Pick the one you use.
claude mcp add --transport http factreason https://www.factreason.com/mcpcodex mcp add factreason --url https://www.factreason.com/mcp{
"mcpServers": {
"factreason": {
"url": "https://www.factreason.com/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"factreason": {
"type": "http",
"url": "https://www.factreason.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"factreason": {
"url": "https://www.factreason.com/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"factreason": {
"serverUrl": "https://www.factreason.com/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
9 tools
FactReason exposes 9 tools to a connected agent.
- factreason_package_upgrade_advisory
- What breaks between two published npm/PyPI versions
- factreason_api_schema
- Exact request/response shape of an API endpoint at a version
- factreason_integration_brief
- Everything needed to write one working call to an API
- factreason_discover_api
- Which of 1,097 services can do X
- factreason_deprecation_scan
- Which endpoints are deprecated, sunset dates, replacements
- factreason_auth_playbook
- Auth schemes, scopes, rate-limit headers, error-code table
- factreason_component_spec
- Electronics component pinouts, voltages, packages
- factreason_subscribe_spec_changes
- Webhook or polling callback when a spec changes
- factreason_create_topup_link
- Stripe checkout link when credit runs out
Score
84 / 100
Excellent
- Documentation25/25
- Maintenance25/25
- Trust16/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 12 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 9 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 2.1.0Latest | Aug 19, 2026 |
| 2.0.5 | Aug 18, 2026 |
| 2.0.4 | Aug 16, 2026 |
| 2.0.3 | Aug 16, 2026 |
| 2.0.2 | Aug 14, 2026 |
| 2.0.0 | Aug 14, 2026 |