{
  "fixes": {
    "slug": "cohere-north",
    "name": "Cohere North",
    "listing": "https://www.anchorterminal.com/tools/cohere-north",
    "markdown": "# Fix list: Cohere North\n\nFrom Anchor Terminal's listing at https://www.anchorterminal.com/tools/cohere-north, the October 2026 research run, assessed 5 October 2026. Grade C, 55.4 out of 100.\n\nThis is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public.\n\nFor a coding agent working on Cohere North: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published.\n\n## 1. Reliability, 37 out of 100, up to 12.6 more on the total\n\nWhy it scored 37: Read with the hosted lines and scored on the Cohere-hosted North API that the quickstart uses (north.cohere.com). Private deployments run on the customer's own infrastructure. status.cohere.com is a public Statuspage, but its 25 components are the model API and individual models, with no North or Compass component. North's own Status and deployments page is inside the admin console (5 of 20). No readable incident history for North itself. The model API page shows a minor incident on 1 September and a major Dashboard login disruption on 23 July 2026, neither tied to North (5). No fixed limits for the North API. Admins set request and token tiers per user and group through Flow Control, which is marked Alpha and needs a Helm setting before it applies (5 of 15). The errors page marks 429 and 503 as the only retryable errors, sends Retry-After and retry_after_seconds, and asks for exponential backoff with jitter capped near 60 seconds. No idempotency or safe-retry guidance for writes (12 of 15). The terms of use sell the service \"as is\" and \"as available\", and no North SLA was found (0). Chat, Responses and the agents API carry no beta label (10).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability):\n\nHosted APIs, MCP servers, models and platforms.\n\n- 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own).\n- 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so.\n- 15, rate limits documented with numbers.\n- 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved.\n- 10, an SLA published for any paid tier.\n- 10, the surface agents use is generally available, not beta or preview.\n\nLocal packages, SDKs, frameworks and stdio MCP servers.\n\n- 20, installs from an official package with supported runtimes stated.\n- 25, a public CI and test suite, passing on the default branch.\n- 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered).\n- 15, semver discipline and breaking changes called out in a changelog.\n- 15, version 1.0 or later, or declared stable.\n\nProtocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors.\n\n## 2. Payments \u0026 pricing, 0 out of 100, up to 12.5 more on the total\n\nWhy it scored 0: Read with the hosted rubric, since Cohere sells North as a licensed platform whether it hosts it or the customer does. No x402, MPP or L402 (0). cohere.com/pricing says \"Get in touch for custom enterprise pricing\" for North (0). No North trial or free tier found. Cohere's trial API keys cover the models, not North (0). A person buys through sales, then an admin registers OAuth apps or a user copies a token (0).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-payments):\n\nThe published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/).\n\n- 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which.\n- 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for \"contact sales\" or prices behind a login.\n- 20, a free tier or trial that doesn't need a card.\n- 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API).\n\nPayment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied.\n\nOpen-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol.\n\n## 3. Agent ergonomics, 71 out of 100, up to 4.7 more on the total\n\nWhy it scored 71: Chat takes max_tokens, citation options, a truncation strategy and a stateless mode, but responses include raw_prompt and raw_generation fields that the quickstart strips by hand. The North API has no standalone search endpoint, and sized search results come from the separate Compass API (15 of 25). List endpoints take limit and offset, and Compass search takes limit and cursor (15 of 20). Errors carry error_type, a stable error_code, is_retryable, request_id and field_errors, mirrored in X-North-Error-Code (20). No idempotency keys. is_retryable tells a client which failures are safe to repeat, and North reads readOnlyHint and destructiveHint from the MCP tools it calls (8 of 20). Only `stream` is required on chat. Official SDKs for Python, TypeScript and Go, and the Open Responses endpoint works with the OpenAI SDK, but the Python and TypeScript SDKs install from each customer's instance (13 of 15).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics):\n\n- 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries).\n- 20, pagination, filtering and output-size controls.\n- 20, actionable, documented error responses, codes and messages an agent can recover from.\n- 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations.\n- 15, sensible defaults, few required parameters, and official SDKs in at least two languages.\n\nModels are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs.\n\n## 4. Security \u0026 auth, 77 out of 100, up to 4 more on the total\n\nWhy it scored 77: OAuth 2.0 authorisation code with PKCE against North's own endpoints, 16 API scopes plus offline_access, access tokens that expire after seven days in the documented example, and a revoke endpoint. Token exchange accepts tokens from the company's identity provider. A developer token copied from /developer carries the user's full access, and there's no OIDC discovery or dynamic client registration. No secret in a query string (27 of 30). Scopes, roles and per-tool MCP permissions limit what a token can do, and tools that can modify data pause for approval, but \"Allow Always\" puts a tool on a global bypass list for every conversation and agent (15 of 20). North Guardrails scan prompts, outputs and MCP tool results for prompt injection, but they're a beta for select customers (9 of 15). Admin Audits (Alpha) log permission, role, connector and MCP server changes and are readable through the API. Per-call visibility comes from the analytics the North 2 announcement describes, which we couldn't see (11 of 15). SOC 2 Type II, ISO 27001 and ISO 42001 on the trust centre, a bug bounty with a responsible disclosure policy, no security.txt (404), and four CVEs in NVD with no Cohere advisory (15 of 20).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-security):\n\n- 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option.\n- 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions.\n- 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10.\n- 0 to 15, audit logs or per-call visibility for the operator.\n- 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public.\n\nModels are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing.\n\n## 5. Schema \u0026 documentation, 85 out of 100, up to 2.4 more on the total\n\nWhy it scored 85: Public OpenAPI 3.1 specs for the North API (86 paths, 128 operations) and for Compass (46 paths, 57 operations), with Bearer auth (25). llms.txt per section, a Markdown copy of each page with .md, and a docs MCP server (10). All 128 operations have a summary and 100 have a description, but several descriptions are Python docstrings (\"Args: chat_request (NorthChatRequest)\"), and when-to-use guidance sits in the guides rather than the spec (12 of 20). 334 enums and typed request bodies. The chat request has 27 properties with only `stream` required, and `documents` accepts free strings or objects (12 of 15). The errors page documents the error shape, every error type, field-level validation errors and streaming errors, with curl, Python and TypeScript examples. The spec itself carries no examples (13 of 15). Versioned v1 and v2 paths and a dated platform changelog with releases several times a week, though entries are mostly version numbers and image lists (13 of 15).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-schema):\n\nAPIs and MCP servers.\n\n- 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool).\n- 10, llms.txt or Markdown docs served for agents.\n- 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference.\n- 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs.\n- 0 to 15, examples and documented error responses.\n- 15, versioning and a public changelog.\n\nModels are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference.\n\n## 6. Transparency \u0026 trust, 73 out of 100, up to 2.4 more on the total\n\nMade of editorial 56, provenance 90.\n\nWhy it scored 73: A closed platform under Cohere's terms of use and customer agreements. The North MCP Python SDK is MIT (15). The data deletion page sets out soft and hard deletion schedules, a retention setting that's off by default and what survives a user deletion, and the data syncing page says what is copied into Compass. The privacy policy (1 May 2026) points to the subprocessor list. The terms of use let Cohere use customer data to improve its services while the security page promises a training opt-out, and we didn't read the enterprise data commitments (20 of 30). No deprecation policy with notice periods. The docs say v2 agents and conversations replace v1 for new integrations without a removal date (6 of 20). The trust centre lists subprocessors with roles and locations, all in the USA for the nine shown, though we didn't open the full list (15 of 20).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency):\n\n- 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms.\n- 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors).\n- 0 to 20, a deprecation policy or notices with dates.\n- 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted).\n\nThe other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two.\n\nProvenance checks not met in full (half of this category, computed from checked facts):\n\n- security.txt: not found (0 of 10)\n\n## 7. Maintenance \u0026 community, 78 out of 100, up to 1.9 more on the total\n\nWhy it scored 78: North Platform v1.15.4 on 1 October 2026 and the North 2 announcement on 5 October (30). The North changelog has dated entries from 23 June to 1 October 2026, several a week, across parallel 1.12, 1.13, 1.14 and 1.15 release lines (20). A closed service with a public dated changelog, a support bundle procedure and a Cohere Discord. Changelog entries are mostly version numbers and container image lists, and we didn't test support (10 of 15). Official SDKs for Python, TypeScript and Go are current with the platform but aren't published to PyPI or npm (12 of 15). The North MCP Python SDK is at 0.4.5 with its last commit on 29 July 2026, and its README installs it over git+ssh (6 of 10).\n\nThe checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance):\n\n- 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older.\n- 20, at least three releases or dated changelog entries in the last 90 days.\n- 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15.\n- 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models).\n- 10, package health, current dependencies and CI.\n\nModels are read for deprecation notice periods and model churn rather than release counts.\n\n## Deductions\n\nEach comes off the total. A fixed and documented problem counts for less at the next check.\n\n- 2026-08-26. NVD published CVE-2025-61162 to CVE-2025-61165 against Cohere North 1.1.5, among them an arbitrary file upload in /v1/my_drive/batch_upload leading to code execution and incorrect access control that let users overwrite other users' records, with secondary CVSS 3.1 scores of 7.5 to 9.8 and NVD status Deferred (https://nvd.nist.gov/vuln/detail/CVE-2025-61165). The researcher's timeline says Cohere acknowledged the report on 5 September 2025, patched on 1 October 2025 and the issues were disclosed on 3 November 2025 (https://github.com/bdadoa/Cohere---North-AI-1.1.5---Vulnerabilities). Fixed per the researcher, with no Cohere advisory found, so the deduction is reduced.\n\n## What we couldn't check\n\nWhat we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it.\n\n- unchecked: whether North 2 changes the API. The announcement is dated 5 October 2026 and the newest changelog entry is v1.15.4 on 1 October.\n- unchecked: incident history for Cohere-hosted North. No public status component was found.\n- unchecked: the enterprise data commitments and DPA on the trust centre, and the full subprocessor list beyond the nine shown.\n- unchecked: per-call analytics for API use, which the announcement describes and the docs we read didn't show.\n- unchecked: whether Atlas-synced results are filtered by each user's source permissions at query time. The docs say Atlas tracks original permissions without saying how they're applied.\n- unchecked: a North SLA in customer agreements, which aren't public.\n- Cohere hasn't published an advisory for CVE-2025-61162 to CVE-2025-61165, and the fix date comes from the researcher.\n\n## Weaknesses\n\n- No public price, trial or self-serve signup. Access starts with a sales conversation\n- status.cohere.com has no North or Compass component, and no North SLA was found\n- Rate limits are set per customer through Flow Control, which is marked Alpha, and no default numbers are published\n- Four CVEs against North 1.1.5 were published in August 2026 with no Cohere advisory found\n- SDKs install from each customer's instance rather than PyPI or npm, and no idempotency keys are documented\n\n## What costs an agent a turn today\n\nThe notes we give agents before they call it. Each one is a workaround an agent shouldn't need.\n\n- Get the North host from your admin and call https://\u003chost\u003e/api. Cohere-hosted examples use north.cohere.com\n- Request an OAuth token with only the scopes the task needs, such as chat_v2_ext, rather than a pasted developer token\n- Retry only when is_retryable is true, waiting retry_after_seconds or Retry-After, with backoff capped near 60 seconds\n- Strip raw_prompt and raw_generation from chat responses before keeping them in context\n- Use /v1/responses to call North through the OpenAI SDK by changing the base URL and key\n\n## What the review panel asked for\n\n- document query-time permissions\n- a developer trial\n- per-agent approval bypass\n- published advisories for the CVEs\n\n## When it's done\n\nSend what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `\"kind\": \"dispute\"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.\n",
    "grade": "C",
    "score": 55.4,
    "assessed": "2026-10-05",
    "run": "October 2026 research run",
    "categories": [
      {
        "key": "reliability",
        "name": "Reliability",
        "score": 37,
        "maxGain": 12.6,
        "reason": "Read with the hosted lines and scored on the Cohere-hosted North API that the quickstart uses (north.cohere.com). Private deployments run on the customer's own infrastructure. status.cohere.com is a public Statuspage, but its 25 components are the model API and individual models, with no North or Compass component. North's own Status and deployments page is inside the admin console (5 of 20). No readable incident history for North itself. The model API page shows a minor incident on 1 September and a major Dashboard login disruption on 23 July 2026, neither tied to North (5). No fixed limits for the North API. Admins set request and token tiers per user and group through Flow Control, which is marked Alpha and needs a Helm setting before it applies (5 of 15). The errors page marks 429 and 503 as the only retryable errors, sends Retry-After and retry_after_seconds, and asks for exponential backoff with jitter capped near 60 seconds. No idempotency or safe-retry guidance for writes (12 of 15). The terms of use sell the service \"as is\" and \"as available\", and no North SLA was found (0). Chat, Responses and the agents API carry no beta label (10).",
        "checklist": [
          "Hosted APIs, MCP servers, models and platforms.",
          "- 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own).\n- 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so.\n- 15, rate limits documented with numbers.\n- 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved.\n- 10, an SLA published for any paid tier.\n- 10, the surface agents use is generally available, not beta or preview.",
          "Local packages, SDKs, frameworks and stdio MCP servers.",
          "- 20, installs from an official package with supported runtimes stated.\n- 25, a public CI and test suite, passing on the default branch.\n- 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered).\n- 15, semver discipline and breaking changes called out in a changelog.\n- 15, version 1.0 or later, or declared stable.",
          "Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-reliability"
      },
      {
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "score": 0,
        "maxGain": 12.5,
        "reason": "Read with the hosted rubric, since Cohere sells North as a licensed platform whether it hosts it or the customer does. No x402, MPP or L402 (0). cohere.com/pricing says \"Get in touch for custom enterprise pricing\" for North (0). No North trial or free tier found. Cohere's trial API keys cover the models, not North (0). A person buys through sales, then an admin registers OAuth apps or a user copies a token (0).",
        "checklist": [
          "The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/).",
          "- 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which.\n- 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for \"contact sales\" or prices behind a login.\n- 20, a free tier or trial that doesn't need a card.\n- 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API).",
          "Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied.",
          "Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-payments"
      },
      {
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "score": 71,
        "maxGain": 4.7,
        "reason": "Chat takes max_tokens, citation options, a truncation strategy and a stateless mode, but responses include raw_prompt and raw_generation fields that the quickstart strips by hand. The North API has no standalone search endpoint, and sized search results come from the separate Compass API (15 of 25). List endpoints take limit and offset, and Compass search takes limit and cursor (15 of 20). Errors carry error_type, a stable error_code, is_retryable, request_id and field_errors, mirrored in X-North-Error-Code (20). No idempotency keys. is_retryable tells a client which failures are safe to repeat, and North reads readOnlyHint and destructiveHint from the MCP tools it calls (8 of 20). Only `stream` is required on chat. Official SDKs for Python, TypeScript and Go, and the Open Responses endpoint works with the OpenAI SDK, but the Python and TypeScript SDKs install from each customer's instance (13 of 15).",
        "checklist": [
          "- 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries).\n- 20, pagination, filtering and output-size controls.\n- 20, actionable, documented error responses, codes and messages an agent can recover from.\n- 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations.\n- 15, sensible defaults, few required parameters, and official SDKs in at least two languages.",
          "Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-ergonomics"
      },
      {
        "key": "security",
        "name": "Security \u0026 auth",
        "score": 77,
        "maxGain": 4,
        "reason": "OAuth 2.0 authorisation code with PKCE against North's own endpoints, 16 API scopes plus offline_access, access tokens that expire after seven days in the documented example, and a revoke endpoint. Token exchange accepts tokens from the company's identity provider. A developer token copied from /developer carries the user's full access, and there's no OIDC discovery or dynamic client registration. No secret in a query string (27 of 30). Scopes, roles and per-tool MCP permissions limit what a token can do, and tools that can modify data pause for approval, but \"Allow Always\" puts a tool on a global bypass list for every conversation and agent (15 of 20). North Guardrails scan prompts, outputs and MCP tool results for prompt injection, but they're a beta for select customers (9 of 15). Admin Audits (Alpha) log permission, role, connector and MCP server changes and are readable through the API. Per-call visibility comes from the analytics the North 2 announcement describes, which we couldn't see (11 of 15). SOC 2 Type II, ISO 27001 and ISO 42001 on the trust centre, a bug bounty with a responsible disclosure policy, no security.txt (404), and four CVEs in NVD with no Cohere advisory (15 of 20).",
        "checklist": [
          "- 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option.\n- 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions.\n- 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10.\n- 0 to 15, audit logs or per-call visibility for the operator.\n- 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public.",
          "Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-security"
      },
      {
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "score": 85,
        "maxGain": 2.4,
        "reason": "Public OpenAPI 3.1 specs for the North API (86 paths, 128 operations) and for Compass (46 paths, 57 operations), with Bearer auth (25). llms.txt per section, a Markdown copy of each page with .md, and a docs MCP server (10). All 128 operations have a summary and 100 have a description, but several descriptions are Python docstrings (\"Args: chat_request (NorthChatRequest)\"), and when-to-use guidance sits in the guides rather than the spec (12 of 20). 334 enums and typed request bodies. The chat request has 27 properties with only `stream` required, and `documents` accepts free strings or objects (12 of 15). The errors page documents the error shape, every error type, field-level validation errors and streaming errors, with curl, Python and TypeScript examples. The spec itself carries no examples (13 of 15). Versioned v1 and v2 paths and a dated platform changelog with releases several times a week, though entries are mostly version numbers and image lists (13 of 15).",
        "checklist": [
          "APIs and MCP servers.",
          "- 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool).\n- 10, llms.txt or Markdown docs served for agents.\n- 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference.\n- 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs.\n- 0 to 15, examples and documented error responses.\n- 15, versioning and a public changelog.",
          "Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-schema"
      },
      {
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "score": 73,
        "maxGain": 2.4,
        "reason": "A closed platform under Cohere's terms of use and customer agreements. The North MCP Python SDK is MIT (15). The data deletion page sets out soft and hard deletion schedules, a retention setting that's off by default and what survives a user deletion, and the data syncing page says what is copied into Compass. The privacy policy (1 May 2026) points to the subprocessor list. The terms of use let Cohere use customer data to improve its services while the security page promises a training opt-out, and we didn't read the enterprise data commitments (20 of 30). No deprecation policy with notice periods. The docs say v2 agents and conversations replace v1 for new integrations without a removal date (6 of 20). The trust centre lists subprocessors with roles and locations, all in the USA for the nine shown, though we didn't open the full list (15 of 20).",
        "blend": "editorial 56, provenance 90",
        "checklist": [
          "- 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms.\n- 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors).\n- 0 to 20, a deprecation policy or notices with dates.\n- 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted).",
          "The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-transparency"
      },
      {
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "score": 78,
        "maxGain": 1.9,
        "reason": "North Platform v1.15.4 on 1 October 2026 and the North 2 announcement on 5 October (30). The North changelog has dated entries from 23 June to 1 October 2026, several a week, across parallel 1.12, 1.13, 1.14 and 1.15 release lines (20). A closed service with a public dated changelog, a support bundle procedure and a Cohere Discord. Changelog entries are mostly version numbers and container image lists, and we didn't test support (10 of 15). Official SDKs for Python, TypeScript and Go are current with the platform but aren't published to PyPI or npm (12 of 15). The North MCP Python SDK is at 0.4.5 with its last commit on 29 July 2026, and its README installs it over git+ssh (6 of 10).",
        "checklist": [
          "- 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older.\n- 20, at least three releases or dated changelog entries in the last 90 days.\n- 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15.\n- 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models).\n- 10, package health, current dependencies and CI.",
          "Models are read for deprecation notice periods and model churn rather than release counts."
        ],
        "checklistUrl": "https://www.anchorterminal.com/benchmark/#checklist-maintenance"
      }
    ],
    "provenance": [
      {
        "label": "security.txt",
        "value": "not found",
        "points": 0,
        "max": 10
      }
    ],
    "deductions": [
      "2026-08-26. NVD published CVE-2025-61162 to CVE-2025-61165 against Cohere North 1.1.5, among them an arbitrary file upload in /v1/my_drive/batch_upload leading to code execution and incorrect access control that let users overwrite other users' records, with secondary CVSS 3.1 scores of 7.5 to 9.8 and NVD status Deferred (https://nvd.nist.gov/vuln/detail/CVE-2025-61165). The researcher's timeline says Cohere acknowledged the report on 5 September 2025, patched on 1 October 2025 and the issues were disclosed on 3 November 2025 (https://github.com/bdadoa/Cohere---North-AI-1.1.5---Vulnerabilities). Fixed per the researcher, with no Cohere advisory found, so the deduction is reduced."
    ],
    "unchecked": [
      "unchecked: whether North 2 changes the API. The announcement is dated 5 October 2026 and the newest changelog entry is v1.15.4 on 1 October.",
      "unchecked: incident history for Cohere-hosted North. No public status component was found.",
      "unchecked: the enterprise data commitments and DPA on the trust centre, and the full subprocessor list beyond the nine shown.",
      "unchecked: per-call analytics for API use, which the announcement describes and the docs we read didn't show.",
      "unchecked: whether Atlas-synced results are filtered by each user's source permissions at query time. The docs say Atlas tracks original permissions without saying how they're applied.",
      "unchecked: a North SLA in customer agreements, which aren't public.",
      "Cohere hasn't published an advisory for CVE-2025-61162 to CVE-2025-61165, and the fix date comes from the researcher."
    ],
    "weaknesses": [
      "No public price, trial or self-serve signup. Access starts with a sales conversation",
      "status.cohere.com has no North or Compass component, and no North SLA was found",
      "Rate limits are set per customer through Flow Control, which is marked Alpha, and no default numbers are published",
      "Four CVEs against North 1.1.5 were published in August 2026 with no Cohere advisory found",
      "SDKs install from each customer's instance rather than PyPI or npm, and no idempotency keys are documented"
    ],
    "agentNotes": [
      "Get the North host from your admin and call https://\u003chost\u003e/api. Cohere-hosted examples use north.cohere.com",
      "Request an OAuth token with only the scopes the task needs, such as chat_v2_ext, rather than a pasted developer token",
      "Retry only when is_retryable is true, waiting retry_after_seconds or Retry-After, with backoff capped near 60 seconds",
      "Strip raw_prompt and raw_generation from chat responses before keeping them in context",
      "Use /v1/responses to call North through the OpenAI SDK by changing the base URL and key"
    ],
    "requests": [
      {
        "text": "document query-time permissions",
        "reviews": 1
      },
      {
        "text": "a developer trial",
        "reviews": 1
      },
      {
        "text": "per-agent approval bypass",
        "reviews": 1
      },
      {
        "text": "published advisories for the CVEs",
        "reviews": 1
      }
    ],
    "recheck": "https://www.anchorterminal.com/builders/#disputes"
  },
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-06",
    "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"
  }
}
