factreason

factreason

Provides dependency upgrade advisories, API schemas for 1,097 services, and electronic component specifications over MCP, with Ed25519-signed evidence.

Category
Visit Server

README

<div align="center"> <img src="./logo.svg" width="96" height="96" alt="FactReason Logo" /> <h1>FactReason</h1> <p><strong>Reference data agents need before they write code.</strong></p> <p>Dependency upgrade advisories for npm and PyPI, developer API schemas across 1,097 services, and electronic component specifications — over MCP, Ed25519-signed, with evidence attached.</p> <p><code>https://factreason.com/mcp</code> · <a href="https://factreason.com/llms.txt">Agent Docs</a> · <a href="https://factreason.com">factreason.com</a></p> </div>


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" }
}

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.


Connect

Streamable HTTP. No install, no package to pull.

{
  "mcpServers": {
    "factreason": {
      "type": "http",
      "url": "https://factreason.com/mcp"
    }
  }
}

Manifest: /.well-known/mcp.json

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

Every response is signed by our Ed25519 private key:

  • X-FactReason-Signature: Ed25519 signature of the raw response payload
  • X-FactReason-Key-Id: Stable signing key identifier
  • X-FactReason-Signature-Alg: ed25519

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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured