{
  "data": {
    "a": {
      "slug": "rotki-mcp",
      "name": "rotki MCP server",
      "vendor": "Rotki Solutions GmbH",
      "vendorUrl": "https://rotki.com",
      "kind": "platform",
      "category": "accounting",
      "summary": "Open-source, local-first portfolio tracking and accounting app for crypto. Its MCP server, for Premium Basic and higher, lets an AI assistant on the same machine query the user's events and balances with read-only SQL.",
      "url": "https://www.anchorterminal.com/tools/rotki-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/rotki-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rotki-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json",
      "repo": "https://github.com/rotki/rotki",
      "license": "AGPL-3.0",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Desktop. No credential. The MCP HTTP endpoint at http://127.0.0.1:4445/mcp takes no bearer token, because the desktop launcher forces ROTKI_SESSION_KEY empty outside Docker (https://github.com/rotki/rotki/blob/v1.44.1/crates/starling/src/main.rs). Host and Origin allowlists limit requests to 127.0.0.1:4445. Docker. POST /api/1/mcp/token issues a bearer token scoped to mcp that lasts at most seven days from login and is revoked on logout (https://github.com/rotki/rotki/blob/v1.44.1/docs/dev_changelog.rst; https://docs.rotki.com/usage-guides/mcp).",
      "pricing": "paid",
      "pricingNotes": "Premium Basic is €25 a month billed monthly, labelled Suggested, and Advanced is €45 a month billed monthly (https://rotki.com/products/, checked 10 October 2026). Yearly prices are not shown, only 'Save 2 months vs monthly'. The Starter plan and the Supporter plan have no MCP access, and the code excludes Free and Supporter from the tools (https://github.com/rotki/rotki/blob/v1.44.1/rotkehlchen/mcp/premium.py). No free trial was found.",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the products page or the source (checked 2026-10-10).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-10"
      },
      "docsUrl": "https://docs.rotki.com/usage-guides/mcp",
      "llmsTxt": "https://rotki.com/llms.txt",
      "capabilities": [
        "accounting.ledger"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local-first",
        "desktop",
        "docker",
        "mcp",
        "read-only",
        "premium",
        "python",
        "llms-txt"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.6,
        "grade": "E",
        "agentReady": false,
        "rank": 865,
        "ranked": true,
        "rankOf": 954,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 35,
          "payments": 10,
          "reliability": 50,
          "schema": 76,
          "security": 20,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-10"
        },
        "negative": 0,
        "verdict": "A read-only MCP server in the rotki desktop app, for Premium Basic at €25 a month and above. Privacy modes mask addresses and account names, but amounts, dates, assets and counterparties reach the connected assistant in every mode. The desktop endpoint takes no token, and the feature shipped in v1.44.0 on 21 August 2026.",
        "bestFor": "A Premium user who wants an assistant to answer questions about their own history, balances and cost basis on their own machine.",
        "strengths": [
          "Read-only by construction. Eight tools and none of them writes, and query_sql accepts one SELECT or WITH statement against an in-memory copy of the loaded data",
          "The premium gate fails closed. Free and Supporter accounts get premium_required, and a backend that cannot be queried gets premium_check_failed",
          "Balanced mode, the default, masks addresses, transaction hashes, group and event identifiers and account names with a per-process seed, and redacts user notes",
          "AGPL-3.0 source for the MCP server, its tests in rotkehlchen/tests/mcp and the desktop launcher that starts it",
          "Typed JSON Schema inputs on every tool, generated from the Python signatures, plus a free info tool that reports whether an unlocked backend is connected"
        ],
        "weaknesses": [
          "The desktop endpoint at http://127.0.0.1:4445/mcp takes no token, because the session key is forced empty outside Docker, so any local process can call it while the server runs",
          "Amounts, USD values, timestamps, asset symbols, counterparties and venue names pass unmasked in every mode, as the in-app strict description says",
          "The privacy policy at rotki.com/privacy-policy does not mention the desktop app or the MCP, and the MCP usage event to sigil.rotki.com is on by default",
          "Two releases in the 90 days to 10 October 2026, and no rotki entry found in the official MCP registry search",
          "The feature is seven weeks old, and no injection guidance, per-call audit log or security disclosure policy was found"
        ],
        "agentNotes": [
          "Ask the person to start the server under Settings \u003e MCP in the desktop app, since it stays down until started, then connect to http://127.0.0.1:4445/mcp",
          "Call info first. It works without Premium and reports whether an unlocked backend is connected",
          "Call get_event_taxonomy before any aggregate over event_type, and sum on direction or event_group, since informational rows double count MEV and block rewards",
          "Call refresh_analytics_data before query_sql, and check source.completeness and unpriced_rows before reporting any total",
          "Check the privacy mode before answering from the data. Strict keeps amounts and dates, and raw sends addresses, hashes and notes verbatim"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.6
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 35,
          "payments": 10,
          "reliability": 50,
          "schema": 76,
          "security": 20,
          "transparency": 55
        },
        "provenanceScore": 40
      },
      "connect": {
        "claudeCode": "claude mcp add --scope user --transport http rotki http://127.0.0.1:4445/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/rotki-mcp"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Rotki Solutions GmbH",
        "domain": "rotki.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "https://rotki.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/rotki/rotki/releases",
        "securityTxt": "unknown",
        "checked": "2026-10-10",
        "notes": [
          "The privacy policy names Rotki Solutions GmbH as operator of the website and the Premium API subscription. It states no retention period and no governing law, and does not mention the desktop app or the MCP server.",
          "The MCP server runs on the user's own machine, so no vendor endpoint is involved. The only vendor-side request is the optional usage event to sigil.rotki.com.",
          "rotki.com/.well-known/security.txt and rotki.com/security.txt both returned client errors to our reader, so securityTxt is recorded as unknown.",
          "status.rotki.com and the terms page could not be read by our reader, so statusPage and terms are null."
        ],
        "score": 40
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rotki-mcp.json"
    },
    "answer": "Rutter Accounting API scores 55.6 (C) on agent readiness against rotki MCP server's 45.6 (E), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "rutter",
      "name": "Rutter Accounting API",
      "vendor": "Rutter",
      "vendorUrl": "https://www.rutter.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Unified API for accounting, commerce and payment platforms, aimed at lenders and financial software developers.",
      "url": "https://www.anchorterminal.com/tools/rutter",
      "markdownUrl": "https://www.anchorterminal.com/tools/rutter.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rutter.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rutter.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://production.rutterapi.com/versioned",
      "packages": [],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with your client_id and client_secret, plus an `access_token` query parameter naming the connection, which you get from the Exchange Tokens endpoint after a user links through Rutter Link. Every call needs an `X-Rutter-Version` header (2024-08-31 is current). The sandbox at sandbox.rutterapi.com uses the same scheme.",
      "pricing": "paid",
      "pricingNotes": "A free starter plan gives sandbox data and a 30-day trial for a proof of concept against QuickBooks, Xero, FreshBooks and Zoho Books, with no card. Production access to every platform, including NetSuite, QuickBooks Desktop and Sage Intacct, is a custom quote from sales, with a 99.9 per cent monthly uptime SLA and one-hour response on critical issues. No per-connection price is published (https://www.rutter.com/pricing).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.rutter.com/rest/2024-08-31/basics",
      "openapi": "https://docs.rutter.com/rest/2024-08-31/spec",
      "capabilities": [
        "accounting.unified",
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "paid",
        "no-card",
        "openapi",
        "webhooks",
        "async-jobs",
        "enterprise",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.6,
        "grade": "C",
        "agentReady": false,
        "rank": 655,
        "ranked": true,
        "rankOf": 954,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 62,
          "payments": 20,
          "reliability": 67,
          "schema": 79,
          "security": 36,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds. Production prices are quote-only.",
        "bestFor": "Lenders, spend-management and fintech products that read ledgers alongside commerce and payment platforms, and that need writes an agent can retry safely.",
        "strengths": [
          "Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds",
          "Error codes 450, 451, 452 and 550 that separate the platform's failure from Rutter's",
          "OpenAPI spec per dated API version, with an upgrade guide listing breaking changes",
          "30-day sandbox trial with QuickBooks, Xero, FreshBooks and Zoho Books, no card",
          "99.9 per cent monthly uptime SLA published on the pricing page"
        ],
        "weaknesses": [
          "Production prices are quote-only",
          "Terms and privacy policy are Google Drive PDFs, and no legal entity is named on the site",
          "The per-connection access_token travels as a URL query parameter",
          "Four API incidents in September 2026, including about 25 hours of high latency and errors on 3 and 4 September",
          "No SDK, llms.txt or MCP server from the vendor"
        ],
        "agentNotes": [
          "Send X-Rutter-Version: 2024-08-31 on every call",
          "Send an Idempotency-Key on every create so a retry after a timeout doesn't write twice",
          "Use response_mode=prefer_sync and handle the 202 async_response anyway",
          "Treat 452 as the ledger throttling you and 429 as Rutter's 500-per-10-seconds organisation limit",
          "Keep access_token out of logged URLs. The docs only show it as a query parameter"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.6
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 62,
          "payments": 20,
          "reliability": 67,
          "schema": 79,
          "security": 36,
          "transparency": 26
        },
        "provenanceScore": 69
      },
      "connect": {
        "http": "curl \"https://sandbox.rutterapi.com/versioned/accounting/invoices?access_token=$RUTTER_ACCESS_TOKEN\" \\\n  -u \"$RUTTER_CLIENT_ID:$RUTTER_CLIENT_SECRET\" -H \"X-Rutter-Version: 2024-08-31\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/rutter"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Rutter",
        "domain": "rutter.com",
        "domainRegistered": "1996-10-28",
        "domainNote": "rutter.com was registered in 1996, long before the company, so the domain was bought later. The API runs on rutterapi.com.",
        "endpointOnVendorDomain": false,
        "terms": "https://drive.google.com/file/d/1J77WNI4JS_WjFiXn9NgQVBy_N_unqpCn/view",
        "privacy": "https://drive.google.com/file/d/1uZ76Be9jAih5g8kj8bKEAApCnMb6TQVL/view",
        "statusPage": "https://status.rutterapi.com",
        "changelog": "https://docs.rutter.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The footer gives an address at 3 East 28th St, Floor 5, New York, NY 10016 and a copyright line reading Rutter, with no company suffix. We couldn't read the Google Drive PDFs to confirm the legal name.",
          "The API and status page live on rutterapi.com while the site and docs are on rutter.com. Both are the vendor's.",
          "A trust centre at trust.rutter.com holds the security documentation."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rutter.json",
      "live": {
        "slug": "rutter",
        "probe": {
          "target": "https://production.rutterapi.com/versioned",
          "method": "get",
          "lastAt": "2026-10-10T13:02:28.792210839Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 429,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 324,
          "p95ms24h": 1317,
          "samples24h": 246,
          "samples30d": 2368,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 134,
              "ok": 134
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.rutterapi.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T13:01:58.199184991Z"
        },
        "securityTxt": {
          "url": "https://rutter.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:11.644287705Z"
        },
        "domain": {
          "domain": "rutter.com",
          "registered": "1996-10-28",
          "source": "https://rdap.verisign.com/com/v1/domain/rutter.com",
          "checkedAt": "2026-10-04T13:03:31.134242543Z"
        },
        "pages": [
          {
            "url": "https://docs.rutter.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:13.557677415Z",
            "changedAt": "2026-10-09T18:38:13.557677415Z",
            "fingerprint": "7b9f6db0a762"
          },
          {
            "url": "https://www.rutter.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-09T18:53:41.194225299Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4091577edbf3"
          },
          {
            "url": "https://drive.google.com/file/d/1uZ76Be9jAih5g8kj8bKEAApCnMb6TQVL/view",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:39:01.958023698Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d009b71cc585"
          },
          {
            "url": "https://drive.google.com/file/d/1J77WNI4JS_WjFiXn9NgQVBy_N_unqpCn/view",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:57.471182262Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca761d70fc05"
          }
        ],
        "updatedAt": "2026-10-10T13:02:28.792210839Z"
      }
    },
    "facts": [
      {
        "a": "Platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Rotki Solutions GmbH",
        "b": "Rutter",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://production.rutterapi.com/versioned",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-02",
        "b": "2026-09-24",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Rutter Accounting API scores 55.6 (C) on agent readiness against rotki MCP server's 45.6 (E), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, rotki MCP server or Rutter Accounting API?"
      },
      {
        "answer": "No hosted endpoint is listed for rotki MCP server. Rutter Accounting API has a hosted endpoint at https://production.rutterapi.com/versioned.",
        "question": "Can an agent call rotki MCP server and Rutter Accounting API without installing anything?"
      },
      {
        "answer": "rotki MCP server is open source (AGPL-3.0). No open-source release is listed for Rutter Accounting API.",
        "question": "Are rotki MCP server and Rutter Accounting API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Open source"
        ],
        "goodFor": "A Premium user who wants an assistant to answer questions about their own history, balances and cost basis on their own machine.",
        "slug": "rotki-mcp",
        "watchFor": "The desktop endpoint at http://127.0.0.1:4445/mcp takes no token, because the session key is forced empty outside Docker, so any local process can call it while the server runs"
      },
      {
        "aheadOn": [
          "Reliability, 67 against 50",
          "Security \u0026 auth, 36 against 20",
          "Payments \u0026 pricing, 20 against 10",
          "Maintenance \u0026 community, 62 against 35"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "Lenders, spend-management and fintech products that read ledgers alongside commerce and payment platforms, and that need writes an agent can retry safely.",
        "slug": "rutter",
        "watchFor": "Production prices are quote-only"
      }
    ],
    "job": {
      "capability": "accounting.ledger",
      "name": "Accounting ledgers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp.json",
        "title": "Apideck Accounting API + MCP vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.json",
        "title": "Codat vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp.json",
        "title": "FreeAgent API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-rutter.json",
        "title": "FreeAgent API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp.json",
        "title": "FreshBooks API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-rutter.json",
        "title": "FreshBooks API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-rotki-mcp.json",
        "title": "Merge Accounting API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp.json",
        "title": "Odoo External API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-rutter.json",
        "title": "Odoo External API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp.json",
        "title": "Pennylane vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-rutter.json",
        "title": "Pennylane vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.json",
        "title": "QuickBooks Online API + MCP vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.json",
        "title": "QuickBooks Online API + MCP vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-xero.json",
        "title": "rotki MCP server vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/rotki-mcp-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-zoho-books.json",
        "title": "rotki MCP server vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/rotki-mcp-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rutter-vs-xero.json",
        "title": "Rutter Accounting API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/rutter-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rutter-vs-zoho-books.json",
        "title": "Rutter Accounting API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/rutter-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-rutter.json",
        "title": "Invoice Ninja API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rutter.json",
        "title": "Apideck Accounting API + MCP vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-rutter.json",
        "title": "Codat vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.json",
        "title": "Merge Accounting API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-rutter"
      }
    ],
    "scores": [
      {
        "by": 17,
        "edge": "rutter",
        "key": "reliability",
        "name": "Reliability",
        "rotki-mcp": 50,
        "rutter": 67,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "rutter",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "rotki-mcp": 76,
        "rutter": 79,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "rotki-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "rotki-mcp": 69,
        "rutter": 67,
        "weight": 13
      },
      {
        "by": 16,
        "edge": "rutter",
        "key": "security",
        "name": "Security \u0026 auth",
        "rotki-mcp": 20,
        "rutter": 36,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "rutter",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "rotki-mcp": 10,
        "rutter": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "rutter",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "rotki-mcp": 35,
        "rutter": 62,
        "weight": 7
      },
      {
        "by": 0,
        "edge": "",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "rotki-mcp": 48,
        "rutter": 48,
        "weight": 7
      }
    ],
    "summary": "Rutter Accounting API scores 55.6 (C) on agent readiness against rotki MCP server's 45.6 (E), and leads in 5 of 7 scored categories. Both do accounting ledgers.",
    "verdicts": {
      "rotki-mcp": "A read-only MCP server in the rotki desktop app, for Premium Basic at €25 a month and above. Privacy modes mask addresses and account names, but amounts, dates, assets and counterparties reach the connected assistant in every mode. The desktop endpoint takes no token, and the feature shipped in v1.44.0 on 21 August 2026.",
      "rutter": "Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds. Production prices are quote-only."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter",
    "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.md",
    "slim": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.min.md"
  },
  "markdown": "Rutter Accounting API scores 55.6 (C) on agent readiness against rotki MCP server's 45.6 (E), and leads in 5 of 7 scored categories. Both do accounting ledgers.\n\n- rotki MCP server: grade E, 45.6/100, rank #865 of 954. Markdown https://www.anchorterminal.com/tools/rotki-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json\n- Rutter Accounting API: grade C, 55.6/100, rank #655 of 954. Markdown https://www.anchorterminal.com/tools/rutter.md · JSON https://www.anchorterminal.com/api/v1/tools/rutter.json\n- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md\n- All 77 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md\n\n## Which one, for what\n\n### rotki MCP server (E)\n\nGood for: A Premium user who wants an assistant to answer questions about their own history, balances and cost basis on their own machine.\n\nAlso in its favour:\n- Open source\n\nWatch for: The desktop endpoint at http://127.0.0.1:4445/mcp takes no token, because the session key is forced empty outside Docker, so any local process can call it while the server runs\n\n### Rutter Accounting API (C)\n\nGood for: Lenders, spend-management and fintech products that read ledgers alongside commerce and payment platforms, and that need writes an agent can retry safely.\n\nAhead on:\n- Reliability, 67 against 50\n- Security \u0026 auth, 36 against 20\n- Payments \u0026 pricing, 20 against 10\n- Maintenance \u0026 community, 62 against 35\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: Production prices are quote-only\n\n\n## Score by category\n\n| Category | Weight | rotki MCP server | Rutter Accounting API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 67 | Rutter Accounting API +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 79 | Rutter Accounting API +3 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 67 | rotki MCP server +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 20 | 36 | Rutter Accounting API +16 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 20 | Rutter Accounting API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 35 | 62 | Rutter Accounting API +27 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 48 | 48 | even |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **45.6 · E** | **55.6 · C** | |\n\n## Facts side by side\n\n| Fact | rotki MCP server | Rutter Accounting API |\n| --- | --- | --- |\n| Kind | Platform | HTTP API |\n| Vendor | Rotki Solutions GmbH | Rutter |\n| Hosted endpoint | no (local only) | `https://production.rutterapi.com/versioned` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | AGPL-3.0 | none |\n| Tools exposed | 8 | none |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-02 | 2026-09-24 |\n| Terms last updated | no document linked | couldn't be read |\n| Privacy policy last updated |  | couldn't be read |\n| Customer content may train models |  | couldn't be read |\n| Terms restrict automated access |  | couldn't be read |\n| Terms restrict benchmarking |  | couldn't be read |\n| Terms or service can change without notice |  | couldn't be read |\n| Arbitration or class-action waiver |  | couldn't be read |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**rotki MCP server.** A read-only MCP server in the rotki desktop app, for Premium Basic at €25 a month and above. Privacy modes mask addresses and account names, but amounts, dates, assets and counterparties reach the connected assistant in every mode. The desktop endpoint takes no token, and the feature shipped in v1.44.0 on 21 August 2026.\n\n**Rutter Accounting API.** Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds. Production prices are quote-only.\n\n## Before you call either\n\n### rotki MCP server\n\n1. Ask the person to start the server under Settings \u003e MCP in the desktop app, since it stays down until started, then connect to http://127.0.0.1:4445/mcp\n2. Call info first. It works without Premium and reports whether an unlocked backend is connected\n3. Call get_event_taxonomy before any aggregate over event_type, and sum on direction or event_group, since informational rows double count MEV and block rewards\n4. Call refresh_analytics_data before query_sql, and check source.completeness and unpriced_rows before reporting any total\n5. Check the privacy mode before answering from the data. Strict keeps amounts and dates, and raw sends addresses, hashes and notes verbatim\n\n### Rutter Accounting API\n\n1. Send X-Rutter-Version: 2024-08-31 on every call\n2. Send an Idempotency-Key on every create so a retry after a timeout doesn't write twice\n3. Use response_mode=prefer_sync and handle the 202 async_response anyway\n4. Treat 452 as the ledger throttling you and 429 as Rutter's 500-per-10-seconds organisation limit\n5. Keep access_token out of logged URLs. The docs only show it as a query parameter\n\n## Questions\n\n### Which is better for AI agents, rotki MCP server or Rutter Accounting API?\n\nRutter Accounting API scores 55.6 (C) on agent readiness against rotki MCP server's 45.6 (E), and leads in 5 of 7 scored categories.\n\n### Can an agent call rotki MCP server and Rutter Accounting API without installing anything?\n\nNo hosted endpoint is listed for rotki MCP server. Rutter Accounting API has a hosted endpoint at https://production.rutterapi.com/versioned.\n\n### Are rotki MCP server and Rutter Accounting API open source?\n\nrotki MCP server is open source (AGPL-3.0). No open-source release is listed for Rutter Accounting API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.json, and with the fewest tokens: https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"rotki-mcp\", \"b\": \"rutter\"}`. From a terminal: `anchor compare rotki-mcp rutter`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json and https://www.anchorterminal.com/api/v1/tools/rutter.json\n\n## Other comparisons with rotki MCP server or Rutter Accounting API\n\n- [Apideck Accounting API + MCP vs rotki MCP server](https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp.md)\n- [Codat vs rotki MCP server](https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.md)\n- [FreeAgent API vs rotki MCP server](https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp.md)\n- [FreeAgent API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-rutter.md)\n- [FreshBooks API vs rotki MCP server](https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp.md)\n- [FreshBooks API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freshbooks-vs-rutter.md)\n- [Merge Accounting API vs rotki MCP server](https://www.anchorterminal.com/compare/merge-accounting-vs-rotki-mcp.md)\n- [Odoo External API vs rotki MCP server](https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp.md)\n- [Odoo External API vs Rutter Accounting API](https://www.anchorterminal.com/compare/odoo-vs-rutter.md)\n- [Pennylane vs rotki MCP server](https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp.md)\n- [Pennylane vs Rutter Accounting API](https://www.anchorterminal.com/compare/pennylane-vs-rutter.md)\n- [QuickBooks Online API + MCP vs rotki MCP server](https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.md)\n- [QuickBooks Online API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.md)\n- [rotki MCP server vs Xero API + MCP](https://www.anchorterminal.com/compare/rotki-mcp-vs-xero.md)\n- [rotki MCP server vs Zoho Books](https://www.anchorterminal.com/compare/rotki-mcp-vs-zoho-books.md)\n- [Rutter Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/rutter-vs-xero.md)\n- [Rutter Accounting API vs Zoho Books](https://www.anchorterminal.com/compare/rutter-vs-zoho-books.md)\n- [Invoice Ninja API vs Rutter Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-rutter.md)\n- [Apideck Accounting API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-vs-rutter.md)\n- [Codat vs Rutter Accounting API](https://www.anchorterminal.com/compare/codat-vs-rutter.md)\n- [Merge Accounting API vs Rutter Accounting API](https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "rotki MCP server vs Rutter Accounting API",
        "url": ""
      }
    ],
    "description": "Rutter Accounting scores 55.6 (C) to rotki's 45.6 (E) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "rotki MCP server E 45.6",
      "Rutter Accounting API C 55.6",
      "scores"
    ],
    "h1": "rotki MCP server vs Rutter Accounting API",
    "image": "https://www.anchorterminal.com/assets/og/compare-rotki-mcp-vs-rutter.png",
    "path": "/compare/rotki-mcp-vs-rutter",
    "published": "2026-10-01",
    "section": "tools",
    "title": "rotki vs Rutter Accounting for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-10",
    "url": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 680
  },
  "version": 1
}
