Skip to main content
Documentation

Let your AI coding assistant find and add translation text for you, without leaving your code editor.

Navigation

Create your access token and copy your Project ID from these settings. You’ll paste both into your tool.

1Workspace
2Settings
3API & Agents
StringsOS API and agents navigation

Overview

MCP is a standard way for AI coding assistants to use other tools. Connect StringsOS, and your assistant can look up and add translation text while it writes code.

No more switching between your editor and StringsOS. Describe the text you need, and the assistant checks for an existing match, picks the right group, and adds it if needed.

Runs on your computer

Starts with one command (npx). Nothing to install first.

Finds existing text

Your assistant checks for existing text first, so you don’t end up with duplicates.

Adds new text

Building a new screen? Your assistant adds its text to StringsOS for you, without leaving your editor.

Works with popular tools

Cursor, Windsurf, Claude Code, and any editor that supports MCP.

Setup

It takes about three minutes. Create a token, copy your Project ID, and paste a small block of settings into your tool.

1

Create an access token

Go to Workspace → Settings → API & Agents and create a Personal Access Token. Name it after your tool (for example, "cursor-laptop"), then copy it. It’s only shown once.

Treat this token like a password. Keep it out of your code and don’t share it.

2

Copy your Project ID

Open your project, go to Settings → General, and copy the Project ID at the top of the page.

3

Add the settings to your tool

Open your tool’s settings file (see the tabs below) and paste in your Project ID and token.

The first run downloads the StringsOS connector automatically. There’s nothing to install yourself.

4

Restart your tool

Restart or reload it. Most tools show a “connected” sign in their settings.

5

Check that it works

Ask your assistant: "List my StringsOS namespaces." (Namespaces are the groups your text is sorted into.) If it answers with your groups, you’re connected.

Your tool’s settings

Copy the block for your tool and replace YOUR_PROJECT_ID and YOUR_API_TOKEN with your own values. The file path is shown above each block. Create the file if it doesn’t exist.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "stringsos": {
      "command": "npx",
      "args": [
        "-y",
        "@stringsos/mcp-server",
        "--project-id=YOUR_PROJECT_ID",
        "--token=YOUR_API_TOKEN"
      ]
    }
  }
}

Keep your token private

If your tool supports environment variables, use $STRINGSOS_TOKEN instead of pasting the token. If your code is shared with a team, add the settings file to .gitignore.

What it can do

Your assistant picks the right one on its own. You never need to type these names; they’re listed so you know what it can and can’t do.

search_keys

Look up existing text by wording or group, to avoid duplicates.

Example

search_keys(query: "save changes", namespace: "common")
get_key

Get the original text and all of its translations.

Example

get_key(key: "common.saveChanges")
create_key

Add new text to any group.

Example

create_key(key: "settings.deleteAccount", value: "Delete account", namespace: "settings")
list_namespaces

See all the groups in your project, so the assistant can pick the right one.

Example

list_namespaces()

Example

Here’s how an assistant uses StringsOS while you build a feature.

Agent session
You

Add a "Save changes" button to the Settings page. Wire it up with i18n.

Agent

Searching StringsOS for existing keys matching "save changes"…

StringsOS MCP

search_keys → 1 result: "common.saveChanges" = "Save changes"

Agent

Found an existing key. Using common.saveChanges instead of creating a duplicate. Adding the button now…

You

Also add a "Discard changes" link below it.

Agent

Searching StringsOS for "discard changes"…

StringsOS MCP

search_keys → 0 results. Creating new key in namespace "settings"…

StringsOS MCP

create_key → "settings.discardChanges" created ✓

Agent

Done. New key settings.discardChanges is live in StringsOS and wired into the component. Your translators can start on it immediately.

Stay in your editor

Your assistant handles the StringsOS busywork, so you can keep building. Translators see new text right away and can start translating.

  • No duplicate text
  • Translators start right away
  • Works with Cursor, Windsurf, and Claude Code

Troubleshooting

Still stuck? Contact support or visit the Troubleshooting guide.

What's next

Set it up once and stop copy-pasting text into StringsOS.

Free during beta · No credit card required