---
title: "Phrase Strings MCP server for AI agents - actionlake"
description: "Give Claude 298 Phrase Strings actions through one MCP server: translations, jobs, keys. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/phrase-strings
updated: 2026-10-23
---

Connectors · Marketing & media

# Phrase Strings MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Phrase Strings and the rest of your systems. It gives your agent 298 Phrase Strings actions (116 reads, 129 writes and 53 that wait for a confirmation) and holds the Phrase Strings credential itself, so the agent never does. It paces Phrase Strings's limits and records every call.

[Connect Phrase Strings free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "phrase.projects.list",
  intent: "check which Phrase Strings account is connected"
}
# List projects · read · 1 upstream call
```

- 298 actions in one signed file
- 116 read look, never change
- 129 write create and update
- 53 wait for a yes destructive, confirmed first

Set up

## Connect Phrase Strings in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Phrase Strings.
   Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `access_token` Phrase access token: in Phrase Strings, Profile settings > Access tokens > Generate token, with the scopes the…
   - `region` Your Phrase Strings region
   ```
   account { op: "connections.requirements", service: "phrase" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "phrase.projects.list" }
   # list projects · read · 1 upstream call
   check { action: "phrase.teams.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Phrase Strings at a glance

**Sign-in**

Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`access_token`

**Setup fields**

`region`

**Limits we pace to**

1,000 calls per 5 minutes, per connection

**API covered**

Phrase Strings API v2 (OpenAPI 2.0.0), at your region's phrase.com address, set when you connect

**Built from**

Phrase Strings's documentation, read 23 October 2026[OpenAPI spec (GitHub)](https://raw.githubusercontent.com/phrase/openapi/master/doc/compiled.json) [developers.phrase.com](https://developers.phrase.com/api/)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

116 of 116 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

3, so ask can line Phrase Strings up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Phrase Strings.

298 actions in 63 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **116** read look, never change
- **129** write create and update
- **53** destructive wait for a confirmation

1. ### Translations
   19
   5 read · 14 write · 0 destructive
   List all translations · Create a translation · List translations by key · List translations by locale
2. ### Jobs
   13
   3 read · 8 write · 2 destructive
   List account jobs · Complete a job · Create a job · Add keys to job
3. ### Keys
   11
   3 read · 6 write · 2 destructive
   Create a key · List keys · Search keys · Exclude a locale on a collection of keys
4. ### Teams
   11
   2 read · 5 write · 4 destructive
   List Teams · Create a Team · Get Team · Update Team
5. ### Branches
   9
   3 read · 5 write · 1 destructive
   Create comparison (async.) · Create a branch · List branches · Compare branches
6. ### Automations
   8
   2 read · 3 write · 3 destructive
   Activate an automation · Create an automation · Deactivate an automation · List automations
7. ### Comments
   8
   3 read · 3 write · 2 destructive
   Create a comment · List comments · Check if comment is read · Mark a comment as read
8. ### Job locales
   8
   2 read · 5 write · 1 destructive
   Complete a job locale · Review a job locale · Add a target locale to a job · List job target locales

**55 more areas · 211 actions**

- Spaces **8**
- Invitations **7**
- Repo syncs **7**
- Comment replies **6**
- Job annotations **6**
- Locales **6**
- Members **6**
- Releases **6**
- Webhooks **6**
- Authorizations **5**
- Blacklisted keys **5**
- Custom metadata **5**
- Distributions **5**
- Figma attachments **5**
- Glossaries **5**
- Glossary terms **5**
- Job comments **5**
- Job template locales **5**
- Job templates **5**
- Orders **5**
- Organization job template locales **5**
- Organization job templates **5**
- Projects **5**
- Release triggers **5**
- Screenshot markers **5**
- Style guides **5**
- Variables **5**
- Comment reactions **4**
- Linked keys **4**
- Machine translation **4**
- Screenshots **4**
- Tags **4**
- Glossary term translations **3**
- Notification groups **3**
- Notifications **3**
- Pre translations **3**
- Webhook deliveries **3**
- Accounts **2**
- Automation events **2**
- Checks **2**
- Documents **2**
- Keys figma attachments **2**
- Locale downloads **2**
- Repo sync events **2**
- Reports **2**
- Uploads **2**
- Versions history **2**
- Formats **1**
- Icu **1**
- Key format annotations **1**
- Quality performance score **1**
- Search **1**
- Supported languages **1**
- Upload batches **1**
- Users **1**

Top actions

## The Phrase Strings API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 36 of Phrase Strings's 36 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `phrase.members.list` List members | Get all users active in the account. | read | `identity.user.list` 474 connectors |
| `phrase.teams.list` List Teams | List all Teams for the given account. | read | `identity.group.list` 262 connectors |
| `phrase.teams.create` Create a Team | Create a new Team. | write | `identity.group.create` 205 connectors |
| `phrase.members.show` Get single member | Get details on a single user in the account. | read | `identity.user.get` 399 connectors |
| `phrase.teams.delete` Delete Team | Delete the specified Team. | destructive | `identity.group.delete` 181 connectors |
| `phrase.projects.list` List projects | List all projects the current user has access to. | read | `work.project.list` 109 connectors |
| `phrase.users.user` Show current User | Show details for current User. | read | `identity.current_user.get` 307 connectors |
| `phrase.projects.create` Create a project | Create a new project in the given account. | write | `work.project.create` 102 connectors |
| `phrase.webhooks.create` Create a webhook | Create a new webhook. | write | `automation.webhook.create` 209 connectors |
| `phrase.webhooks.list` List webhooks | List all webhooks for the given project. | read | `automation.webhook.list` 202 connectors |
| `phrase.invitations.create` Create a new invitation | Invite a person to an account. | write | `identity.invitation.create` 41 connectors |
| `phrase.invitations.list` List invitations | List invitations for an account. | read | `identity.invitation.list` 33 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Phrase Strings actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Give me a one-line status for every active Phrase Strings project.
   calls `phrase.projects.list`
2. Write write
   Create a Team in Phrase Strings. Show me exactly what you will send before you save it.
   calls `phrase.teams.create`

Governance for Phrase Strings

## Destructive actions wait for a yes.

53 Phrase Strings actions are destructive. The first 10:

- Delete Team `phrase.teams.delete`
- Delete a project `phrase.projects.delete`
- Delete a webhook `phrase.webhooks.delete`
- Delete an invitation `phrase.invitations.delete`
- Delete a term `phrase.glossary_terms.delete`
- Delete a tag `phrase.tags.delete`
- Delete a job `phrase.jobs.delete`
- Delete a key `phrase.keys.delete`
- Delete a locale `phrase.locales.delete`
- Remove a user from the account `phrase.members.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do phrase.teams.delete confirm_policy: **human**

Delete Team?

**intent:** the user asked me to delete Team

run suspended · waiting for a named person · key _phrase-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "phrase-agent",
  allowed_actions: ["phrase.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "phrase.teams.delete", approver: "lead@example.com" },
    { match: "phrase.projects.delete", approver: "lead@example.com" },
    { match: "phrase.webhooks.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Phrase Strings only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Phrase Strings costs on actionlake.

Every Phrase Strings action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Phrase Strings refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 298 Phrase Strings actions
- 298 actions page each page of a long list is one call
- 116 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Phrase Strings action.

298 actions by area: the id your agent calls, what it does, and its effect.

**Translations 19**

- `phrase.translations.by_key` List translations by key read
- `phrase.translations.by_locale` List translations by locale read
- `phrase.translations.create` Create a translation write
- `phrase.translations.exclude` Exclude a translation from export write
- `phrase.translations.exclude_collection` Exclude translations by query write
- `phrase.translations.include` Include a translation write
- `phrase.translations.include_collection` Include translations by query write
- `phrase.translations.list` List all translations read
- `phrase.translations.review` Review a translation write
- `phrase.translations.review_collection` Review translations selected by query write
- `phrase.translations.search` Search translations read
- `phrase.translations.show` Get a single translation read
- `phrase.translations.unreview` Unreview a translation write
- `phrase.translations.unreview_collection` Unreview translations selected by query write
- `phrase.translations.unverify` Mark a translation as unverified write
- `phrase.translations.unverify_collection` Unverify translations by query write
- `phrase.translations.update` Update a translation write
- `phrase.translations.verify` Verify a translation write
- `phrase.translations.verify_collection` Verify translations by query write

**Jobs 13**

- `phrase.jobs.by_account` List account jobs read
- `phrase.jobs.complete` Complete a job write
- `phrase.jobs.create` Create a job write
- `phrase.jobs.delete` Delete a job destructive
- `phrase.jobs.keys_create` Add keys to job write
- `phrase.jobs.keys_delete` Remove keys from job destructive
- `phrase.jobs.list` List jobs read
- `phrase.jobs.lock` Lock a job write
- `phrase.jobs.reopen` Reopen a job write
- `phrase.jobs.show` Get a single job read
- `phrase.jobs.start` Start a job write
- `phrase.jobs.unlock` Unlock a job write
- `phrase.jobs.update` Update a job write

**Keys 11**

- `phrase.keys.create` Create a key write
- `phrase.keys.delete` Delete a key destructive
- `phrase.keys.delete_collection` Delete collection of keys destructive
- `phrase.keys.exclude` Exclude a locale on a collection of keys write
- `phrase.keys.include` Include a locale on a collection of keys write
- `phrase.keys.list` List keys read
- `phrase.keys.search` Search keys read
- `phrase.keys.show` Get a single key read
- `phrase.keys.tag` Add tags to collection of keys write
- `phrase.keys.untag` Remove tags from collection of keys write
- `phrase.keys.update` Update a key write

**Teams 11**

- `phrase.teams.create` Create a Team write
- `phrase.teams.delete` Delete Team destructive
- `phrase.teams.list` List Teams read
- `phrase.teams.projects_create` Add Project to Team write
- `phrase.teams.projects_delete` Remove Project from Team destructive
- `phrase.teams.show` Get Team read
- `phrase.teams.spaces_create` Add Space write
- `phrase.teams.spaces_delete` Remove Space destructive
- `phrase.teams.update` Update Team write
- `phrase.teams.users_create` Add User write
- `phrase.teams.users_delete` Remove User destructive

**Branches 9**

- `phrase.branches.compare` Compare branches read
- `phrase.branches.comparison_create` Create comparison (async.) write
- `phrase.branches.create` Create a branch write
- `phrase.branches.delete` Delete a branch destructive
- `phrase.branches.list` List branches read
- `phrase.branches.merge` Merge a branch write
- `phrase.branches.show` Get a single branch read
- `phrase.branches.sync` Sync a branch write
- `phrase.branches.update` Update a branch write

**Automations 8**

- `phrase.automations.activate` Activate an automation write
- `phrase.automations.create` Create an automation write
- `phrase.automations.deactivate` Deactivate an automation destructive
- `phrase.automations.delete` Destroy automation destructive
- `phrase.automations.list` List automations read
- `phrase.automations.show` Get a single automation read
- `phrase.automations.trigger` Trigger an automation destructive
- `phrase.automations.update` Update an automation write

**Comments 8**

- `phrase.comments.create` Create a comment write
- `phrase.comments.delete` Delete a comment destructive
- `phrase.comments.list` List comments read
- `phrase.comments.mark_check` Check if comment is read read
- `phrase.comments.mark_read` Mark a comment as read write
- `phrase.comments.mark_unread` Mark a comment as unread destructive
- `phrase.comments.show` Get a single comment read
- `phrase.comments.update` Update a comment write

**Job locales 8**

- `phrase.job_locales.complete` Complete a job locale write
- `phrase.job_locales.complete_review` Review a job locale write
- `phrase.job_locales.create` Add a target locale to a job write
- `phrase.job_locales.delete` Remove a target locale from a job destructive
- `phrase.job_locales.list` List job target locales read
- `phrase.job_locales.reopen` Reopen a job locale write
- `phrase.job_locales.show` Show single job target locale read
- `phrase.job_locales.update` Update a job target locale write

**Spaces 8**

- `phrase.spaces.create` Create a Space write
- `phrase.spaces.delete` Delete Space destructive
- `phrase.spaces.list` List Spaces read
- `phrase.spaces.projects_create` Add Project to Space write
- `phrase.spaces.projects_delete` Remove Project from Space destructive
- `phrase.spaces.projects_list` List Projects in Space read
- `phrase.spaces.show` Get Space read
- `phrase.spaces.update` Update Space write

**Invitations 7**

- `phrase.invitations.create` Create a new invitation write
- `phrase.invitations.delete` Delete an invitation destructive
- `phrase.invitations.list` List invitations read
- `phrase.invitations.resend` Resend an invitation write
- `phrase.invitations.show` Get a single invitation read
- `phrase.invitations.update` Update an invitation write
- `phrase.invitations.update_settings` Update a member's invitation access write

**Repo syncs 7**

- `phrase.repo_syncs.activate` Activate a Repo Sync write
- `phrase.repo_syncs.create` Create a Repo Sync write
- `phrase.repo_syncs.deactivate` Deactivate a Repo Sync destructive
- `phrase.repo_syncs.export` Export to code repository write
- `phrase.repo_syncs.import` Import from code repository write
- `phrase.repo_syncs.list` Get Repo Syncs read
- `phrase.repo_syncs.show` Get a single Repo Sync read

**Comment replies 6**

- `phrase.comment_replies.create` Create a reply write
- `phrase.comment_replies.delete` Delete a reply destructive
- `phrase.comment_replies.list` List replies read
- `phrase.comment_replies.mark_as_read` Mark a reply as read write
- `phrase.comment_replies.mark_as_unread` Mark a reply as unread write
- `phrase.comment_replies.show` Get a single reply read

**Job annotations 6**

- `phrase.job_annotations.job_annotation_delete` Delete a job annotation destructive
- `phrase.job_annotations.job_annotation_update` Create/Update a job annotation write
- `phrase.job_annotations.job_annotations_list` List job annotations read
- `phrase.job_annotations.job_locale_annotation_delete` Delete a job locale annotation destructive
- `phrase.job_annotations.job_locale_annotation_update` Create/Update a job locale annotation write
- `phrase.job_annotations.job_locale_annotations_list` List job locale annotations read

**Locales 6**

- `phrase.locales.create` Create a locale write
- `phrase.locales.delete` Delete a locale destructive
- `phrase.locales.list` List locales read
- `phrase.locales.locales` List locales used in account read
- `phrase.locales.show` Get a single locale read
- `phrase.locales.update` Update a locale write

**Members 6**

- `phrase.members.by_project` List project members read
- `phrase.members.delete` Remove a user from the account destructive
- `phrase.members.list` List members read
- `phrase.members.show` Get single member read
- `phrase.members.update` Update a member write
- `phrase.members.update_settings` Update a member's project settings write

**Releases 6**

- `phrase.releases.create` Create a release write
- `phrase.releases.delete` Delete a release destructive
- `phrase.releases.list` List releases read
- `phrase.releases.publish` Publish a release write
- `phrase.releases.show` Get a single release read
- `phrase.releases.update` Update a release write

**Webhooks 6**

- `phrase.webhooks.create` Create a webhook write
- `phrase.webhooks.delete` Delete a webhook destructive
- `phrase.webhooks.list` List webhooks read
- `phrase.webhooks.show` Get a single webhook read
- `phrase.webhooks.test` Test a webhook write
- `phrase.webhooks.update` Update a webhook write

**Authorizations 5**

- `phrase.authorizations.create` Create an authorization write
- `phrase.authorizations.delete` Delete an authorization destructive
- `phrase.authorizations.list` List authorizations read
- `phrase.authorizations.show` Get a single authorization read
- `phrase.authorizations.update` Update an authorization write

**Blacklisted keys 5**

- `phrase.blacklisted_keys.create` Create a blocked key write
- `phrase.blacklisted_keys.delete` Delete a blocked key destructive
- `phrase.blacklisted_keys.list` List blocked keys read
- `phrase.blacklisted_keys.show` Get a single blocked key read
- `phrase.blacklisted_keys.update` Update a blocked key write

**Custom metadata 5**

- `phrase.custom_metadata.create` Create a property write
- `phrase.custom_metadata.delete` Destroy property destructive
- `phrase.custom_metadata.list` List properties read
- `phrase.custom_metadata.show` Get a single property read
- `phrase.custom_metadata.update` Update a property write

**Distributions 5**

- `phrase.distributions.create` Create a distribution write
- `phrase.distributions.delete` Delete a distribution destructive
- `phrase.distributions.list` List distributions read
- `phrase.distributions.show` Get a single distribution read
- `phrase.distributions.update` Update a distribution write

**Figma attachments 5**

- `phrase.figma_attachments.create` Create a Figma attachment write
- `phrase.figma_attachments.delete` Delete a Figma attachment destructive
- `phrase.figma_attachments.list` List Figma attachments read
- `phrase.figma_attachments.show` Get a single Figma attachment read
- `phrase.figma_attachments.update` Update a Figma attachment write

**Glossaries 5**

- `phrase.glossaries.create` Create a term base write
- `phrase.glossaries.delete` Delete a term base destructive
- `phrase.glossaries.list` List term bases read
- `phrase.glossaries.show` Get a single term base read
- `phrase.glossaries.update` Update a term base write

**Glossary terms 5**

- `phrase.glossary_terms.create` Create a term write
- `phrase.glossary_terms.delete` Delete a term destructive
- `phrase.glossary_terms.list` List terms read
- `phrase.glossary_terms.show` Get a single term read
- `phrase.glossary_terms.update` Update a term write

**Job comments 5**

- `phrase.job_comments.create` Create a job comment write
- `phrase.job_comments.delete` Delete a job comment destructive
- `phrase.job_comments.list` List job comments read
- `phrase.job_comments.show` Get a single job comment read
- `phrase.job_comments.update` Update a job comment write

**Job template locales 5**

- `phrase.job_template_locales.create` Create a job template locale write
- `phrase.job_template_locales.delete` Delete a job template locale destructive
- `phrase.job_template_locales.list` List job template locales read
- `phrase.job_template_locales.show` Get a single job template locale read
- `phrase.job_template_locales.update` Update a job template locale write

**Job templates 5**

- `phrase.job_templates.create` Create a job template write
- `phrase.job_templates.delete` Delete a job template destructive
- `phrase.job_templates.list` List job templates read
- `phrase.job_templates.show` Get a single job template read
- `phrase.job_templates.update` Update a job template write

**Orders 5**

- `phrase.orders.confirm` Confirm an order write
- `phrase.orders.create` Create a new order write
- `phrase.orders.delete` Cancel an order destructive
- `phrase.orders.list` List orders read
- `phrase.orders.show` Get a single order read

**Organization job template locales 5**

- `phrase.organization_job_template_locales.create` Create an organization job template locale write
- `phrase.organization_job_template_locales.delete` Delete an organization job template locale destructive
- `phrase.organization_job_template_locales.list` List organization job template locales read
- `phrase.organization_job_template_locales.show` Get a single organization job template locale read
- `phrase.organization_job_template_locales.update` Update an organization job template locale write

**Organization job templates 5**

- `phrase.organization_job_templates.create` Create an organization job template write
- `phrase.organization_job_templates.delete` Delete an organization job template destructive
- `phrase.organization_job_templates.list` List organization job templates read
- `phrase.organization_job_templates.show` Get a single organization job template read
- `phrase.organization_job_templates.update` Update an organization job template write

**Projects 5**

- `phrase.projects.create` Create a project write
- `phrase.projects.delete` Delete a project destructive
- `phrase.projects.list` List projects read
- `phrase.projects.show` Get a single project read
- `phrase.projects.update` Update a project write

**Release triggers 5**

- `phrase.release_triggers.create` Create a release trigger write
- `phrase.release_triggers.destroy` Delete a single release trigger destructive
- `phrase.release_triggers.list` List release triggers read
- `phrase.release_triggers.show` Get a single release trigger read
- `phrase.release_triggers.update` Update a release trigger write

**Screenshot markers 5**

- `phrase.screenshot_markers.create` Create a screenshot marker write
- `phrase.screenshot_markers.delete` Delete a screenshot marker destructive
- `phrase.screenshot_markers.list` List screenshot markers read
- `phrase.screenshot_markers.show` Get a single screenshot marker read
- `phrase.screenshot_markers.update` Update a screenshot marker write

**Style guides 5**

- `phrase.style_guides.create` Create a style guide write
- `phrase.style_guides.delete` Delete a style guide destructive
- `phrase.style_guides.list` List style guides read
- `phrase.style_guides.show` Get a single style guide read
- `phrase.style_guides.update` Update a style guide write

**Variables 5**

- `phrase.variables.create` Create a variable write
- `phrase.variables.delete` Delete a variable destructive
- `phrase.variables.list` List variables read
- `phrase.variables.show` Get a single variable read
- `phrase.variables.update` Update a variable write

**Comment reactions 4**

- `phrase.comment_reactions.create` Create a reaction write
- `phrase.comment_reactions.delete` Delete a reaction destructive
- `phrase.comment_reactions.list` List reactions read
- `phrase.comment_reactions.show` Get a single reaction read

**Linked keys 4**

- `phrase.linked_keys.batch_destroy` Batch unlink child keys from a parent key destructive
- `phrase.linked_keys.create` Link child keys to a parent key write
- `phrase.linked_keys.destroy` Unlink a child key from a parent key destructive
- `phrase.linked_keys.index` List child keys of a parent key read

**Machine translation 4**

- `phrase.machine_translation.create` Create a locale provider mapping write
- `phrase.machine_translation.destroy` Delete a locale provider mapping destructive
- `phrase.machine_translation.show` Get machine translation settings read
- `phrase.machine_translation.update` Update machine translation settings write

**Screenshots 4**

- `phrase.screenshots.delete` Delete a screenshot destructive
- `phrase.screenshots.list` List screenshots read
- `phrase.screenshots.show` Get a single screenshot read
- `phrase.screenshots.update` Update a screenshot write

**Tags 4**

- `phrase.tags.create` Create a tag write
- `phrase.tags.delete` Delete a tag destructive
- `phrase.tags.list` List tags read
- `phrase.tags.show` Get a single tag read

**Glossary term translations 3**

- `phrase.glossary_term_translations.create` Create a translation for a term write
- `phrase.glossary_term_translations.delete` Delete a translation for a term destructive
- `phrase.glossary_term_translations.update` Update a translation for a term write

**Notification groups 3**

- `phrase.notification_groups.list` List notification groups read
- `phrase.notification_groups.mark_all_as_read` Mark all notification groups as read write
- `phrase.notification_groups.mark_as_read` Mark a notification group as read write

**Notifications 3**

- `phrase.notifications.list` List notifications read
- `phrase.notifications.mark_all_as_read` Mark all notifications as read write
- `phrase.notifications.show` Get a single notification read

**Pre translations 3**

- `phrase.pre_translations.create` Create a pre-translation job write
- `phrase.pre_translations.list` List pre-translation jobs read
- `phrase.pre_translations.show` Get a single pre-translation job read

**Webhook deliveries 3**

- `phrase.webhook_deliveries.list` List webhook deliveries read
- `phrase.webhook_deliveries.redeliver` Redeliver a single webhook delivery write
- `phrase.webhook_deliveries.show` Get a single webhook delivery read

**Accounts 2**

- `phrase.accounts.list` List accounts read
- `phrase.accounts.show` Get a single account read

**Automation events 2**

- `phrase.automation_events.account_automation_events_list` List automation events for an account read
- `phrase.automation_events.automation_events_list` List events for an automation read

**Checks 2**

- `phrase.checks.dismiss` Dismiss a check issue write
- `phrase.checks.list` List check issues read

**Documents 2**

- `phrase.documents.delete` Delete document destructive
- `phrase.documents.list` List documents read

**Keys figma attachments 2**

- `phrase.keys_figma_attachments.attach_to_key` Attach the Figma attachment to a key write
- `phrase.keys_figma_attachments.detach_from_key` Detach the Figma attachment from a key destructive

**Locale downloads 2**

- `phrase.locale_downloads.create` Initiate async download of a locale write
- `phrase.locale_downloads.show` Show status of an async locale download read

**Repo sync events 2**

- `phrase.repo_sync_events.list` Repository Syncs History read
- `phrase.repo_sync_events.show` Get a single Repo Sync Event read

**Reports 2**

- `phrase.reports.locales_list` List Locale Reports (word count, character count, translation statistics) read
- `phrase.reports.show` Get Project Report read

**Uploads 2**

- `phrase.uploads.list` List uploads read
- `phrase.uploads.show` Get a single upload read

**Versions history 2**

- `phrase.versions_history.list` List all versions read
- `phrase.versions_history.show` Get a single version read

**Formats 1**

- `phrase.formats.list` List formats read

**Icu 1**

- `phrase.icu.skeleton` Build ICU skeletons write

**Key format annotations 1**

- `phrase.key_format_annotations.list` List format annotations for a key read

**Quality performance score 1**

- `phrase.quality_performance_score.list` Get Translation Quality read

**Search 1**

- `phrase.search.in_account` Search across projects read

**Supported languages 1**

- `phrase.supported_languages.list` List supported languages read

**Upload batches 1**

- `phrase.upload_batches.create` Create upload batch write

**Users 1**

- `phrase.users.user` Show current User read

Questions

## The Phrase Strings MCP server, answered.

**Is there a Phrase Strings MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 298 Phrase Strings actions across translations, jobs, keys and teams, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Phrase Strings.

**What do I need to connect Phrase Strings?**

Phrase access token: in Phrase Strings, Profile settings > Access tokens > Generate token, with the scopes the…. Plus your region. The free call account { op: "connections.requirements", service: "phrase" } lists exactly what to paste.

**Can an AI agent delete or change things in Phrase Strings?**

Only if its key allows it, and only with an explicit confirmation. 53 Phrase Strings actions are destructive, including delete Team, delete a project and delete a webhook. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Phrase Strings API limit?**

actionlake paces every call to the limits in the Phrase Strings service file: 1,000 calls per 5 minutes per connection. Repeated reads are answered from cache (116 Phrase Strings actions can be), which never reaches Phrase Strings.

**What does a Phrase Strings action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (298 Phrase Strings actions page). Cache hits, searches, dry runs and calls Phrase Strings refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Phrase Strings API does it cover?**

The Phrase Strings API v2 (OpenAPI 2.0.0) at your region's phrase.com address, set when you connect. It is built from Phrase Strings's documentation as read on 23 October 2026. 298 actions in 63 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Phrase Strings data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Phrase Strings credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Phrase Strings

Shares the most action names with

- [Lokalise 25](https://actionlake.com/connectors/lokalise)
- [Crowdin 18](https://actionlake.com/connectors/crowdin)
- [Calendly 11](https://actionlake.com/connectors/calendly)
- [Optimizely Web Experimentation 11](https://actionlake.com/connectors/optimizely-web-experimentation)
- [Cvent 11](https://actionlake.com/connectors/cvent)
- [Adobe Frame.io (V4) 11](https://actionlake.com/connectors/adobe-frame-io-v4)

Joins with, on shared entities

- [HaloPSA 3](https://actionlake.com/connectors/halopsa)
- [Odoo 3](https://actionlake.com/connectors/odoo)
- [Azure DevOps Services 3](https://actionlake.com/connectors/azure-devops-services)
- [Lightdash 3](https://actionlake.com/connectors/lightdash)
- [Octopus Deploy 3](https://actionlake.com/connectors/octopus-deploy)
- [Jira 3](https://actionlake.com/connectors/jira)

Browse

- [All Marketing & media connectors](https://actionlake.com/connectors/category/marketing-and-media)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Phrase Strings; the name is the vendor's own. Counts are from the Phrase Strings service file, version 1.0.0.

## Give your agent Phrase Strings today.

[Connect Phrase Strings free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/phrase-strings
More: https://actionlake.com/llms.txt
