FactReason

MCP serverDev tools

Factreason checks exact npm and PyPI package upgrades and shows breaking changes backed by evidence. Once added, your AI can review an upgrade before you apply it and query the APIs and components involved, so version updates hold fewer surprises.

Use FactReason in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add FactReason and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the factreason package upgrade advisory tool from FactReason

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI to check an upgrade for an npm or PyPI package you are considering. It will return the exact version along with any breaking changes and the evidence behind them.

FactReasonStart free

What your AI can do with it

  • Check exact upgrade versions for npm and PyPI packages
  • Surface breaking changes backed by evidence before you upgrade
  • Query the APIs and components related to a package

Install FactReason

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user factreason 'https://www.factreason.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://www.factreason.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=factreason&config=eyJ1cmwiOiJodHRwczovL3d3dy5mYWN0cmVhc29uLmNvbS9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://www.factreason.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add factreason --url 'https://www.factreason.com/mcp'

    Run it once, then sign in with codex mcp login factreason if the server asks for an account.

From the project's README

As published by factreason/factreason in README.md.


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. The agent can use the returned key straight away, in the same session, by passing it as the apiKey argument of any paid tool; no reconnect needed. A client that can set headers can put it on the MCP connection as an Authorization: Bearer header instead. Eligible new users may receive up to $0.05 of one-off trial credit, subject to grant budgets and spent at the published per-tier prices — up to about two advisory lookups, or fifty component lookups. Successful advisory lookups after that 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

ToolWhat it answers
factreason_package_upgrade_advisoryWhat breaks between two published npm/PyPI versions
factreason_create_keyCreate a key; pass it as the apiKey argument of paid tools (or as a Bearer header)
factreason_api_schemaExact request/response shape of an API endpoint at a version
factreason_api_breaking_changesWhat breaks between two versions of a third-party HTTP API
factreason_integration_briefEverything needed to write one working call to an API
factreason_discover_apiWhich of 1,097 services can do X
factreason_deprecation_scanWhich endpoints are deprecated, sunset dates, replacements
factreason_auth_playbookAuth schemes, scopes, rate-limit headers, error-code table
factreason_component_specElectronics component pinouts, voltages, packages
factreason_subscribe_spec_changesWebhook or polling callback when a spec changes
factreason_create_topup_linkStripe 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 payload
  • X-Fact-Public-Key-Id: Stable signing key identifier
  • X-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.

Tools it offers (11)

What this server listed when Ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.

  • factreason_package_upgrade_advisory
  • factreason_api_breaking_changes
  • factreason_api_schema
  • factreason_integration_brief
  • factreason_discover_api
  • factreason_create_key
  • factreason_create_topup_link
  • factreason_component_spec
  • factreason_deprecation_scan
  • factreason_auth_playbook
  • factreason_subscribe_spec_changes

Signals

Last commit
Oct 2026
Advanced
Delivery
factreason MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-factreason-factreason
Source
github.com/factreason/factreason
Hosted endpoint
https://www.factreason.com/mcp