Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Crowdin in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
AnythingMCP is listed in Claude's connector directory: add it to Claude in one click (opens in a new tab), then sign in and choose which MCP servers Claude may use.
Summary
Crowdin localization on crowdin.com and Crowdin Enterprise through API v2: projects and progress per language, files, source strings, translations and approvals, comments and issues, tasks, reports, translation builds and exports, translation memories, glossaries and project members.
Try asking
Example prompts for Crowdin
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Crowdin, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Crowdin + Claude
Crowdin localization on crowdin.com and Crowdin Enterprise through API v2: projects and progress per language, files, source strings, translations and approvals, comments and issues, tasks, reports, translation builds and exports, translation memories, glossaries and project members.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
CROWDIN_PERSONAL_ACCESS_TOKEN, CROWDIN_API_HOST
Step 1 — Get credentials
Setting up takes about 2 minutes. You need a crowdin.com or Crowdin Enterprise account.
- Create a personal access token. On crowdin.com: Account Settings > API > New Token. On Crowdin Enterprise: profile > Settings > API > New Token inside your organization.
- Pick the scopes you need: Projects, Source files and strings, Translations, Tasks, Reports, Translation memory, Glossaries. Read-only scopes give a read-only setup. Copy the token: it is shown only once.
- Paste it into
CROWDIN_PERSONAL_ACCESS_TOKEN; it is sent asAuthorization: Bearer <token>. CROWDIN_API_HOST:api.crowdin.comfor crowdin.com, or<organization>.api.crowdin.comfor Enterprise, with the organization from your Enterprise URLhttps://<organization>.crowdin.com.- Install the connector and run
crowdin_get_authenticated_user: it shows the user the token belongs to and confirms token and host.
Crowdin's own MCP server: Crowdin also runs an official MCP server (https://mcp.crowdin.com/v2/mcp, on Enterprise https://<organization>.mcp.crowdin.com/v2/mcp, with the personal access token as Bearer). This connector works with the API v2 directly.
What it reads:
- Projects with source and target languages, type (file-based or string-based) and settings such as workflow, QA checks, machine translation and translation memory; progress per language for the project or one file; every supported language with its Crowdin id.
- Branches, directories and source files, plus a short-lived link to the source version of a file (
crowdin_download_file). - Source strings with key, text, context, max length, labels and plural forms, filtered by file, branch, directory, label, task, a text match or a CroQL expression.
- Translations (suggestions) into one language at a time with author and rating, and the approvals with approver and time.
- Comments and issues on strings, for example unresolved requests for context.
- Tasks with type, status, language, assignees, progress and deadline; project members with role and languages.
- Translation memories and their segments, a concordance search (
crowdin_search_tm) for how a phrase was translated before, glossaries and their terms.
What it writes:
crowdin_add_stringadds a source string to a file (file-based projects).crowdin_edit_stringchanges it with JSON Patch on/text,/identifier,/context,/isHidden,/maxLengthor/labelIds;update_optiondecides what happens to existing translations when the text changes.crowdin_add_translationadds a suggestion;crowdin_approve_translationapproves it, so it goes into the exported files (this needs proofreader rights for that language).crowdin_add_commentcomments on a string or reports an issue: a question, a translation or source mistake, a request for context.crowdin_create_taskcreates a translate or proofread task for files (or strings in string-based projects) in one language, with assignees and a deadline; on Enterprise it takesworkflow_step_idinstead oftype.crowdin_edit_taskchanges it with JSON Patch, for example/statustodone.crowdin_add_tm_segmentadds the same sentence in several languages to a translation memory;crowdin_add_glossary_termadds a term, optionally as the translation of an existing term or into a concept.
Reports and translated files: reports run in the background. crowdin_generate_report returns data.identifier; the AI polls crowdin_get_report_status until status is finished and then fetches the link with crowdin_download_report. crowdin_export_project_translation exports one language as one file right away. crowdin_build_project_translations builds every file and language as a zip: the AI polls crowdin_get_build_status, then calls crowdin_download_build. Download links expire after a short time (expireIn), so the AI hands them to you instead of keeping them. These calls are POSTs but do not change the content.
Nothing is switched off at install: there are no delete tools.
Ids and formats: project, file, string, translation, task and user ids are numbers; report identifiers are strings. Languages use Crowdin ids such as de, fr, es-ES, pt-BR or zh-CN. Times are ISO 8601 with offset. PATCH tools take JSON Patch lists: [{"op": "replace", "path": "/status", "value": "done"}]. Lists come as {"data": [{"data": {...}}, ...], "pagination": {"offset": 0, "limit": 25}}, single items as {"data": {...}}. Progress is counted in words and phrases, with translationProgress and approvalProgress in percent.
Paging: limit (25 by default, at most 500) and offset. When a page holds limit items, the AI asks for the next one with offset + limit.
Limits: 20 simultaneous requests per account, across all its tokens, on crowdin.com and Enterprise; 429 means wait.
Common errors: 401 means a wrong or expired token, or the wrong host. 403 means a token without the scope, or an account without rights in the project. 404 means an unknown id. 400 and 422 are validation errors naming the field.
The connector does not delete projects, files, strings or translations, and does not upload source files.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Claude
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Recommended path: works on claude.ai web without editing any config file.
- In Claude, open Customize → Connectors.
- Click +, then Add custom connector.
- Enter a name, e.g.
Crowdin, and the remote MCP server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID, then click Add. - Click Connect and sign in to AnythingMCP (OAuth) to allow access.
All tools below appear in your chat: start typing prompts.
Available tools
| Tool | What it does |
|---|---|
crowdin_get_authenticated_user | The user the token belongs to: id, username, email, name and time zone |
crowdin_list_projects | Projects the token can reach, with id, name, identifier, source language, target language ids, type (file-based or string-based) and last… |
crowdin_get_project | One project with its settings: source language, target languages, workflow, QA checks, machine translation and translation memory settings |
crowdin_get_project_progress | Translation and approval progress per target language: words and phrases total, translated, approved, and the percentages |
crowdin_get_file_progress | Translation and approval progress of one file per target language |
crowdin_list_supported_languages | Every language Crowdin supports with its id (used everywhere else), name, locale, ISO codes and plural categories |
crowdin_list_branches | Branches of a project (file-based projects) with id, name, title and export pattern |
crowdin_list_directories | Directories of a project with id, name, path, branch and parent directory |
crowdin_list_files | Source files of a project with id, name, path, type, status, branch, directory and revision |
crowdin_get_file | One source file with its path, type, parser settings, export options, revision and timestamps |
crowdin_download_file | A short-lived download link (data.url, data.expireIn) for the source version of a file |
crowdin_list_strings | Source strings of a project with id, identifier (key), text, context, file, max length, labels, plural forms and hidden flag |
crowdin_get_string | One source string with identifier, text, context, plural forms, labels, max length and file |
crowdin_add_string | Add a source string to a file (file-based projects) with its text, key and context for translators |
crowdin_edit_string | Change a source string with JSON Patch operations on /text, /identifier, /context, /isHidden, /maxLength or /labelIds. update_option says… |
crowdin_list_translations | All translations (suggestions) of strings into one language, with text, author, rating, plural category and time |
crowdin_get_translation | One translation with its text, string, language, author, rating and provider |
crowdin_add_translation | Add a translation (suggestion) for a string in one language |
crowdin_list_approvals | Approvals of translations, filtered by string, file, language, label or translation, with the approver and time |
crowdin_approve_translation | Approve a translation, making it the one that goes into the exported files |
crowdin_list_comments | Comments and issues on strings: text, type (comment or issue), issue type and status, language, author and time |
crowdin_add_comment | Comment on a string, or report an issue (a question, a translation or source mistake, a request for context) |
crowdin_list_tasks | Tasks of a project with title, type (translate or proofread), status, language, assignees, progress, deadline and words count |
crowdin_get_task | One task with its files or strings, language, assignees, progress, deadline, cost estimate and status |
crowdin_create_task | Create a translate or proofread task for files (or, in string-based projects, strings) in one language, assigned to people, with a deadline |
crowdin_edit_task | Change a task with JSON Patch operations, e.g. its status (todo, in_progress, done, closed), title, description, deadline or assignees |
crowdin_generate_report | Start a project report: costs estimate, translation costs, top members, contribution raw data, translator accuracy, QA issues, translation… |
crowdin_get_report_status | Progress of a report being generated: status (created, inProgress, finished, failed) and progress percent |
crowdin_download_report | A short-lived download link (data.url) for a finished report |
crowdin_build_project_translations | Start a build of the translated files of a project (all or some languages, optionally a branch) as a zip |
crowdin_get_build_status | Status and progress of a translations build (created, inProgress, finished, failed, canceled) |
crowdin_download_build | A short-lived download link (data.url) for the zip of a finished build |
crowdin_export_project_translation | Export the translations of one language right away, as one file in a chosen format (e.g. xliff, json, android, macosx), for all or some… |
crowdin_list_tms | Translation memories with id, name, languages, segments count and the projects using them |
crowdin_get_tm | One translation memory with its languages, segments count and default project |
crowdin_list_tm_segments | Segments of a translation memory, each with its records (language id and text) |
crowdin_search_tm | Concordance search: find how phrases were translated before in the translation memories of a project |
crowdin_add_tm_segment | Add a segment to a translation memory: the same sentence in several languages |
crowdin_list_glossaries | Glossaries with id, name, languages, terms count and the projects using them |
crowdin_get_glossary | One glossary with its languages, terms count and default project |
crowdin_list_glossary_terms | Terms of a glossary with text, language, description, part of speech, status, type, note and concept id (terms of one concept are… |
crowdin_add_glossary_term | Add a term to a glossary, optionally as the translation of an existing term (translation_of_term_id) or into a concept |
crowdin_list_members | Members of a project with id, username, full name, role (manager, proofreader, translator, ...) and their languages |
crowdin_get_member | One project member with role, permissions per language and join date |
Example prompts
- "How far along are the German and Japanese translations of our app project, translated and approved?"
- "Which strings in the checkout file have open issues asking for context?"
- "How did we translate "Sign in" into French before? Search the translation memory."
- "Create a proofreading task for the Spanish translation of the onboarding file, due Friday, and assign it to Maria."
- "Build the translated files for all languages, approved translations only, and give me the zip link."
FAQ
Does it work with Claude Code as well as Claude Desktop? Yes, point both at https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID.
Next steps
- Connector landing page
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?