{
  "data": {
    "a": {
      "slug": "onyx",
      "name": "Onyx",
      "vendor": "DanswerAI, Inc. (Onyx, formerly Danswer)",
      "vendorUrl": "https://www.onyx.app",
      "kind": "platform",
      "category": "company-knowledge",
      "summary": "Open-source enterprise search and chat platform, formerly Danswer.",
      "url": "https://www.anchorterminal.com/tools/onyx",
      "markdownUrl": "https://www.anchorterminal.com/tools/onyx.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/onyx.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/onyx.json",
      "repo": "https://github.com/onyx-dot-app/onyx",
      "license": "MIT (Community Edition, including the MCP server, the API server, the CLI and the connectors). Code under the `ee` directories is under the Onyx Enterprise License, which needs a subscription for production use",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://cloud.onyx.app/mcp",
      "packages": [
        {
          "registry": "oci",
          "name": "docker.io/onyxdotapp/onyx-backend"
        },
        {
          "registry": "oci",
          "name": "docker.io/onyxdotapp/onyx-web-server"
        },
        {
          "registry": "pypi",
          "name": "onyx-cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "Every request takes a Bearer token in the `Authorization` header, either a personal access token or an API key. Personal access tokens belong to a user, can be full access or limited to `read:search`, `read:chat`, `write:chat` or `use:llm_gateway`, expire after 7, 30 or 365 days or never, are stored hashed and can be revoked one by one. API keys belong to service accounts, and since v4.7 their rights come from the groups they're put in (none means chat only, Basic adds search, Admin reaches every endpoint). The MCP server checks each token against the API server's /me and passes it through. No OAuth for MCP clients. People sign in to the web app with passwords, Google OAuth, OIDC or SAML.",
      "pricing": "freemium",
      "pricingNotes": "The Community Edition is MIT and free to self-host with no seat limit. Onyx Cloud and licensed self-hosting have two plans on onyx.app/pricing. Business is $20 a user a month billed annually, and Enterprise (OIDC and SAML SSO, on-premise and region-specific deployments, white-labelling, an enterprise SLA) is by quote. Single-tenant cloud needs at least 100 licences per the docs. Onyx Cloud has a two-week free trial with no card (checked 2026-10-03).",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing page or the source (checked 2026-10-03).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 32300,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://docs.onyx.app/deployment/configuration/mcp_server",
      "llmsTxt": "https://docs.onyx.app/llms.txt",
      "openapi": "https://docs.onyx.app/developers/api_reference/openapi.json",
      "capabilities": [
        "knowledge.search",
        "web.search",
        "web.fetch",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "hosted",
        "mcp",
        "openapi",
        "llms-txt",
        "python",
        "cli",
        "docker",
        "freemium",
        "no-card",
        "enterprise",
        "commercial-licence",
        "telemetry-default-on",
        "status-page"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65,
        "grade": "B",
        "agentReady": false,
        "rank": 332,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 77,
          "payments": 30,
          "reliability": 69,
          "schema": 88,
          "security": 71,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-07-20. GHSA-q62f-rv3h-f822 (critical, CVSS 9.0). Any signed-in user could read, in clear text, other users' live OAuth tokens for per-user MCP servers such as Slack, Atlassian or Notion through GET /api/mcp/servers. Found in an external pentest in May 2026, fixed in 4.0.0 (26 May 2026) and published, so the deduction is reduced, -3 (https://github.com/onyx-dot-app/onyx/security/advisories/GHSA-q62f-rv3h-f822)",
          "2026-04-29 and 2026-07-20. Three moderate IDOR advisories, other users' chat files downloadable through /chat/file/{file_id} (GHSA-vg3h-35f7-7w6r), other users' chat sessions stoppable through /chat/stop-chat-session (GHSA-rw6w-hp62-gc8w) and curators able to change any user group's membership (GHSA-7f48-vgpj-h95m). Fixed and published, -1 (https://github.com/onyx-dot-app/onyx/security/advisories)"
        ],
        "verdict": "MIT Community Edition, MCP server included, run by Docker Compose, Helm or Terraform, with a two-week Cloud trial that needs no card. GHSA-q62f-rv3h-f822 (critical, CVSS 9.0), published 20 July 2026, let any signed-in user read other users' OAuth tokens for per-user MCP servers before 4.0.0.",
        "bestFor": "Teams that want one permission-aware index over Slack, Drive, Confluence, Jira, GitHub and the rest, self-hosted or air-gapped, with agents searching it through MCP.",
        "strengths": [
          "MIT Community Edition, MCP server included, run by Docker Compose, Helm or Terraform, with a two-week Cloud trial that needs no card",
          "Three read-only MCP tools in 3,360 characters, whose filters return close matches instead of searching unscoped",
          "Personal access tokens limited to `read:search`, with 7, 30 or 365-day expiry, hashed storage and revocation one by one",
          "OpenAPI 3.1 file of 110 operations, llms.txt, Markdown docs and dated release notes with Deployment Changes sections",
          "A minor release every two to three weeks, 4.3.0 on 6 July to 4.8.0 on 23 September 2026, with patches for older lines"
        ],
        "weaknesses": [
          "GHSA-q62f-rv3h-f822 (critical, CVSS 9.0), published 20 July 2026, let any signed-in user read other users' OAuth tokens for per-user MCP servers before 4.0.0",
          "Telemetry is on by default and documented as anonymous, while its events carry user IDs and Enterprise builds send the first user's email domain",
          "Document search has no result limit or paging, and an unparseable `time_cutoff` is dropped with only a server log line",
          "The self-hosted MCP server is off by default, takes no OAuth and isn't in the official MCP registry",
          "The privacy policy and Cloud agreement render only with JavaScript, and there's no security.txt or bug bounty"
        ],
        "agentNotes": [
          "Get the instance URL from the operator. Cloud is https://cloud.onyx.app/mcp, and a self-hosted server only answers once `MCP_SERVER_ENABLED=true`",
          "Use a token limited to `read:search`. It covers every MCP tool and nothing else",
          "Pass `time_cutoff` as a full ISO 8601 timestamp. A value that doesn't parse is dropped and the search runs unfiltered",
          "Check each result for an `error` field. Failures come back with an empty `results` list, not as tool errors",
          "Set `skip_query_expansion` to true for exact phrases. It skips an LLM call on every search"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 77,
          "payments": 30,
          "reliability": 69,
          "schema": 88,
          "security": 71,
          "transparency": 57
        },
        "provenanceScore": 69
      },
      "connect": {
        "install": "curl -fsSL https://onyx.app/install_onyx.sh | bash",
        "http": "curl -s -X POST \"${API_BASE_URL}/search\" \\\n  -H \"Authorization: Bearer ${API_KEY}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"What is our parental leave policy?\", \"sources\": [\"confluence\", \"google_drive\"]}'",
        "claudeCode": "claude mcp add --transport http onyx https://cloud.onyx.app/mcp \\\n  --header \"Authorization: Bearer YOUR_ONYX_TOKEN_HERE\"",
        "config": {
          "mcpServers": {
            "onyx": {
              "headers": {
                "Authorization": "Bearer ${ONYX_TOKEN}"
              },
              "type": "http",
              "url": "https://cloud.onyx.app/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/knowledge.search",
        "tool": "https://letme.dev/onyx"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Onyx Business",
          "unit": "seat-month",
          "usd": 20,
          "note": "billed annually"
        }
      ],
      "provenance": {
        "legalEntity": "DanswerAI, Inc.",
        "domain": "onyx.app",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://onyx.app/legal/cloud",
        "privacy": "https://onyx.app/legal/privacy-policy",
        "statusPage": "https://status.onyx.app",
        "changelog": "https://docs.onyx.app/changelog",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The LICENSE and the Onyx Enterprise License name DanswerAI, Inc., and the site footer reads Onyx.",
          "The privacy policy and the Onyx Cloud Subscription Agreement show a last update of 1 July 2025 and load their text with JavaScript, which our reader couldn't see.",
          "onyx.app/.well-known/security.txt returns 404. SECURITY.md routes reports through GitHub private vulnerability reporting.",
          "The shared MCP endpoint cloud.onyx.app/mcp is on the vendor's domain. A self-hosted server answers on the operator's own host."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/onyx.json",
      "live": {
        "slug": "onyx",
        "probe": {
          "target": "https://cloud.onyx.app/mcp",
          "method": "get",
          "lastAt": "2026-10-10T03:53:36.553486781Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 312,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 303,
          "p95ms24h": 375,
          "samples24h": 249,
          "samples30d": 1700,
          "days": [
            {
              "date": "2026-10-03",
              "probes": 54,
              "ok": 54
            },
            {
              "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": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.onyx.app",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:54.475728467Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "onyx-dot-app/onyx",
            "version": "v4.9.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-09T17:09:43.344825805Z"
          },
          {
            "registry": "pypi",
            "name": "onyx-cli",
            "version": "1.4.4",
            "released": "2026-09-13",
            "seenAt": "2026-10-09T17:09:43.154403677Z"
          }
        ],
        "githubStars": 32371,
        "pypiWeekly": 735,
        "securityTxt": {
          "url": "https://onyx.app/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:49.27978482Z"
        },
        "llmsTxt": {
          "url": "https://docs.onyx.app/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:28.922316539Z"
        },
        "domain": {
          "domain": "onyx.app",
          "registered": "2018-05-04",
          "source": "https://pubapi.registry.google/rdap/domain/onyx.app",
          "checkedAt": "2026-10-04T13:08:25.059354531Z"
        },
        "pages": [
          {
            "url": "https://docs.onyx.app/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:37:56.340947457Z",
            "changedAt": "2026-10-08T18:19:12.353203571Z",
            "fingerprint": "903bb0fb92dc"
          },
          {
            "url": "https://onyx.app/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:39.835204413Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bd896d976a98"
          },
          {
            "url": "https://onyx.app/legal/cloud",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:37.60961682Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0b08a2af7854"
          }
        ],
        "updatedAt": "2026-10-10T03:53:36.553486781Z"
      }
    },
    "answer": "Onyx scores 65 (B) on agent readiness against Secoda's 44.5 (E), and leads in every scored category.",
    "b": {
      "slug": "secoda",
      "name": "Secoda",
      "vendor": "Secoda, Inc.",
      "vendorUrl": "https://www.secoda.co",
      "kind": "http-api",
      "category": "company-knowledge",
      "summary": "Secoda is a hosted data catalogue with lineage, monitoring and governance, which Atlassian has acquired. Agents use a REST API with a workspace API key, and a local MCP server for search, lineage and SQL.",
      "url": "https://www.anchorterminal.com/tools/secoda",
      "markdownUrl": "https://www.anchorterminal.com/tools/secoda.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/secoda.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/secoda.json",
      "repo": "https://github.com/secoda/secoda-mcp",
      "license": "Proprietary service under the Secoda Master Subscription Agreement. The local MCP server in secoda/secoda-mcp is MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "Access is granted inside a customer's Secoda workspace. A user generates an API key under workspace settings, API, and sends it as `Authorization: Bearer \u003ckey\u003e`. The key has the same access as the user who created it, so it follows that user's role (Viewer, Editor or Admin) and team membership. No scopes, expiry or OAuth flow were found in the reviewed documentation. The MCP server's README says an admin generates the token. The MCP server reads the same key from the `API_TOKEN` environment variable.",
      "pricing": "paid",
      "pricingNotes": "No prices are published. www.secoda.co/pricing names three plans, Core, Premium and Enterprise, with editor and admin seats listed as Custom, and every plan button links to a sales form. No trial or sign-up button was found on the site, so an agent cannot start without a contract. The plan table lists API access under Core, while the FAQ on the same page says the API is on Business and Enterprise plans. The API docs still say to sign up for free at app.secoda.co, which we did not confirm (checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the pricing page or the MCP server source (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": 1,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.secoda.co/api",
      "llmsTxt": "https://docs.secoda.co/llms.txt",
      "capabilities": [
        "data.catalogue",
        "data.lineage",
        "knowledge.search",
        "work.docs"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "enterprise",
        "official",
        "api-key",
        "openapi",
        "llms-txt",
        "mcp",
        "sales-led",
        "sla",
        "soc2",
        "bug-bounty",
        "self-hosted-option"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.5,
        "grade": "E",
        "agentReady": false,
        "rank": 875,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 44,
          "maintenance": 60,
          "payments": 0,
          "reliability": 40,
          "schema": 59,
          "security": 54,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The REST API reference embeds OpenAPI 3.0 definitions on every page, with `llms.txt` and Markdown copies, and the subscription agreement carries a 99.9 per cent uptime commitment. No price, trial or sign-up is published, no status page was found, and the public changelog stops at 28 October 2025 although self-hosted releases continue.",
        "bestFor": "A data team already on Secoda that wants an agent to read and edit catalogue metadata, lineage, documents and glossary terms, or to search the catalogue and run SQL through the local MCP server.",
        "strengths": [
          "Every API reference page embeds an OpenAPI 3.0 definition (version 8.22.66), and the docs publish `llms.txt` and a Markdown copy of each page",
          "The Service Level Agreement commits to 99.9 per cent monthly availability, with a 5 per cent service credit for a day with 30 minutes or more of downtime",
          "An audit log filterable by user, date, type and resource, readable through `/api/v1/activity_log/audit_logs/`, with SIEM logging on the Enterprise plan",
          "25 subprocessors are listed with locations, and hosting is on AWS in us-east-1, eu-central-1 or ap-southeast-1",
          "Self-hosted releases are tagged regularly, five between 4 August and 6 October 2026, the latest v2026.3.1"
        ],
        "weaknesses": [
          "No price is published. The three plans (Core, Premium, Enterprise) link to a sales form, and no trial or sign-up button was found on the site",
          "No status page is linked from the home page, the pricing page or the documentation index",
          "The public changelog stops at 28 October 2025 and the self-hosted changelog at 29 October 2025, while self-hosted versions were tagged up to 6 October 2026",
          "An API key has the same access as the user who created it, with no scopes. No idempotency keys and no error body format are documented",
          "The MCP page lists eight tools, and the published server registers six, with one-line descriptions and no read-only or destructive annotations",
          "The Terms of Use (23 December 2021) forbid bots that crawl or scrape Secoda, and the subscription agreement forbids disclosing benchmark results. Both matter before any probe is run"
        ],
        "agentNotes": [
          "Pick the base URL by workspace region. `app.secoda.co` uses `api.secoda.co`, `eu.secoda.co` uses `eapi.secoda.co` and `apac.secoda.co` uses `aapi.secoda.co`",
          "Keep writes under 30 PUT, PATCH or POST calls a minute on entity endpoints, and back off on a 429",
          "List with `/api/v1/resource/catalog` and a URL-encoded JSON `filter`. The per-type list endpoints for tables are marked deprecated, and results stop at 10,000 resources",
          "Send at most 100 entities to `/api/v1/resource/all/bulk_update/` in one request",
          "Add a trailing slash when an endpoint does not behave as expected, as the docs advise",
          "Treat an API key as the creating user. `run_sql` in the MCP server works only when an admin has enabled Run SQL and the user has query access to the integration"
        ],
        "metrics": {
          "kind": "remote",
          "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": 44.5
          }
        ],
        "editorialScores": {
          "ergonomics": 44,
          "maintenance": 60,
          "payments": 0,
          "reliability": 40,
          "schema": 59,
          "security": 54,
          "transparency": 56
        },
        "provenanceScore": 59
      },
      "connect": {
        "http": "curl 'https://api.secoda.co/api/v1/resource/catalog' -H 'Authorization: Bearer \u003cAPI key\u003e'",
        "config": {
          "mcpServers": {
            "secoda-mcp": {
              "args": [
                "/path/to/secoda-mcp/server.py"
              ],
              "command": "python",
              "env": {
                "API_TOKEN": "your-api-token",
                "API_URL": "https://app.secoda.co/api/v1/"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/data.catalogue",
        "tool": "https://letme.dev/secoda"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Secoda, Inc.",
        "domain": "secoda.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://docs.secoda.co/policies/master-subscription-agreement",
        "privacy": "https://docs.secoda.co/policies/privacy-policy",
        "statusPage": "",
        "changelog": "https://docs.secoda.co/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Master Subscription Agreement names Secoda, Inc., an Ontario corporation at 109 Atlantic Ave., Toronto, ON M6K 1G1, Canada, and is governed by the laws of Ontario and Canada. It incorporates the Service Level Agreement and the Data Processing Agreement published beside it.",
          "Atlassian has acquired Secoda, per the post on www.secoda.co updated 4 December 2025. None of the legal documents we read mentions Atlassian.",
          "The Terms of Use page (last updated 23 December 2021) covers the site and says not to use bots to crawl or scrape Secoda. The Secoda AI Terms (17 July 2025) supplement the services agreement.",
          "The API answers on api.secoda.co, eapi.secoda.co and aapi.secoda.co.",
          "www.secoda.co/.well-known/security.txt returns 404. The security policy and bug bounty pages take reports by email.",
          "No status page is linked from the home page, the pricing page or the documentation index.",
          "The registration date of secoda.co was not established. The RDAP lookup we used has no service for .co domains."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/secoda.json",
      "live": {
        "slug": "secoda",
        "githubStars": 1,
        "pages": [
          {
            "url": "https://docs.secoda.co/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:15.806583184Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bb1750df5552"
          },
          {
            "url": "https://docs.secoda.co/policies/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:20.328935317Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "152634c5bb84"
          },
          {
            "url": "https://docs.secoda.co/policies/master-subscription-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:18.29936577Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9530fcb310d5"
          }
        ],
        "updatedAt": "2026-10-09T18:38:20.328935317Z"
      }
    },
    "facts": [
      {
        "a": "Model platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DanswerAI, Inc. (Onyx, formerly Danswer)",
        "b": "Secoda, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://cloud.onyx.app/mcp",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (Community Edition, including the MCP server, the API server, the CLI and the connectors). Code under the `ee` directories is under the Onyx Enterprise License, which needs a subscription for production use",
        "b": "Proprietary service under the Secoda Master Subscription Agreement. The local MCP server in secoda/secoda-mcp is MIT",
        "name": "Licence"
      },
      {
        "a": "3",
        "b": "6",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-02",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "32k stars",
        "b": "1 stars",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Onyx scores 65 (B) on agent readiness against Secoda's 44.5 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Onyx or Secoda?"
      },
      {
        "answer": "Onyx has a hosted endpoint at https://cloud.onyx.app/mcp. Secoda runs on your own machine, with no hosted endpoint listed.",
        "question": "Can an agent call Onyx and Secoda without installing anything?"
      },
      {
        "answer": "Onyx is open source (MIT (Community Edition, including the MCP server, the API server, the CLI and the connectors). Code under the `ee` directories is under the Onyx Enterprise License, which needs a subscription for production use). No open-source release is listed for Secoda.",
        "question": "Are Onyx and Secoda open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 69 against 40",
          "Schema \u0026 documentation, 88 against 59",
          "Agent ergonomics, 77 against 44",
          "Security \u0026 auth, 71 against 54",
          "Payments \u0026 pricing, 30 against 0",
          "Maintenance \u0026 community, 77 against 60",
          "Transparency \u0026 trust, 63 against 58"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Teams that want one permission-aware index over Slack, Drive, Confluence, Jira, GitHub and the rest, self-hosted or air-gapped, with agents searching it through MCP.",
        "slug": "onyx",
        "watchFor": "GHSA-q62f-rv3h-f822 (critical, CVSS 9.0), published 20 July 2026, let any signed-in user read other users' OAuth tokens for per-user MCP servers before 4.0.0"
      },
      {
        "aheadOn": null,
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where Onyx loses 4 points for them"
        ],
        "goodFor": "A data team already on Secoda that wants an agent to read and edit catalogue metadata, lineage, documents and glossary terms, or to search the catalogue and run SQL through the local MCP server.",
        "slug": "secoda",
        "watchFor": "No price is published. The three plans (Core, Premium, Enterprise) link to a sales form, and no trial or sign-up button was found on the site"
      }
    ],
    "job": {
      "capability": "knowledge.search",
      "name": "Company knowledge search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alation-vs-onyx.json",
        "title": "Alation vs Onyx",
        "url": "https://www.anchorterminal.com/compare/alation-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atlan-vs-onyx.json",
        "title": "Atlan vs Onyx",
        "url": "https://www.anchorterminal.com/compare/atlan-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cohere-north-vs-onyx.json",
        "title": "Cohere North vs Onyx",
        "url": "https://www.anchorterminal.com/compare/cohere-north-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cohere-north-vs-secoda.json",
        "title": "Cohere North vs Secoda",
        "url": "https://www.anchorterminal.com/compare/cohere-north-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/collibra-vs-onyx.json",
        "title": "Collibra vs Onyx",
        "url": "https://www.anchorterminal.com/compare/collibra-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dust-vs-onyx.json",
        "title": "Dust vs Onyx",
        "url": "https://www.anchorterminal.com/compare/dust-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dust-vs-secoda.json",
        "title": "Dust vs Secoda",
        "url": "https://www.anchorterminal.com/compare/dust-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/glean-vs-onyx.json",
        "title": "Glean vs Onyx",
        "url": "https://www.anchorterminal.com/compare/glean-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/glean-vs-secoda.json",
        "title": "Glean vs Secoda",
        "url": "https://www.anchorterminal.com/compare/glean-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guru-vs-onyx.json",
        "title": "Guru vs Onyx",
        "url": "https://www.anchorterminal.com/compare/guru-vs-onyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guru-vs-secoda.json",
        "title": "Guru vs Secoda",
        "url": "https://www.anchorterminal.com/compare/guru-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/onyx-vs-overclock.json",
        "title": "Onyx vs Overclock",
        "url": "https://www.anchorterminal.com/compare/onyx-vs-overclock"
      },
      {
        "json": "https://www.anchorterminal.com/compare/overclock-vs-secoda.json",
        "title": "Overclock vs Secoda",
        "url": "https://www.anchorterminal.com/compare/overclock-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alation-vs-secoda.json",
        "title": "Alation vs Secoda",
        "url": "https://www.anchorterminal.com/compare/alation-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atlan-vs-secoda.json",
        "title": "Atlan vs Secoda",
        "url": "https://www.anchorterminal.com/compare/atlan-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/collibra-vs-secoda.json",
        "title": "Collibra vs Secoda",
        "url": "https://www.anchorterminal.com/compare/collibra-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datahub-vs-secoda.json",
        "title": "DataHub vs Secoda",
        "url": "https://www.anchorterminal.com/compare/datahub-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/marmot-vs-secoda.json",
        "title": "Marmot vs Secoda",
        "url": "https://www.anchorterminal.com/compare/marmot-vs-secoda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmetadata-vs-secoda.json",
        "title": "OpenMetadata vs Secoda",
        "url": "https://www.anchorterminal.com/compare/openmetadata-vs-secoda"
      }
    ],
    "scores": [
      {
        "by": 29,
        "edge": "onyx",
        "key": "reliability",
        "name": "Reliability",
        "onyx": 69,
        "secoda": 40,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "edge": "onyx",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "onyx": 88,
        "secoda": 59,
        "weight": 13
      },
      {
        "by": 33,
        "edge": "onyx",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "onyx": 77,
        "secoda": 44,
        "weight": 13
      },
      {
        "by": 17,
        "edge": "onyx",
        "key": "security",
        "name": "Security \u0026 auth",
        "onyx": 71,
        "secoda": 54,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "onyx",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "onyx": 30,
        "secoda": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 17,
        "edge": "onyx",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "onyx": 77,
        "secoda": 60,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "onyx",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "onyx": 63,
        "secoda": 58,
        "weight": 7
      }
    ],
    "summary": "Onyx scores 65 (B) on agent readiness against Secoda's 44.5 (E), and leads in every scored category. Both do company knowledge search.",
    "verdicts": {
      "onyx": "MIT Community Edition, MCP server included, run by Docker Compose, Helm or Terraform, with a two-week Cloud trial that needs no card. GHSA-q62f-rv3h-f822 (critical, CVSS 9.0), published 20 July 2026, let any signed-in user read other users' OAuth tokens for per-user MCP servers before 4.0.0.",
      "secoda": "The REST API reference embeds OpenAPI 3.0 definitions on every page, with `llms.txt` and Markdown copies, and the subscription agreement carries a 99.9 per cent uptime commitment. No price, trial or sign-up is published, no status page was found, and the public changelog stops at 28 October 2025 although self-hosted releases continue."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/onyx-vs-secoda",
    "json": "https://www.anchorterminal.com/compare/onyx-vs-secoda.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/onyx-vs-secoda.md",
    "slim": "https://www.anchorterminal.com/compare/onyx-vs-secoda.min.md"
  },
  "markdown": "Onyx scores 65 (B) on agent readiness against Secoda's 44.5 (E), and leads in every scored category. Both do company knowledge search.\n\n- Onyx: grade B, 65/100, rank #332 of 950. Markdown https://www.anchorterminal.com/tools/onyx.md · JSON https://www.anchorterminal.com/api/v1/tools/onyx.json\n- Secoda: grade E, 44.5/100, rank #875 of 950. Markdown https://www.anchorterminal.com/tools/secoda.md · JSON https://www.anchorterminal.com/api/v1/tools/secoda.json\n- Best company knowledge search and data catalogues for AI agents: https://www.anchorterminal.com/best/company-knowledge/index.md\n- All 63 knowledge comparisons: https://www.anchorterminal.com/compare/company-knowledge/index.md\n\n## Which one, for what\n\n### Onyx (B)\n\nGood for: Teams that want one permission-aware index over Slack, Drive, Confluence, Jira, GitHub and the rest, self-hosted or air-gapped, with agents searching it through MCP.\n\nAhead on:\n- Reliability, 69 against 40\n- Schema \u0026 documentation, 88 against 59\n- Agent ergonomics, 77 against 44\n- Security \u0026 auth, 71 against 54\n- Payments \u0026 pricing, 30 against 0\n- Maintenance \u0026 community, 77 against 60\n- Transparency \u0026 trust, 63 against 58\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n- Open source\n\nWatch for: GHSA-q62f-rv3h-f822 (critical, CVSS 9.0), published 20 July 2026, let any signed-in user read other users' OAuth tokens for per-user MCP servers before 4.0.0\n\n### Secoda (E)\n\nGood for: A data team already on Secoda that wants an agent to read and edit catalogue metadata, lineage, documents and glossary terms, or to search the catalogue and run SQL through the local MCP server.\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where Onyx loses 4 points for them\n\nWatch for: No price is published. The three plans (Core, Premium, Enterprise) link to a sales form, and no trial or sign-up button was found on the site\n\n\n## Score by category\n\n| Category | Weight | Onyx | Secoda | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 69 | 40 | Onyx +29 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 59 | Onyx +29 |\n| Agent ergonomics | 13% (16.2 this run) | 77 | 44 | Onyx +33 |\n| Security \u0026 auth | 14% (17.5 this run) | 71 | 54 | Onyx +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 0 | Onyx +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 77 | 60 | Onyx +17 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 58 | Onyx +5 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **65 · B** | **44.5 · E** | |\n\n## Facts side by side\n\n| Fact | Onyx | Secoda |\n| --- | --- | --- |\n| Kind | Model platform | HTTP API |\n| Vendor | DanswerAI, Inc. (Onyx, formerly Danswer) | Secoda, Inc. |\n| Hosted endpoint | `https://cloud.onyx.app/mcp` | no (local only) |\n| Transports | HTTP, Streamable HTTP | HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT (Community Edition, including the MCP server, the API server, the CLI and the connectors). Code under the `ee` directories is under the Onyx Enterprise License, which needs a subscription for production use | Proprietary service under the Secoda Master Subscription Agreement. The local MCP server in secoda/secoda-mcp is MIT |\n| Tools exposed | 3 | 6 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-02 | 2026-10-06 |\n| Terms last updated | couldn't be read | no date given |\n| Privacy policy last updated | couldn't be read | no date given |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | not found in the text |\n| Arbitration or class-action waiver | couldn't be read | not found in the text |\n| Popularity | 32k stars | 1 stars |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Onyx.** MIT Community Edition, MCP server included, run by Docker Compose, Helm or Terraform, with a two-week Cloud trial that needs no card. GHSA-q62f-rv3h-f822 (critical, CVSS 9.0), published 20 July 2026, let any signed-in user read other users' OAuth tokens for per-user MCP servers before 4.0.0.\n\n**Secoda.** The REST API reference embeds OpenAPI 3.0 definitions on every page, with `llms.txt` and Markdown copies, and the subscription agreement carries a 99.9 per cent uptime commitment. No price, trial or sign-up is published, no status page was found, and the public changelog stops at 28 October 2025 although self-hosted releases continue.\n\n## Before you call either\n\n### Onyx\n\n1. Get the instance URL from the operator. Cloud is https://cloud.onyx.app/mcp, and a self-hosted server only answers once `MCP_SERVER_ENABLED=true`\n2. Use a token limited to `read:search`. It covers every MCP tool and nothing else\n3. Pass `time_cutoff` as a full ISO 8601 timestamp. A value that doesn't parse is dropped and the search runs unfiltered\n4. Check each result for an `error` field. Failures come back with an empty `results` list, not as tool errors\n5. Set `skip_query_expansion` to true for exact phrases. It skips an LLM call on every search\n\n### Secoda\n\n1. Pick the base URL by workspace region. `app.secoda.co` uses `api.secoda.co`, `eu.secoda.co` uses `eapi.secoda.co` and `apac.secoda.co` uses `aapi.secoda.co`\n2. Keep writes under 30 PUT, PATCH or POST calls a minute on entity endpoints, and back off on a 429\n3. List with `/api/v1/resource/catalog` and a URL-encoded JSON `filter`. The per-type list endpoints for tables are marked deprecated, and results stop at 10,000 resources\n4. Send at most 100 entities to `/api/v1/resource/all/bulk_update/` in one request\n5. Add a trailing slash when an endpoint does not behave as expected, as the docs advise\n6. Treat an API key as the creating user. `run_sql` in the MCP server works only when an admin has enabled Run SQL and the user has query access to the integration\n\n## Questions\n\n### Which is better for AI agents, Onyx or Secoda?\n\nOnyx scores 65 (B) on agent readiness against Secoda's 44.5 (E), and leads in every scored category.\n\n### Can an agent call Onyx and Secoda without installing anything?\n\nOnyx has a hosted endpoint at https://cloud.onyx.app/mcp. Secoda runs on your own machine, with no hosted endpoint listed.\n\n### Are Onyx and Secoda open source?\n\nOnyx is open source (MIT (Community Edition, including the MCP server, the API server, the CLI and the connectors). Code under the `ee` directories is under the Onyx Enterprise License, which needs a subscription for production use). No open-source release is listed for Secoda.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/onyx-vs-secoda.json, and with the fewest tokens: https://www.anchorterminal.com/compare/onyx-vs-secoda.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"onyx\", \"b\": \"secoda\"}`. From a terminal: `anchor compare onyx secoda`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/onyx.json and https://www.anchorterminal.com/api/v1/tools/secoda.json\n\n## Other comparisons with Onyx or Secoda\n\n- [Alation vs Onyx](https://www.anchorterminal.com/compare/alation-vs-onyx.md)\n- [Atlan vs Onyx](https://www.anchorterminal.com/compare/atlan-vs-onyx.md)\n- [Cohere North vs Onyx](https://www.anchorterminal.com/compare/cohere-north-vs-onyx.md)\n- [Cohere North vs Secoda](https://www.anchorterminal.com/compare/cohere-north-vs-secoda.md)\n- [Collibra vs Onyx](https://www.anchorterminal.com/compare/collibra-vs-onyx.md)\n- [Dust vs Onyx](https://www.anchorterminal.com/compare/dust-vs-onyx.md)\n- [Dust vs Secoda](https://www.anchorterminal.com/compare/dust-vs-secoda.md)\n- [Glean vs Onyx](https://www.anchorterminal.com/compare/glean-vs-onyx.md)\n- [Glean vs Secoda](https://www.anchorterminal.com/compare/glean-vs-secoda.md)\n- [Guru vs Onyx](https://www.anchorterminal.com/compare/guru-vs-onyx.md)\n- [Guru vs Secoda](https://www.anchorterminal.com/compare/guru-vs-secoda.md)\n- [Onyx vs Overclock](https://www.anchorterminal.com/compare/onyx-vs-overclock.md)\n- [Overclock vs Secoda](https://www.anchorterminal.com/compare/overclock-vs-secoda.md)\n- [Alation vs Secoda](https://www.anchorterminal.com/compare/alation-vs-secoda.md)\n- [Atlan vs Secoda](https://www.anchorterminal.com/compare/atlan-vs-secoda.md)\n- [Collibra vs Secoda](https://www.anchorterminal.com/compare/collibra-vs-secoda.md)\n- [DataHub vs Secoda](https://www.anchorterminal.com/compare/datahub-vs-secoda.md)\n- [Marmot vs Secoda](https://www.anchorterminal.com/compare/marmot-vs-secoda.md)\n- [OpenMetadata vs Secoda](https://www.anchorterminal.com/compare/openmetadata-vs-secoda.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": "Onyx vs Secoda",
        "url": ""
      }
    ],
    "description": "Onyx scores 65 (B) to Secoda's 44.5 (E) for company knowledge search. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Onyx B 65",
      "Secoda E 44.5",
      "scores"
    ],
    "h1": "Onyx vs Secoda",
    "image": "https://www.anchorterminal.com/assets/og/compare-onyx-vs-secoda.png",
    "path": "/compare/onyx-vs-secoda",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Onyx vs Secoda for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/onyx-vs-secoda"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 830
  },
  "version": 1
}
