{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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"
  },
  "tool": {
    "slug": "phrase",
    "name": "Phrase",
    "vendor": "Phrase a.s.",
    "vendorUrl": "https://phrase.com",
    "kind": "http-api",
    "category": "translation",
    "summary": "Localisation platform from Phrase a.s. in Prague. Its Language AI API translates text and files through automatically selected machine translation engines, and its Strings and TMS APIs, CLI and hosted MCP server manage translation projects, term bases and translation memories.",
    "url": "https://www.anchorterminal.com/tools/phrase",
    "markdownUrl": "https://www.anchorterminal.com/tools/phrase.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/phrase.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/phrase.json",
    "repo": "https://github.com/phrase/phrase-cli",
    "license": "Proprietary service under the Phrase Terms of Service. The CLI, the Strings API clients and the deprecated local MCP server on GitHub are MIT",
    "transports": [
      "http",
      "streamable-http"
    ],
    "remoteUrl": "https://mcp.eu.phrase.com",
    "packages": [
      {
        "registry": "npm",
        "name": "phrase-js"
      },
      {
        "registry": "pypi",
        "name": "phrase-api"
      },
      {
        "registry": "npm",
        "name": "@phrase/phrase-mcp-server"
      }
    ],
    "auth": "mixed",
    "authNotes": "Self-serve. A user creates a Phrase Platform API token in profile settings and exchanges it at `/idm/oauth/token` for a Bearer JWT that lasts about four hours. Service accounts, added on 7 August 2026, use the OAuth client credentials grant and can be limited by product and scope. The hosted MCP server signs in with OAuth (PKCE, dynamic client registration or a client ID metadata document) and the user grants view, create, or modify and delete access. The Strings API also accepts its own access tokens with four scopes, Basic authentication with email and password, and an `access_token` query parameter.",
    "pricing": "paid",
    "pricingNotes": "Plans from $27 a month (Freelancer), $525 (Software UI/UX) and $1,245 (Team), billed annually, with Business and Enterprise quoted by sales. Each plan includes yearly capacities such as Machine Translation Units and TMS words, and top-up prices aren't public. A 14-day trial starts with an email address and a password, with no automatic charge afterwards, so an agent's owner can begin without a contract (checked 2026-10-08).",
    "priceSummary": "$27 / mo",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-08).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 49,
      "npmWeekly": 40342,
      "pypiWeekly": 14166,
      "asOf": "2026-10-08"
    },
    "docsUrl": "https://developers.phrase.com",
    "llmsTxt": "https://developers.phrase.com/llms.txt",
    "openapi": "https://developers.phrase.com/openapi/phrase-language-ai.json",
    "registryName": "io.github.phrase/mcp",
    "capabilities": [
      "translate.text",
      "translate.documents",
      "translate.glossary",
      "translate.detect"
    ],
    "tags": [
      "hosted",
      "paid",
      "trial",
      "no-card",
      "mcp",
      "oauth",
      "openapi",
      "llms-txt",
      "cli",
      "typescript",
      "python",
      "go",
      "eu",
      "status-page",
      "closed-source"
    ],
    "lastRelease": "2026-10-06",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 64.2,
      "grade": "B",
      "agentReady": false,
      "rank": 285,
      "ranked": true,
      "rankOf": 722,
      "categoryRank": 7,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 70,
        "maintenance": 83,
        "payments": 30,
        "reliability": 55,
        "schema": 87,
        "security": 58,
        "transparency": 74
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 55,
          "points": 11,
          "reason": "Hosted reading, for the public APIs and the hosted MCP server. status.phrase.com on Statuspage, with components for Strings, TMS and the Language AI API in the EU and the US (20). Its feed lists 14 incidents between 10 July and 8 October 2026, two marked critical, ten major and two minor. Most were degraded performance in one component, such as TMS project management for about three and a half hours on 31 August and Strings branching for about 19 hours on 6 and 7 August, and none is titled as a full API outage. Larger ones have post-mortems (5 of 30). Strings publishes 1,000 requests in 5 minutes and 4 concurrent, TMS 6,000 a minute and 100 concurrent, and no figure was found for Language AI (12 of 15). 429 responses carry `X-Rate-Limit-Reset` and `X-Rate-Limit-Reason` on Strings and `Ratelimit-Remaining` on TMS. No `Retry-After`, backoff guidance or idempotency keys were found in the reviewed documentation (8 of 15). No SLA in the public terms, which disclaim uninterrupted availability (0). The APIs and the MCP server are generally available (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 87,
          "points": 14.14,
          "reason": "OpenAPI 3 specs for all nine APIs at developers.phrase.com/openapi, among them Strings with 301 operations and TMS with 547 (25). llms.txt and a Markdown copy of every docs page (10). Every Strings and Language AI operation has a description, 390 of 547 TMS operations do, and a page titled Choose the right API says which API fits which job. Few operations say when not to use them (14 of 20). Language AI inputs carry length limits, item counts and enums. The Strings spec has 49 enums across 301 operations (11 of 15). Strings documents 400, 401, 403, 404 and 429 on nearly every operation with 896 examples, while the Language AI error responses have no body schema (12 of 15). Versioned paths, four TMS versions to pin, and a dated changelog (15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 70,
          "points": 11.38,
          "reason": "API reading of the checklist, with the hosted MCP server noted where its behaviour is documented. Strings lists return 25 items by default with `per_page` up to 100, and locale downloads support ETag. The hosted MCP server's tool list isn't published, and the deprecated local server listed 145 tools (17 of 25). `page` and `per_page` with `Link` headers, and filters on list endpoints (18 of 20). Strings returns a message on 400 and field-level errors on 422, and names the limit hit on 429. Language AI error bodies are undocumented (14 of 20). No idempotency keys. Conditional GETs are safe to repeat, and the MCP consent separates view, create, and modify and delete (8 of 20). Language AI needs three fields, six official Strings clients and a CLI exist, but a missing `User-Agent` header earns a 400 and the clients cover Strings alone (13 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 58,
          "points": 10.15,
          "reason": "The hosted MCP server uses OAuth with PKCE, dynamic client registration and three scopes. Service accounts use the client credentials grant limited by product and scope, and platform tokens are exchanged for JWTs that last about four hours (30). Less 10 because the Strings docs give an `access_token` query parameter as an option, and still document Basic authentication with email and password (20 of 30). View, create and delete consents on MCP, revocable under the Consents tab, with role permissions still applied. No confirmation step for destructive calls was found (15 of 20). Tools return customer strings, comments and translations, and no prompt-injection guidance was found (3 of 15). Each user sees their login history, while audit logs are held by Phrase engineers and supplied on request (6 of 15). ISO 27001 certificate, SOC 2 Type I with Type II expected in 2026, annual third-party penetration tests and a disclosure address at security@phrase.com. No security.txt and no bug bounty found (14 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 30,
          "points": 3.75,
          "reason": "No x402, MPP or L402 (0). Plan prices are public, $27, $525 and $1,245 a month billed annually, with included capacities and the MTU conversion published. Top-up prices and the Business and Enterprise plans are quoted by sales, so plan-only credit (10). A 14-day trial whose signup form asks for an email address and a password, with no automatic charge afterwards (20). A person signs up in a browser, and the MCP server needs a Phrase account login (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 83,
          "points": 7.26,
          "reason": "The changelog's latest entry is 6 October 2026, and the CLI's latest release is 2.69.1 of 23 September (30). 21 dated changelog entries since 10 July 2026 (20). A public changelog, a help centre and written support around the clock on paid plans. We didn't read the GitHub issues (11 of 15). The hosted MCP server is in the official MCP registry as `io.github.phrase/mcp`, and `phrase-js` 3.27.0 is current (15). The CLI has release and vulnerability workflows. The local MCP server was deprecated on 7 August 2026, under six months after its first tag (7 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 74,
          "points": 6.48,
          "note": "editorial 65, provenance 82",
          "reason": "Closed service with published terms, and the CLI, clients and local MCP server under MIT (15). The privacy notice of 6 October 2026, the Data Processing Addendum and the AI statement agree on processor status, a 60-day deletion period and which products train on customer content. The terms still permit training non-text models, and any model for internal research, on customer content without approval (22 of 30). Deprecations are announced in the changelog with dates, such as the Quality Evaluator v1 and v2 endpoints on 2 July 2026, but without removal dates, and no written notice period was found (10 of 20). A sub-processor list with locations and transfer mechanisms, a choice of EU or US data centre, and hosting on AWS and Google Cloud disclosed (18 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-08",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "API reading of the checklist, with the hosted MCP server noted where its behaviour is documented. Strings lists return 25 items by default with `per_page` up to 100, and locale downloads support ETag. The hosted MCP server's tool list isn't published, and the deprecated local server listed 145 tools (17 of 25). `page` and `per_page` with `Link` headers, and filters on list endpoints (18 of 20). Strings returns a message on 400 and field-level errors on 422, and names the limit hit on 429. Language AI error bodies are undocumented (14 of 20). No idempotency keys. Conditional GETs are safe to repeat, and the MCP consent separates view, create, and modify and delete (8 of 20). Language AI needs three fields, six official Strings clients and a CLI exist, but a missing `User-Agent` header earns a 400 and the clients cover Strings alone (13 of 15).",
          "maintenance": "The changelog's latest entry is 6 October 2026, and the CLI's latest release is 2.69.1 of 23 September (30). 21 dated changelog entries since 10 July 2026 (20). A public changelog, a help centre and written support around the clock on paid plans. We didn't read the GitHub issues (11 of 15). The hosted MCP server is in the official MCP registry as `io.github.phrase/mcp`, and `phrase-js` 3.27.0 is current (15). The CLI has release and vulnerability workflows. The local MCP server was deprecated on 7 August 2026, under six months after its first tag (7 of 10).",
          "payments": "No x402, MPP or L402 (0). Plan prices are public, $27, $525 and $1,245 a month billed annually, with included capacities and the MTU conversion published. Top-up prices and the Business and Enterprise plans are quoted by sales, so plan-only credit (10). A 14-day trial whose signup form asks for an email address and a password, with no automatic charge afterwards (20). A person signs up in a browser, and the MCP server needs a Phrase account login (0).",
          "reliability": "Hosted reading, for the public APIs and the hosted MCP server. status.phrase.com on Statuspage, with components for Strings, TMS and the Language AI API in the EU and the US (20). Its feed lists 14 incidents between 10 July and 8 October 2026, two marked critical, ten major and two minor. Most were degraded performance in one component, such as TMS project management for about three and a half hours on 31 August and Strings branching for about 19 hours on 6 and 7 August, and none is titled as a full API outage. Larger ones have post-mortems (5 of 30). Strings publishes 1,000 requests in 5 minutes and 4 concurrent, TMS 6,000 a minute and 100 concurrent, and no figure was found for Language AI (12 of 15). 429 responses carry `X-Rate-Limit-Reset` and `X-Rate-Limit-Reason` on Strings and `Ratelimit-Remaining` on TMS. No `Retry-After`, backoff guidance or idempotency keys were found in the reviewed documentation (8 of 15). No SLA in the public terms, which disclaim uninterrupted availability (0). The APIs and the MCP server are generally available (10).",
          "schema": "OpenAPI 3 specs for all nine APIs at developers.phrase.com/openapi, among them Strings with 301 operations and TMS with 547 (25). llms.txt and a Markdown copy of every docs page (10). Every Strings and Language AI operation has a description, 390 of 547 TMS operations do, and a page titled Choose the right API says which API fits which job. Few operations say when not to use them (14 of 20). Language AI inputs carry length limits, item counts and enums. The Strings spec has 49 enums across 301 operations (11 of 15). Strings documents 400, 401, 403, 404 and 429 on nearly every operation with 896 examples, while the Language AI error responses have no body schema (12 of 15). Versioned paths, four TMS versions to pin, and a dated changelog (15).",
          "security": "The hosted MCP server uses OAuth with PKCE, dynamic client registration and three scopes. Service accounts use the client credentials grant limited by product and scope, and platform tokens are exchanged for JWTs that last about four hours (30). Less 10 because the Strings docs give an `access_token` query parameter as an option, and still document Basic authentication with email and password (20 of 30). View, create and delete consents on MCP, revocable under the Consents tab, with role permissions still applied. No confirmation step for destructive calls was found (15 of 20). Tools return customer strings, comments and translations, and no prompt-injection guidance was found (3 of 15). Each user sees their login history, while audit logs are held by Phrase engineers and supplied on request (6 of 15). ISO 27001 certificate, SOC 2 Type I with Type II expected in 2026, annual third-party penetration tests and a disclosure address at security@phrase.com. No security.txt and no bug bounty found (14 of 20).",
          "transparency": "Closed service with published terms, and the CLI, clients and local MCP server under MIT (15). The privacy notice of 6 October 2026, the Data Processing Addendum and the AI statement agree on processor status, a 60-day deletion period and which products train on customer content. The terms still permit training non-text models, and any model for internal research, on customer content without approval (22 of 30). Deprecations are announced in the changelog with dates, such as the Quality Evaluator v1 and v2 endpoints on 2 July 2026, but without removal dates, and no written notice period was found (10 of 20). A sub-processor list with locations and transfer mechanisms, a choice of EU or US data centre, and hosting on AWS and Google Cloud disclosed (18 of 20)."
        },
        "sources": [
          {
            "what": "developer hub index for agents",
            "url": "https://developers.phrase.com/llms.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "API overview, nine APIs",
            "url": "https://developers.phrase.com/en/api/overview",
            "seen": "2026-10-08"
          },
          {
            "what": "platform authentication and service accounts",
            "url": "https://developers.phrase.com/en/api/platform/authentication",
            "seen": "2026-10-08"
          },
          {
            "what": "hosted MCP server setup",
            "url": "https://developers.phrase.com/en/mcp-server",
            "seen": "2026-10-08"
          },
          {
            "what": "MCP OAuth protected resource metadata",
            "url": "https://mcp.eu.phrase.com/.well-known/oauth-protected-resource",
            "seen": "2026-10-08"
          },
          {
            "what": "Language AI OpenAPI spec",
            "url": "https://developers.phrase.com/openapi/phrase-language-ai.json",
            "seen": "2026-10-08"
          },
          {
            "what": "Strings OpenAPI spec",
            "url": "https://developers.phrase.com/openapi/phrase-strings.json",
            "seen": "2026-10-08"
          },
          {
            "what": "TMS OpenAPI spec",
            "url": "https://developers.phrase.com/openapi/phrase-tms-latest.json",
            "seen": "2026-10-08"
          },
          {
            "what": "Strings authentication",
            "url": "https://developers.phrase.com/en/api/strings/authentication",
            "seen": "2026-10-08"
          },
          {
            "what": "Strings rate limiting",
            "url": "https://developers.phrase.com/en/api/strings/rate-limiting",
            "seen": "2026-10-08"
          },
          {
            "what": "Strings getting started, errors and caching",
            "url": "https://developers.phrase.com/en/api/strings/getting-started",
            "seen": "2026-10-08"
          },
          {
            "what": "TMS limits",
            "url": "https://support.phrase.com/hc/en-us/articles/5784117234972-Phrase-TMS-Limits",
            "seen": "2026-10-08"
          },
          {
            "what": "changelog",
            "url": "https://developers.phrase.com/en/changelog",
            "seen": "2026-10-08"
          },
          {
            "what": "pricing",
            "url": "https://phrase.com/pricing/",
            "seen": "2026-10-08"
          },
          {
            "what": "terms of service, DPA, fair use and pricing terms",
            "url": "https://phrase.com/legal/",
            "seen": "2026-10-08"
          },
          {
            "what": "privacy notice",
            "url": "https://phrase.com/privacy/",
            "seen": "2026-10-08"
          },
          {
            "what": "security statement",
            "url": "https://phrase.com/security/",
            "seen": "2026-10-08"
          },
          {
            "what": "AI and machine learning statement",
            "url": "https://phrase.com/artificial-intelligence-and-machine-learning-statement/",
            "seen": "2026-10-08"
          },
          {
            "what": "sub-processors",
            "url": "https://phrase.com/subprocessor-overview/",
            "seen": "2026-10-08"
          },
          {
            "what": "status incidents feed",
            "url": "https://status.phrase.com/api/v2/incidents.json",
            "seen": "2026-10-08"
          },
          {
            "what": "trial signup form",
            "url": "https://eu.phrase.com/idm-ui/signup",
            "seen": "2026-10-08"
          },
          {
            "what": "local MCP server repository, deprecated",
            "url": "https://github.com/phrase/phrase-mcp-server",
            "seen": "2026-10-08"
          },
          {
            "what": "CLI repository and tags",
            "url": "https://github.com/phrase/phrase-cli",
            "seen": "2026-10-08"
          },
          {
            "what": "official MCP registry entry",
            "url": "https://registry.modelcontextprotocol.io/v0/servers?search=phrase",
            "seen": "2026-10-08"
          },
          {
            "what": "npm downloads for phrase-js",
            "url": "https://api.npmjs.org/downloads/point/last-week/phrase-js",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI downloads for phrase-api",
            "url": "https://pypistats.org/api/packages/phrase-api/recent",
            "seen": "2026-10-08"
          },
          {
            "what": "domain registration",
            "url": "https://rdap.verisign.com/com/v1/domain/phrase.com",
            "seen": "2026-10-08"
          }
        ],
        "openQuestions": [
          "unchecked: the hosted MCP server's tool list, schemas and annotations, which need a signed-in Phrase account. `toolCount` is left empty.",
          "unchecked: trust.phrase.com, which renders only in a browser, so the SOC 2 and ISO 27001 details come from phrase.com/security.",
          "unchecked: GitHub issues on phrase/phrase-cli and phrase/phrase-mcp-server, beyond the open counts of 4 and 12.",
          "No rate limit figure for the Language AI API and no public SLA were found in the reviewed documentation.",
          "Whether the Strings API's default limit is 1,000 requests in 5 minutes on every plan is unclear. The pricing page lists 500 for Software UI/UX and Team and 1,000 for Business without a unit.",
          "The lead was right about the interfaces. It didn't say that the local npm MCP server is deprecated since 7 August 2026, which leaves the hosted server as the MCP surface.",
          "Anthropic, whose models wrote this grade, is one of Phrase's listed LLM sub-processors. No score depends on that."
        ]
      },
      "negative": 0,
      "verdict": "Nine APIs with public OpenAPI specs, Markdown docs and a hosted MCP server that signs in with OAuth and separates view, create and delete consents. The status page lists 14 incidents in 90 days, 12 marked major or critical. Capacity top-up prices aren't public, and the terms permit training some models on customer content and prohibit benchmarking.",
      "bestFor": "Teams that keep translation projects, term bases and translation memories in Phrase and want an agent to run them, or to translate through engines chosen per language pair.",
      "strengths": [
        "Public OpenAPI specs for all nine APIs, an llms.txt index and a Markdown copy of every docs page, with a dated changelog of 51 entries since 24 April 2026",
        "Hosted MCP server in the EU and the US with OAuth, PKCE, dynamic client registration and three scopes, `phrase-mcp:read`, `phrase-mcp:write` and `phrase-mcp:destructive`",
        "Service accounts since 7 August 2026 use the OAuth client credentials grant, limited by product and scope, and don't count as seats",
        "Language AI picks the engine for each language pair, detects the source language and translates files with a quality estimate",
        "A 14-day trial starts with an email address and a password, and plan prices from $27 a month are public"
      ],
      "weaknesses": [
        "status.phrase.com lists 14 incidents between 10 July and 8 October 2026, two marked critical and ten major, most confined to one component",
        "The terms of 4 October 2026 let Phrase train non-text models on customer content without approval, and prohibit use for benchmarking",
        "The Strings API still documents email and password Basic authentication and an `access_token` query parameter",
        "No idempotency keys, no `Retry-After` header in the docs and no published rate limit for the Language AI API",
        "The hosted MCP server's tool list isn't published, and the local npm server was deprecated on 7 August 2026, under six months after its first release"
      ],
      "agentNotes": [
        "Exchange a Phrase Platform API token at `https://eu.phrase.com/idm/oauth/token` (or `us.phrase.com`) for a Bearer JWT, which lasts about four hours, and refresh it before it expires",
        "Send a `User-Agent` header naming your application on every Strings and TMS call. The Strings API answers 400 without one",
        "Keep Strings calls under 1,000 in five minutes and four in parallel, and read `X-Rate-Limit-Reset` and `X-Rate-Limit-Reason` on a 429",
        "Send at most six texts of 2,000 characters to `/v2/textTranslations`, with `consumerId` and `targetLang`. Term bases and translation memories work only with an AI translation agent profile",
        "Use the MCP URL for the account's region, `https://mcp.eu.phrase.com` or `https://mcp.us.phrase.com`, and ask the user for the view consent alone unless the task writes"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "B",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 64.2
        }
      ],
      "editorialScores": {
        "ergonomics": 70,
        "maintenance": 83,
        "payments": 30,
        "reliability": 55,
        "schema": 87,
        "security": 58,
        "transparency": 65
      },
      "provenanceScore": 82
    },
    "connect": {
      "install": "brew install phrase-cli",
      "http": "curl -X POST https://eu.phrase.com/idm/oauth/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' -d 'subject_token=API-TOKEN'",
      "claudeCode": "claude mcp add --transport streamable-http phrase-mcp-prod-eu https://mcp.eu.phrase.com"
    },
    "letme": {
      "capability": "https://letme.dev/translate.text",
      "tool": "https://letme.dev/phrase"
    },
    "notable": [
      "The hosted MCP server answers at `https://mcp.eu.phrase.com` and `https://mcp.us.phrase.com` over streamable HTTP. Sign-in is OAuth with dynamic client registration or a client ID metadata document, and the user grants view, create, or modify and delete access (https://developers.phrase.com/en/mcp-server)",
      "The local `@phrase/phrase-mcp-server` package (145 tools in its README, MIT) carries a deprecation notice dated 7 August 2026 that says no new releases or fixes are planned (https://github.com/phrase/phrase-mcp-server)",
      "The terms of service effective 4 October 2026 let the Phrase Group train machine learning models that don't generate text on customer content, and any model for internal research. Training text-generating models needs the customer's prior approval (https://phrase.com/legal/, sections 3.3 to 3.5)",
      "Section 7.1 of the same terms prohibits using a Phrase product for benchmarking or to build a competing product (https://phrase.com/legal/)",
      "Machine translation is metered in Machine Translation Units. One input character is 1 MTU on a native engine and 0.5 MTU on a third-party or bring-your-own engine, and the Team plan includes 12,000,000 MTUs a year (https://phrase.com/legal/?tab=platform-pricing-terms, https://phrase.com/pricing/)",
      "The Strings API's 429 responses carry an `X-Rate-Limit-Reason` header since 22 September 2026, with the value `global-rate` or `global-concurrency` (https://developers.phrase.com/en/changelog)",
      "Phrase's AI statement names OpenAI, Google, Microsoft and Anthropic as its LLM providers and says agreements with them prevent storage of customer content or training on it (https://phrase.com/artificial-intelligence-and-machine-learning-statement/)"
    ],
    "area": "everyday",
    "details": [
      {
        "label": "APIs",
        "value": "Nine, each with an OpenAPI spec at developers.phrase.com/openapi. Strings (301 operations, version 2.0.0), TMS (547 operations in the latest spec, versions 1 to 4), Language AI (7), Platform (10), Quality Evaluator, Studio, Style Guides, Content Groups and Connectors"
      },
      {
        "label": "Hosts",
        "value": "Strings at `https://api.phrase.com/v2` (EU) and `https://api.us.app.phrase.com/v2` (US). Language AI at `https://eu.phrase.com/smt/api/` and `https://us.phrase.com/smt/api/`. The TMS spec still names `https://cloud.memsource.com/web` as its server"
      },
      {
        "label": "MCP server",
        "value": "Hosted, `https://mcp.eu.phrase.com` and `https://mcp.us.phrase.com`, streamable HTTP, OAuth with PKCE (S256), scopes `phrase-mcp:read`, `phrase-mcp:write` and `phrase-mcp:destructive`. Listed in the official MCP registry as `io.github.phrase/mcp` since 10 August 2026. Tool list not published"
      },
      {
        "label": "Credentials",
        "value": "Platform API token exchanged for a JWT (RFC 8693, `expires_in` 14399 seconds), service accounts with the client credentials grant, Strings access tokens with the scopes read, write, orders.create and team.manage and an optional expiry. Basic authentication with email and password is still documented for Strings"
      },
      {
        "label": "Language AI",
        "value": "`/v2/textTranslations` takes 1 to 6 texts of up to 2,000 characters, with optional source language detection. `/v1/fileTranslations` runs asynchronously, can add a quality estimate, and deletes files after 24 hours"
      },
      {
        "label": "Rate limits",
        "value": "Strings 1,000 requests in 5 minutes and 4 concurrent per user by default. TMS 6,000 requests a minute per signed-in user, 100 concurrent, and 200 to 2,000 running async requests by plan. No figure published for Language AI"
      },
      {
        "label": "Pagination",
        "value": "Strings lists return 25 items by default, `per_page` up to 100, with `Link` headers. ETag and `Last-Modified` on locale downloads and translation lists, and a 304 doesn't count against the rate limit"
      },
      {
        "label": "Plans",
        "value": "Freelancer $27, Software UI/UX $525, Professional (for language service providers) $525 and Team $1,245 a month, billed annually. Business and Enterprise are quoted by sales"
      },
      {
        "label": "Trial",
        "value": "14 days, signup with email and password, no automatic charge afterwards"
      },
      {
        "label": "Clients and CLI",
        "value": "Strings clients for Ruby, Python, PHP, TypeScript, Java and Go. `phrase-js` 3.27.0 on npm. Phrase Strings CLI 2.69.1 of 23 September 2026 (Homebrew, Docker, binaries), MIT"
      },
      {
        "label": "Certifications",
        "value": "ISO 27001 certificate published. SOC 2 Type I, with Type II expected in 2026 per phrase.com/security. Annual third-party penetration tests. A HIPAA assessment by CyberGRX"
      },
      {
        "label": "Data handling",
        "value": "EU or US data centre chosen at signup, hosted on AWS (Phrase Studio on Google Cloud). Customer data deleted within 60 days of deletion or contract end. Sub-processor list with locations and transfer mechanisms"
      },
      {
        "label": "Status",
        "value": "status.phrase.com on Statuspage, components for Strings, TMS and Language AI API in the EU and the US, with post-mortems on larger incidents"
      }
    ],
    "unitPrices": [
      {
        "item": "Freelancer plan",
        "unit": "month",
        "usd": 27,
        "note": "Billed annually. 1 TMS seat, no Strings seats"
      },
      {
        "item": "Software UI/UX plan",
        "unit": "month",
        "usd": 525,
        "note": "Billed annually. 15 Strings seats, 1,000,000 MTUs a year"
      },
      {
        "item": "Team plan",
        "unit": "month",
        "usd": 1245,
        "note": "Billed annually. 20 Strings seats, 12,000,000 MTUs a year"
      }
    ],
    "provenance": {
      "legalEntity": "Phrase a.s.",
      "domain": "phrase.com",
      "domainRegistered": "1999-01-08",
      "endpointOnVendorDomain": true,
      "terms": "https://phrase.com/legal/",
      "privacy": "https://phrase.com/privacy/",
      "statusPage": "https://status.phrase.com",
      "changelog": "https://developers.phrase.com/en/changelog",
      "securityTxt": "none",
      "checked": "2026-10-08",
      "notes": [
        "The terms name Phrase a.s. (formerly Memsource a.s.), Václavské náměstí 2132/47, 110 00 Prague 1, Czech Republic, identification number 247 07 139. A second tab holds the terms of Phrase GmbH in Hamburg.",
        "phrase.com/legal/ carries the full Phrase a.s. Terms of Service with its Data Processing Addendum, effective 4 October 2026, plus the Fair Use Policy and the Platform Pricing Terms on further tabs. phrase.com/terms/ redirects to it.",
        "The privacy notice for users and clients was last updated on 6 October 2026 and names Phrase a.s. and Phrase GmbH as controllers.",
        "phrase.com/.well-known/security.txt and developers.phrase.com/.well-known/security.txt both return 404. The security page takes reports at security@phrase.com.",
        "The Strings, Language AI, Platform and MCP hosts are on phrase.com. The TMS OpenAPI spec names cloud.memsource.com, the product's earlier domain.",
        "RDAP for phrase.com gives a registration date of 1999-01-08."
      ],
      "score": 82,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Phrase a.s.",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "phrase.com, registered 1999-01-08 (27 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "mcp.eu.phrase.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 5 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 4.3,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects, and has 1 clause that costs points",
          "points": 8,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "status.phrase.com",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://phrase.com/legal/",
          "state": "read",
          "readAt": "2026-10-08",
          "words": 25209,
          "points": 4.3,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "(formerly Memsource a.s.), a joint stock company incorporated under the laws of the Czech Republic, with its registered office at Václavské náměstí 2132/47, Nové Město, 110 00 Prague 1, Czech Republic, Identification Number: 247 07 139, registered in the Commercial Register under file number B 20324, maintained by the…",
              "says": "The law of Czech Republic, with disputes in the courts of Prague, Czech Republic"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "…negligence), for breach of contract, breach of statutory duty, or under any indemnity, will be limited to €25.",
              "says": "Capped at €25"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "5.1 These Terms of Service will remain effective until they are terminated or expire in accordance with the terms herein."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "Phrase will notify Customer of the proposed wording of the amended Terms of Service (or only those of its clauses which are subject to amendment) at least 30 days prior to the effective date of the proposed amendment.",
              "says": "Gives 30 days of notice before a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "5.4 Notwithstanding the foregoing, any Free Phrase Solution or Beta Solution made available to Customer will not automatically renew at the end of the applicable term for which it was expressly made available."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "training",
              "label": "Says it may use customer content to train or improve models, and no opt-out was found",
              "found": true,
              "quote": "3.3 The Phrase Group may use Customer Content to train its machine learning models and algorithms (“ML Models”) in order to enhance and optimise its solutions and offerings.",
              "costsPoints": true
            },
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "access or use any Phrase Solution in order to build a competitive product or service, or for benchmarking or other competitive services",
              "costsPoints": true
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Phrase's total liability is capped at 50 per cent of the subscription fees paid for the solution in the current subscription period.",
              "quote": "will not exceed the amount of 50% of the Subscription Fees paid by Customer for that Phrase Solution during the then-current Subscription Period."
            },
            {
              "date": "2026-10-08",
              "text": "The subscription renews for a further period equal to the initial one unless either party gives notice at least 30 days before the period ends.",
              "quote": "If neither party has served notice to terminate the provision of a Phrase Solution in accordance with the foregoing requirements, the Subscription Period shall be extended by an additional period corresponding to the initial Subscription Period."
            },
            {
              "date": "2026-10-08",
              "text": "The customer grants the Phrase Group the right to use its name, logo and trademarks in marketing materials to show it is a customer.",
              "quote": "19.1 Customer grants the Phrase Group the right to use its name, logo, trademarks and/or trade names in its marketing materials (including, press releases, webpages, social media posts, blogs, product brochures and financial reports) indicating that it is a customer of Phrase."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://phrase.com/privacy/",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-10-06",
          "words": 8587,
          "points": 8,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated: October 06, 2026",
              "says": "Last updated 2026-10-06"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "In this Privacy Notice, we describe the types of personal data that we collect in connection with provision of any Phrase products, services and content (“Phrase Solutions”), how we use and protect that data and how you can contact us and exercise your rights regarding your personal data."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "…customers and delete them in accordance with our retention and backup processes automatically within 60 days after the customer permanently deletes their content from the Phrase Solution or within 60 days from termination of the agreement.",
              "says": "Names a period of 60 days"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "When we send you marketing emails, we and our email service provider may use tracking technologies (such as tracking pixels and tracked links) to record whether, when, and how you interact with those emails, including opens and clicks."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "We do not sell your personal data to any third parties.",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "In this Privacy Notice, we describe the types of personal data that we collect in connection with provision of any Phrase products, services and content (“Phrase Solutions”), how we use and protect that data and how you can contact us and exercise your rights regarding your personal data."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "To exercise your rights, please contact us at privacy@phrase.com.",
              "says": "privacy@phrase.com"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "…recognizes that a third country ensures a level of protection adequate to the GDPR) or (ii) on standard contractual clauses agreed with the parties with which we share the data internationally.",
              "says": "Relies on standard contractual clauses"
            }
          ],
          "toKnow": [
            {
              "key": "training",
              "label": "Says it may use customer content to train or improve models, and no opt-out was found",
              "found": true,
              "quote": "This includes using the content for machine learning, where we train our models on uploaded data for various purposes",
              "costsPoints": true
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/phrase.json",
    "live": {
      "slug": "phrase",
      "probe": {
        "target": "https://mcp.eu.phrase.com",
        "method": "get",
        "lastAt": "2026-10-08T21:12:18.37223698Z",
        "lastOk": true,
        "lastStatus": 401,
        "lastMs": 71,
        "lastNote": "asks for credentials",
        "authRequired": true,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 63,
        "p95ms24h": 134,
        "samples24h": 21,
        "samples30d": 21,
        "days": [
          {
            "date": "2026-10-08",
            "probes": 21,
            "ok": 21
          }
        ]
      },
      "vendorStatus": {
        "page": "https://status.phrase.com",
        "indicator": "none",
        "summary": "All Systems Operational",
        "checkedAt": "2026-10-08T21:06:21.711443908Z"
      },
      "updatedAt": "2026-10-08T21:12:18.37223698Z"
    }
  }
}
