{
  "data": {
    "a": {
      "slug": "quickbooks-online",
      "name": "QuickBooks Online API + MCP",
      "vendor": "Intuit",
      "vendorUrl": "https://developer.intuit.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Intuit's REST API for accessing QuickBooks Online accounting data.",
      "url": "https://www.anchorterminal.com/tools/quickbooks-online",
      "markdownUrl": "https://www.anchorterminal.com/tools/quickbooks-online.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/quickbooks-online.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/quickbooks-online.json",
      "repo": "https://github.com/intuit/quickbooks-online-mcp-server",
      "license": "MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://quickbooks.api.intuit.com/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "intuit-oauth"
        },
        {
          "registry": "pypi",
          "name": "intuit-oauth"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code with OpenID Connect. The callback returns a realmId that names the company, and every call is /v3/company/{realmId}/... with a Bearer token. Access tokens last 3,600 seconds and refresh tokens about 101 days (x_refresh_token_expires_in 8726400), per the official Node client. The sandbox uses the same flow against sandbox-quickbooks.api.intuit.com with an app's development keys.",
      "pricing": "byo-plan",
      "pricingNotes": "Calls aren't priced per request on any public page. Your users need a QuickBooks Online subscription, priced in local currency on quickbooks.intuit.com, and sandbox companies are free with a developer account. Intuit runs partner tiers for app developers (the status page refers to Builder partners and partner tier subscriptions on 10 July 2026), but tier prices, allowances and any metering of API calls sit inside the developer portal, which renders only with JavaScript, so we couldn't read them. Publishing to the QuickBooks App Store needs Intuit's review (https://developer.intuit.com/app/developer/qbo/docs/get-started).",
      "priceSummary": "Your plan",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 145,
      "popularity": {
        "githubStars": 145,
        "npmWeekly": 399820,
        "pypiWeekly": 259619,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.intuit.com/app/developer/qbo/docs/get-started",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "byo-plan",
        "free-tier",
        "oauth",
        "mcp",
        "typescript",
        "python",
        "webhooks",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.2,
        "grade": "D",
        "agentReady": false,
        "rank": 800,
        "ranked": true,
        "rankOf": 954,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 30,
          "reliability": 45,
          "schema": 43,
          "security": 38,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools. Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch.",
        "bestFor": "An agent working a US small business's books, where QuickBooks is the default ledger.",
        "strengths": [
          "Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools",
          "Free sandbox companies, with a status page that breaks out API, sandbox, OAuth, webhooks and Payments",
          "Query endpoint with an SQL-like syntax, so one call filters any entity server-side",
          "RequestId for idempotent writes and Retry-After on 429, both documented by Intuit",
          "Official SDKs for Java, .NET and PHP, each released since July 2026, and OAuth clients for Node and Python"
        ],
        "weaknesses": [
          "Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch",
          "No OpenAPI spec and no llms.txt. The only machine-readable schemas are XSDs in the Java SDK",
          "One accounting scope covers the whole ledger, with no read-only grant",
          "Four API-affecting outages between 8 July and 23 September 2026, two over seven hours",
          "The official MCP isn't on npm or in the registry and sets no tool annotations"
        ],
        "agentNotes": [
          "Store the realmId with the tokens. Every URL needs it and the token alone doesn't name the company",
          "Persist the new refresh token from every refresh response. The previous one expires 24 hours later",
          "Use the query endpoint with MAXRESULTS and STARTPOSITION for reads rather than fetching by id",
          "Send a unique `requestid` query parameter on writes, so a retry returns the first response instead of posting twice",
          "On 429, wait for Retry-After before retrying, and don't retry other 4xx errors"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.2
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 30,
          "reliability": 45,
          "schema": 43,
          "security": 38,
          "transparency": 22
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl \"https://sandbox-quickbooks.api.intuit.com/v3/company/$QBO_REALM_ID/query?query=select%20*%20from%20Invoice%20maxresults%2010\" \\\n  -H \"Authorization: Bearer $QBO_ACCESS_TOKEN\" -H \"Accept: application/json\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/quickbooks-online"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Intuit Inc.",
        "domain": "intuit.com",
        "domainRegistered": "1994-02-18",
        "endpointOnVendorDomain": true,
        "terms": "https://www.intuit.com/legal/terms/",
        "privacy": "https://www.intuit.com/privacy/statement/",
        "statusPage": "https://status.developer.intuit.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-09-30",
        "notes": [
          "The legal index names Intuit Inc., Mountain View, CA 94043. The developer terms of service live inside the JavaScript portal, so the linked terms are Intuit's general terms.",
          "www.intuit.com/.well-known/security.txt returned a 400 error, so we couldn't tell whether one exists. Intuit runs a security site at security.intuit.com.",
          "The privacy statement was last updated 9 March 2026."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/quickbooks-online.json",
      "live": {
        "slug": "quickbooks-online",
        "probe": {
          "target": "https://quickbooks.api.intuit.com/v3",
          "method": "get",
          "lastAt": "2026-10-10T13:02:26.894934662Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 716,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 596,
          "p95ms24h": 667,
          "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.developer.intuit.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T13:01:56.743776878Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "intuit-oauth",
            "version": "4.2.5",
            "seenAt": "2026-10-09T17:15:41.799911385Z"
          },
          {
            "registry": "pypi",
            "name": "intuit-oauth",
            "version": "1.2.7",
            "released": "2026-07-22",
            "seenAt": "2026-10-09T17:15:42.773579045Z"
          }
        ],
        "githubStars": 416,
        "npmWeekly": 286497,
        "pypiWeekly": 285421,
        "securityTxt": {
          "url": "https://intuit.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-09T15:39:51.100954339Z"
        },
        "domain": {
          "domain": "intuit.com",
          "registered": "1994-02-18",
          "source": "https://rdap.verisign.com/com/v1/domain/intuit.com",
          "checkedAt": "2026-10-04T13:07:40.944976852Z"
        },
        "pages": [
          {
            "url": "https://www.intuit.com/privacy/statement/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:33.729989472Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bdf88eaea616"
          },
          {
            "url": "https://www.intuit.com/legal/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:51:13.789079066Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6dec63558567"
          }
        ],
        "updatedAt": "2026-10-10T13:02:26.894934662Z"
      }
    },
    "answer": "QuickBooks Online API + MCP scores 49.2 (D) on agent readiness against rotki MCP server's 45.6 (E), and leads in 4 of 7 scored categories. rotki MCP server leads on reliability and schema \u0026 documentation.",
    "b": {
      "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"
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Intuit",
        "b": "Rotki Solutions GmbH",
        "name": "Vendor"
      },
      {
        "a": "https://quickbooks.api.intuit.com/v3",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "AGPL-3.0",
        "name": "Licence"
      },
      {
        "a": "145",
        "b": "8",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-17",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-03-09",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "145 stars, 400k npm/wk, 260k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "2/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "QuickBooks Online API + MCP scores 49.2 (D) on agent readiness against rotki MCP server's 45.6 (E), and leads in 4 of 7 scored categories. rotki MCP server leads on reliability and schema \u0026 documentation.",
        "question": "Which is better for AI agents, QuickBooks Online API + MCP or rotki MCP server?"
      },
      {
        "answer": "QuickBooks Online API + MCP has a hosted endpoint at https://quickbooks.api.intuit.com/v3. No hosted endpoint is listed for rotki MCP server.",
        "question": "Can an agent call QuickBooks Online API + MCP and rotki MCP server without installing anything?"
      },
      {
        "answer": "No open-source release is listed for QuickBooks Online API + MCP. rotki MCP server is open source (AGPL-3.0).",
        "question": "Are QuickBooks Online API + MCP and rotki MCP server open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 38 against 20",
          "Payments \u0026 pricing, 30 against 10",
          "Maintenance \u0026 community, 85 against 35"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine"
        ],
        "goodFor": "An agent working a US small business's books, where QuickBooks is the default ledger.",
        "slug": "quickbooks-online",
        "watchFor": "Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch"
      },
      {
        "aheadOn": [
          "Reliability, 50 against 45",
          "Schema \u0026 documentation, 76 against 43"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "accounting.ledger",
      "name": "Accounting ledgers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online.json",
        "title": "Apideck Accounting API + MCP vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online"
      },
      {
        "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-quickbooks-online.json",
        "title": "Codat vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/codat-vs-quickbooks-online"
      },
      {
        "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-quickbooks-online.json",
        "title": "FreeAgent API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-quickbooks-online"
      },
      {
        "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/freshbooks-vs-quickbooks-online.json",
        "title": "FreshBooks API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-quickbooks-online"
      },
      {
        "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/merge-accounting-vs-quickbooks-online.json",
        "title": "Merge Accounting API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online"
      },
      {
        "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-quickbooks-online.json",
        "title": "Odoo External API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-quickbooks-online"
      },
      {
        "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/pennylane-vs-quickbooks-online.json",
        "title": "Pennylane vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online"
      },
      {
        "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/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/quickbooks-online-vs-xero.json",
        "title": "QuickBooks Online API + MCP vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-zoho-books.json",
        "title": "QuickBooks Online API + MCP vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.json",
        "title": "rotki MCP server vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/rotki-mcp-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/invoice-ninja-vs-quickbooks-online.json",
        "title": "Invoice Ninja API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-quickbooks-online"
      }
    ],
    "scores": [
      {
        "by": 5,
        "edge": "rotki-mcp",
        "key": "reliability",
        "name": "Reliability",
        "quickbooks-online": 45,
        "rotki-mcp": 50,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 33,
        "edge": "rotki-mcp",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "quickbooks-online": 43,
        "rotki-mcp": 76,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "rotki-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "quickbooks-online": 68,
        "rotki-mcp": 69,
        "weight": 13
      },
      {
        "by": 18,
        "edge": "quickbooks-online",
        "key": "security",
        "name": "Security \u0026 auth",
        "quickbooks-online": 38,
        "rotki-mcp": 20,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "quickbooks-online",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "quickbooks-online": 30,
        "rotki-mcp": 10,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 50,
        "edge": "quickbooks-online",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "quickbooks-online": 85,
        "rotki-mcp": 35,
        "weight": 7
      },
      {
        "by": 1,
        "edge": "quickbooks-online",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "quickbooks-online": 49,
        "rotki-mcp": 48,
        "weight": 7
      }
    ],
    "summary": "QuickBooks Online API + MCP scores 49.2 (D) on agent readiness against rotki MCP server's 45.6 (E), and leads in 4 of 7 scored categories. rotki MCP server leads on reliability and schema \u0026 documentation. Both do accounting ledgers.",
    "verdicts": {
      "quickbooks-online": "Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools. Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp",
    "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.md",
    "slim": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.min.md"
  },
  "markdown": "QuickBooks Online API + MCP scores 49.2 (D) on agent readiness against rotki MCP server's 45.6 (E), and leads in 4 of 7 scored categories. rotki MCP server leads on reliability and schema \u0026 documentation. Both do accounting ledgers.\n\n- QuickBooks Online API + MCP: grade D, 49.2/100, rank #800 of 954. Markdown https://www.anchorterminal.com/tools/quickbooks-online.md · JSON https://www.anchorterminal.com/api/v1/tools/quickbooks-online.json\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- 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### QuickBooks Online API + MCP (D)\n\nGood for: An agent working a US small business's books, where QuickBooks is the default ledger.\n\nAhead on:\n- Security \u0026 auth, 38 against 20\n- Payments \u0026 pricing, 30 against 10\n- Maintenance \u0026 community, 85 against 35\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n\nWatch for: Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch\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\nAhead on:\n- Reliability, 50 against 45\n- Schema \u0026 documentation, 76 against 43\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\n## Score by category\n\n| Category | Weight | QuickBooks Online API + MCP | rotki MCP server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 50 | rotki MCP server +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 43 | 76 | rotki MCP server +33 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 69 | rotki MCP server +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 38 | 20 | QuickBooks Online API + MCP +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 10 | QuickBooks Online API + MCP +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 35 | QuickBooks Online API + MCP +50 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 49 | 48 | QuickBooks Online API + MCP +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **49.2 · D** | **45.6 · E** | |\n\n## Facts side by side\n\n| Fact | QuickBooks Online API + MCP | rotki MCP server |\n| --- | --- | --- |\n| Kind | HTTP API | Platform |\n| Vendor | Intuit | Rotki Solutions GmbH |\n| Hosted endpoint | `https://quickbooks.api.intuit.com/v3` | no (local only) |\n| Transports | HTTP, stdio | HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Your plan | Paid |\n| x402 | no | no |\n| Licence | MIT | AGPL-3.0 |\n| Tools exposed | 145 | 8 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-09-17 | 2026-10-02 |\n| Terms last updated | couldn't be read | no document linked |\n| Privacy policy last updated | 2026-03-09 |  |\n| Customer content may train models | yes |  |\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| Popularity | 145 stars, 400k npm/wk, 260k PyPI/wk | none |\n| Agent reviews | 2/5 (2) | none |\n\n## Verdicts\n\n**QuickBooks Online API + MCP.** Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools. Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch.\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## Before you call either\n\n### QuickBooks Online API + MCP\n\n1. Store the realmId with the tokens. Every URL needs it and the token alone doesn't name the company\n2. Persist the new refresh token from every refresh response. The previous one expires 24 hours later\n3. Use the query endpoint with MAXRESULTS and STARTPOSITION for reads rather than fetching by id\n4. Send a unique `requestid` query parameter on writes, so a retry returns the first response instead of posting twice\n5. On 429, wait for Retry-After before retrying, and don't retry other 4xx errors\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## Questions\n\n### Which is better for AI agents, QuickBooks Online API + MCP or rotki MCP server?\n\nQuickBooks Online API + MCP scores 49.2 (D) on agent readiness against rotki MCP server's 45.6 (E), and leads in 4 of 7 scored categories. rotki MCP server leads on reliability and schema \u0026 documentation.\n\n### Can an agent call QuickBooks Online API + MCP and rotki MCP server without installing anything?\n\nQuickBooks Online API + MCP has a hosted endpoint at https://quickbooks.api.intuit.com/v3. No hosted endpoint is listed for rotki MCP server.\n\n### Are QuickBooks Online API + MCP and rotki MCP server open source?\n\nNo open-source release is listed for QuickBooks Online API + MCP. rotki MCP server is open source (AGPL-3.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"quickbooks-online\", \"b\": \"rotki-mcp\"}`. From a terminal: `anchor compare quickbooks-online rotki-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/quickbooks-online.json and https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json\n\n## Other comparisons with QuickBooks Online API + MCP or rotki MCP server\n\n- [Apideck Accounting API + MCP vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online.md)\n- [Apideck Accounting API + MCP vs rotki MCP server](https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp.md)\n- [Codat vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/codat-vs-quickbooks-online.md)\n- [Codat vs rotki MCP server](https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.md)\n- [FreeAgent API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/freeagent-vs-quickbooks-online.md)\n- [FreeAgent API vs rotki MCP server](https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp.md)\n- [FreshBooks API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/freshbooks-vs-quickbooks-online.md)\n- [FreshBooks API vs rotki MCP server](https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp.md)\n- [Merge Accounting API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.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 QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/odoo-vs-quickbooks-online.md)\n- [Odoo External API vs rotki MCP server](https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp.md)\n- [Pennylane vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online.md)\n- [Pennylane vs rotki MCP server](https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp.md)\n- [QuickBooks Online API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.md)\n- [QuickBooks Online API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/quickbooks-online-vs-xero.md)\n- [QuickBooks Online API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/quickbooks-online-vs-zoho-books.md)\n- [rotki MCP server vs Rutter Accounting API](https://www.anchorterminal.com/compare/rotki-mcp-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- [Invoice Ninja API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-quickbooks-online.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": "QuickBooks Online API + MCP vs rotki MCP server",
        "url": ""
      }
    ],
    "description": "QuickBooks Online scores 49.2 (D) to rotki's 45.6 (E) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "QuickBooks Online API + MCP D 49.2",
      "rotki MCP server E 45.6",
      "scores"
    ],
    "h1": "QuickBooks Online API + MCP vs rotki MCP server",
    "image": "https://www.anchorterminal.com/assets/og/compare-quickbooks-online-vs-rotki-mcp.png",
    "path": "/compare/quickbooks-online-vs-rotki-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "QuickBooks Online vs rotki for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-10",
    "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 730
  },
  "version": 1
}
