{
  "version": "1.7.0",
  "owner": "ReplyNodes product team",
  "lastVerified": "2026-10-09",
  "description": "Single verified source of truth for public ReplyNodes product facts. All GEO-facing claims in replynodes-site, replynodes-docs, replynodes-mcp, llms.txt, npm metadata, and the MCP Registry must reconcile against this file. MCP contract facts were reconciled with replynodes-fetcher#433 and merged parent commit 008a23ec196efd50e3ab2ede0cf244c258999720 on 2026-09-22. Do not edit claims without updating the evidence.",
  "facts": [
    {
      "id": "mcp-endpoint-remote",
      "claim": "The canonical remote MCP server endpoint is https://mcp.replynodes.com/mcp",
      "value": "https://mcp.replynodes.com/mcp",
      "evidence": "Final read-only MCP contract from replynodes-fetcher#433, parent commit 008a23ec196efd50e3ab2ede0cf244c258999720. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "mcp-oauth-issuer",
      "claim": "Interactive MCP OAuth uses Better Auth issuer https://auth.replynodes.com",
      "value": "https://auth.replynodes.com",
      "evidence": "Final native Better Auth MCP OAuth contract from replynodes-fetcher#433, parent commit 008a23ec196efd50e3ab2ede0cf244c258999720. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "mcp-oauth-scope",
      "claim": "Interactive MCP OAuth requests the mcp:read scope",
      "value": "mcp:read",
      "evidence": "Final native Better Auth MCP OAuth contract from replynodes-fetcher#433, parent commit 008a23ec196efd50e3ab2ede0cf244c258999720. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "mcp-headless-api-keys",
      "claim": "Headless and manual MCP clients authenticate with rn_test_* or rn_live_* ReplyNodes API keys",
      "value": "rn_test_* or rn_live_* API keys",
      "evidence": "Final headless/manual authentication contract from replynodes-fetcher#433, parent commit 008a23ec196efd50e3ab2ede0cf244c258999720. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "mcp-identity-organization",
      "claim": "MCP organization context is resolved from the authenticated identity or API key; clients do not send an organization id",
      "value": "No client-supplied organization id",
      "evidence": "Final identity resolution contract from replynodes-fetcher#433, parent commit 008a23ec196efd50e3ab2ede0cf244c258999720. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "mcp-read-only",
      "claim": "The public MCP surface is read-only public data access",
      "value": "Read-only",
      "evidence": "Final MCP product boundary from replynodes-fetcher#433, parent commit 008a23ec196efd50e3ab2ede0cf244c258999720. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "rest-base-url",
      "claim": "The canonical read-only public API base URL is https://api.replynodes.com",
      "value": "https://api.replynodes.com",
      "evidence": "The public gateway publishes the read-only capabilities document at GET https://api.replynodes.com/v1/capabilities; use its document and providers as the source of truth. Verified 2026-08-21.",
      "status": "verified"
    },
    {
      "id": "api-key-location",
      "claim": "API keys are created after signing in at platform.replynodes.com; the API-key page is platform.replynodes.com/api-keys",
      "value": "platform.replynodes.com/api-keys",
      "evidence": "Anonymous request to https://platform.replynodes.com/api-keys returned 307 to https://auth.replynodes.com/sign-in; https://platform.replynodes.com/sign-up returned 200 (2026-09-25).",
      "status": "verified"
    },
    {
      "id": "platform-count",
      "claim": "The live runtime capabilities document exposes read-only public data through 8 providers and 52 callable GET routes",
      "value": "8 providers / 52 callable GET routes",
      "evidence": "Live GET https://api.replynodes.com/v1/capabilities returned schema_version v1, service replynodes-fetcher, documentHash sha256:f7bfad526dd21e3e3efd24f19e98c2adeb50c57bd0b9e832987fee1d11a9f401, 8 providers (appstore, brand, googleplay, hackernews, reddit, web_search, webcontext, youtube) and 52 callable routes, all method GET and read_only true. Verified 2026-10-09.",
      "status": "verified"
    },
    {
      "id": "mcp-registry-listing",
      "claim": "The MCP server is listed in the official MCP Registry as io.github.replynodes/mcp, version 0.1.2, npm @replynodes/mcp",
      "value": "io.github.replynodes/mcp v0.1.2",
      "evidence": "curl https://registry.modelcontextprotocol.io/v0.1/servers?search=replynodes returned the entry; npm registry shows @replynodes/mcp v0.1.2. 2026-08-16.",
      "status": "verified"
    },
    {
      "id": "pricing",
      "claim": "ReplyNodes uses subscription plans with a unified credit balance: Free has 500 one-time credits, Developer costs $19 USD/month, and Pro costs $99 USD/month",
      "value": "Free: 500 one-time credits; Developer: $19 USD/month; Pro: $99 USD/month",
      "evidence": "Current package launch contract in AGENTS.md and components/pricing-plans.ts/app/pricing/page.tsx in replynodes-site. Verified 2026-09-27.",
      "status": "verified"
    },
    {
      "id": "mcp-auth-format",
      "claim": "Manual MCP API-key authentication uses Authorization: Bearer *** or rn_live_*",
      "value": "Authorization: Bearer *** or rn_live_*",
      "evidence": "Final headless/manual MCP authentication contract from replynodes-fetcher#433; native OAuth is documented separately. Verified 2026-09-22.",
      "status": "verified"
    },
    {
      "id": "rest-auth-format",
      "claim": "REST Public API authenticates with a workspace Read API key as a Bearer token in the Authorization header",
            "value": "Authorization: Bearer <workspace-key>",
      "evidence": "docs public-api/index.mdx and mcp/introduction.mdx. 2026-08-16.",
      "status": "verified"
    },
    {
      "id": "supported-clients",
      "claim": "Supported AI clients (verified): Claude (Claude Code, Claude Desktop, Claude.ai), Cursor, Codex, OpenClaw, and Hermes connect via the remote MCP server; ChatGPT connects via GPT Actions (REST). Each has a documented setup guide.",
      "value": "Claude, Cursor, Codex, OpenClaw, Hermes (MCP); ChatGPT (GPT Actions)",
      "evidence": "replynodes-mcp README.md L6 lists Claude, Cursor, Codex, OpenClaw, Hermes, ChatGPT; README setup sections for Claude Code plugin, Claude Desktop manual config, Cursor/Windsurf, Codex CLI/OpenClaw; package.json description lists the same six; docs mcp/claude.mdx, hermes.mdx, openclaw.mdx, chatgpt-codex.mdx (chatgpt-codex states ChatGPT/Custom GPTs do not run MCP directly — equivalent is a GPT Action). Verified 2026-08-16.",
      "status": "verified"
    },
    {
      "id": "cli-package",
      "claim": "replynodes-cli v0.1.0 is published on npm (public), binary name 'replynodes'",
      "value": "replynodes-cli@0.1.0",
      "evidence": "npm registry probe https://registry.npmjs.org/replynodes-cli returns 200, dist-tags.latest 0.1.0, bin replynodes (2026-08-16).",
      "status": "verified"
    }
  ]
}
