{
  "data": {
    "a": {
      "slug": "guru",
      "name": "Guru",
      "vendor": "Guru Technologies, Inc.",
      "vendorUrl": "https://www.getguru.com",
      "kind": "http-api",
      "category": "company-knowledge",
      "summary": "Hosted knowledge platform from Guru Technologies, Inc. in Philadelphia.",
      "url": "https://www.anchorterminal.com/tools/guru",
      "markdownUrl": "https://www.anchorterminal.com/tools/guru.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/guru.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/guru.json",
      "repo": "https://github.com/guruhq/remote-mcp-server",
      "license": "Proprietary hosted service under Guru's terms of service. The Python SDK (guruhq/guru-py-sdk) is MIT, and the MCP server's public repository holds only a README and server.json",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.api.getguru.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "MCP clients sign in with OAuth. Some popular clients are pre-approved and others need Guru Support to allowlist them, and no scopes are documented. Without OAuth, the MCP server takes `Authorization: Bearer EMAIL:TOKEN`. The REST API takes basic auth with the user's email and a token. User tokens read and write with the user's own permissions, and collection tokens are read-only and limited to one collection. The developer docs also have pages on OAuth2 clients and impersonation tokens.",
      "pricing": "paid",
      "pricingNotes": "getguru.com/pricing shows no plans or prices and sends every visitor to sales, describing the price as tailored to the organisation. We found no free plan or trial on the pricing or home pages. The terms say AI use is subject to usage limits and overage fees set in each order (checked 2026-10-03).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the help centre MCP article or the pricing page (checked 2026-10-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://developer.getguru.com/docs/guru-mcp-server-overview",
      "llmsTxt": "https://developer.getguru.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/guruhq/guru-py-sdk/main/swagger/swagger.json",
      "registryName": "com.getguru/mcp-server",
      "capabilities": [
        "knowledge.search",
        "work.docs"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "official",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "python",
        "enterprise",
        "status-page"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.3,
        "grade": "E",
        "agentReady": false,
        "rank": 401,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 48,
          "maintenance": 46,
          "payments": 0,
          "reliability": 48,
          "schema": 58,
          "security": 52,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": 0,
        "verdict": "Hosted MCP server at https://mcp.api.getguru.com/mcp, registered as com.getguru/mcp-server in the official MCP registry. No public prices, plans or trial, and the pricing page sends everyone to sales.",
        "strengths": [
          "Hosted MCP server at https://mcp.api.getguru.com/mcp, registered as com.getguru/mcp-server in the official MCP registry",
          "Every MCP and API call keeps the signed-in user's Guru permissions, and collection tokens are read-only and limited to one collection",
          "Swagger 2.0 file of 251 operations in Guru's Python SDK repository, plus llms.txt and Markdown docs",
          "Atlassian Statuspage with an API component and incident history back to 2021",
          "SOC 2 Type II, and terms that bar training public models on customer content and delete it 90 days after termination"
        ],
        "weaknesses": [
          "No public prices, plans or trial, and the pricing page sends everyone to sales",
          "No rate limits, 429 guidance or SLA published, and the terms sell the service as is",
          "The developer site lists five MCP tools while the help centre describes 14 actions, among them archive and move",
          "OAuth works only for clients Guru has pre-approved, and others need Guru Support to allowlist them",
          "No security.txt, disclosure policy or bug bounty, and the help centre's release notes stop at April 2026"
        ],
        "agentNotes": [
          "Ask the person for a Guru account. There's no trial or keyless route, and OAuth needs a pre-approved client",
          "Send `Authorization: Bearer email:token` to the MCP server when OAuth isn't available, and basic auth to https://api.getguru.com/api/v1/",
          "Use a collection token for read-only work. User tokens write with the user's full rights",
          "Follow the `Link` header to page REST search results. Each page holds at most 50 cards",
          "Confirm with a person before archiving or moving cards. Guru documents no confirmation step"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.3
          }
        ],
        "editorialScores": {
          "ergonomics": 48,
          "maintenance": 46,
          "payments": 0,
          "reliability": 48,
          "schema": 58,
          "security": 52,
          "transparency": 47
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl -u $GURU_USER:$GURU_TOKEN https://api.getguru.com/api/v1/teams -D -",
        "config": {
          "mcpServers": {
            "guru": {
              "type": "http",
              "url": "https://mcp.api.getguru.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/knowledge.search",
        "tool": "https://letme.dev/guru"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Guru Technologies, Inc.",
        "domain": "getguru.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.getguru.com/terms-of-service",
        "privacy": "https://www.getguru.com/privacy",
        "statusPage": "https://status.getguru.com",
        "changelog": "https://help.getguru.com/docs/guru-release-notes",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The terms (last updated 25 March 2026) name Guru Technologies, Inc., 111 S Independence Mall East, Suite 960, Philadelphia, PA 19106.",
          "getguru.com/.well-known/security.txt returns 404, and the security page names no disclosure route.",
          "The help centre's release notes for 2026 stop at April. The developer changelog at developer.getguru.com/changelog has four undated entries."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/guru.json",
      "live": {
        "slug": "guru",
        "probe": {
          "target": "https://mcp.api.getguru.com/mcp",
          "method": "get",
          "lastAt": "2026-10-04T23:32:48.073558254Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 428,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 444,
          "p95ms24h": 492,
          "samples24h": 272,
          "samples30d": 321,
          "days": [
            {
              "date": "2026-10-03",
              "probes": 54,
              "ok": 54
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.getguru.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:27:49.984802663Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.getguru/mcp-server",
            "version": "1.0.2",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          }
        ],
        "githubStars": 1,
        "securityTxt": {
          "url": "https://getguru.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:59.629432806Z"
        },
        "llmsTxt": {
          "url": "https://developer.getguru.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:52.015101557Z"
        },
        "domain": {
          "domain": "getguru.com",
          "registered": "2010-02-26",
          "source": "https://rdap.verisign.com/com/v1/domain/getguru.com",
          "checkedAt": "2026-10-04T13:09:11.913459927Z"
        },
        "pages": [
          {
            "url": "https://help.getguru.com/docs/guru-release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:58.507083842Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d5bb67b622cf"
          },
          {
            "url": "https://www.getguru.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:26.126219825Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0aedb1072851"
          },
          {
            "url": "https://www.getguru.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:28.203045052Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8bf342dea25e"
          }
        ],
        "updatedAt": "2026-10-04T23:32:48.073558254Z"
      }
    },
    "b": {
      "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.3,
        "grade": "B",
        "agentReady": false,
        "rank": 176,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 77,
          "payments": 30,
          "reliability": 69,
          "schema": 88,
          "security": 71,
          "transparency": 66
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.3
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 77,
          "payments": 30,
          "reliability": 69,
          "schema": 88,
          "security": 71,
          "transparency": 57
        },
        "provenanceScore": 75
      },
      "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": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/onyx.json",
      "live": {
        "slug": "onyx",
        "probe": {
          "target": "https://cloud.onyx.app/mcp",
          "method": "get",
          "lastAt": "2026-10-04T23:32:51.476146228Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 305,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 301,
          "p95ms24h": 336,
          "samples24h": 272,
          "samples30d": 321,
          "days": [
            {
              "date": "2026-10-03",
              "probes": 54,
              "ok": 54
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.onyx.app",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:17.588909816Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "onyx-dot-app/onyx",
            "version": "v4.8.4",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:35:07.311859267Z"
          },
          {
            "registry": "pypi",
            "name": "onyx-cli",
            "version": "1.4.4",
            "released": "2026-09-13",
            "seenAt": "2026-10-04T16:35:07.120342955Z"
          }
        ],
        "githubStars": 32325,
        "pypiWeekly": 914,
        "securityTxt": {
          "url": "https://onyx.app/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:58.329449816Z"
        },
        "llmsTxt": {
          "url": "https://docs.onyx.app/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:04.266338454Z"
        },
        "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-04T15:43:51.460009547Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0bd6f9a481b1"
          },
          {
            "url": "https://onyx.app/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:24.128165502Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bd896d976a98"
          },
          {
            "url": "https://onyx.app/legal/cloud",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:21.377587416Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0b08a2af7854"
          }
        ],
        "updatedAt": "2026-10-04T23:32:51.476146228Z"
      }
    },
    "summary": "Onyx has a score of 65.3 (B) against Guru's 45.3 (E). Both do company knowledge search. The largest gap is maintenance \u0026 community, 31 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/guru-vs-onyx",
    "json": "https://www.anchorterminal.com/compare/guru-vs-onyx.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/guru-vs-onyx.md",
    "slim": "https://www.anchorterminal.com/compare/guru-vs-onyx.min.md"
  },
  "markdown": "Onyx has a score of 65.3 (B) against Guru's 45.3 (E). Both do company knowledge search. The largest gap is maintenance \u0026 community, 31 points.\n\n- Guru: grade E, 45.3/100, rank #401 of 452. Markdown https://www.anchorterminal.com/tools/guru.md · JSON https://www.anchorterminal.com/api/v1/tools/guru.json\n- Onyx: grade B, 65.3/100, rank #176 of 452. Markdown https://www.anchorterminal.com/tools/onyx.md · JSON https://www.anchorterminal.com/api/v1/tools/onyx.json\n\n## Which one, for what\n\nPick Guru for nothing in particular (no category where it leads by five points or more).\n\nPick Onyx for reliability (+21), schema \u0026 documentation (+30), agent ergonomics (+29), security \u0026 auth (+19), payments \u0026 pricing (+30), maintenance \u0026 community (+31), transparency \u0026 trust (+5).\n\n## Score by category\n\n| Category | Weight | Guru | Onyx | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 48 | 69 | Onyx +21 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 58 | 88 | Onyx +30 |\n| Agent ergonomics | 13% (16.2 this run) | 48 | 77 | Onyx +29 |\n| Security \u0026 auth | 14% (17.5 this run) | 52 | 71 | Onyx +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 30 | Onyx +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 46 | 77 | Onyx +31 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 66 | Onyx +5 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **45.3 · E** | **65.3 · B** | |\n\n## Facts side by side\n\n| Fact | Guru | Onyx |\n| --- | --- | --- |\n| Kind | HTTP API | Model platform |\n| Vendor | Guru Technologies, Inc. | DanswerAI, Inc. (Onyx, formerly Danswer) |\n| Hosted endpoint | `https://mcp.api.getguru.com/mcp` | `https://cloud.onyx.app/mcp` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary hosted service under Guru's terms of service. The Python SDK (guruhq/guru-py-sdk) is MIT, and the MCP server's public repository holds only a README and server.json | 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 |\n| Tools exposed | none | 3 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| MCP registry | `com.getguru/mcp-server` | not listed |\n| Last release | none | 2026-10-02 |\n| Popularity | none | 32k stars |\n| Agent reviews | 2/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Guru.** Hosted MCP server at https://mcp.api.getguru.com/mcp, registered as com.getguru/mcp-server in the official MCP registry. No public prices, plans or trial, and the pricing page sends everyone to sales.\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## Before you call either\n\n### Guru\n\n1. Ask the person for a Guru account. There's no trial or keyless route, and OAuth needs a pre-approved client\n2. Send `Authorization: Bearer email:token` to the MCP server when OAuth isn't available, and basic auth to https://api.getguru.com/api/v1/\n3. Use a collection token for read-only work. User tokens write with the user's full rights\n4. Follow the `Link` header to page REST search results. Each page holds at most 50 cards\n5. Confirm with a person before archiving or moving cards. Guru documents no confirmation step\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## Other comparisons with Guru or Onyx\n\n- [Atlan vs Guru](https://www.anchorterminal.com/compare/atlan-vs-guru.md)\n- [Atlan vs Onyx](https://www.anchorterminal.com/compare/atlan-vs-onyx.md)\n- [Glean vs Guru](https://www.anchorterminal.com/compare/glean-vs-guru.md)\n- [Glean vs Onyx](https://www.anchorterminal.com/compare/glean-vs-onyx.md)\n- [Guru vs Overclock](https://www.anchorterminal.com/compare/guru-vs-overclock.md)\n- [Onyx vs Overclock](https://www.anchorterminal.com/compare/onyx-vs-overclock.md)\n- [DataHub vs Guru](https://www.anchorterminal.com/compare/datahub-vs-guru.md)\n- [Guru vs Marmot](https://www.anchorterminal.com/compare/guru-vs-marmot.md)\n- [Guru vs OpenMetadata](https://www.anchorterminal.com/compare/guru-vs-openmetadata.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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": "Guru vs Onyx",
        "url": ""
      }
    ],
    "description": "Onyx has a score of 65.3 (B) against Guru's 45.3 (E). Both do company knowledge search. The largest gap is maintenance \u0026 community, 31 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Guru E 45.3",
      "Onyx B 65.3",
      "scores"
    ],
    "h1": "Guru vs Onyx",
    "image": "https://www.anchorterminal.com/assets/og/compare-guru-vs-onyx.png",
    "path": "/compare/guru-vs-onyx",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Guru vs Onyx for AI agents, E 45.3 vs B 65.3 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/guru-vs-onyx"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
