# Crowdin — how to use (mcp.ai)

Crowdin is a localization management platform that streamlines the translation process, offering tools for collaboration, content centralization, and workflow automation.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_crowdin?ms=1781542140000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `crowdin_add_branch`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/crowdin`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/crowdin/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/crowdin/add/branch` — Tool to create a new branch in a crowdin project. use when you need to isolate translations for a new feature or release.
  - body: { name: string, title?: string, priority?: string, projectId: string, exportPattern?: string }
- `POST https://api.mcp.ai/api/crowdin/add/file` — Tool to add a new file to a crowdin project. use after uploading the file to storage to place it under the specified project, branch, or directory.
  - body: { name: string, type?: string, branchId?: integer, projectId: integer, storageId: integer, directoryId?: integer, exportOptions?: object, importOptions?: object }
- `POST https://api.mcp.ai/api/crowdin/add/label` — Tool to create a new label in a crowdin project. use when you need to tag resources with a custom identifier, such as 'sprint-5'.
  - body: { name: string, project_id: integer, description?: string }
- `POST https://api.mcp.ai/api/crowdin/add/project` — Tool to create a new project in crowdin. use before uploading source files to initialize translation workflows.
  - body: { logo?: string, name: string, type?: integer, cname?: string, visibility?: string, description?: string, sourceLanguageId: string, targetLanguageIds: string[], normalizePlaceholder?: boolean, notificationSettings?: object, sourceLanguageMapping?: object }
- `POST https://api.mcp.ai/api/crowdin/add/webhook` — Tool to create a new webhook in a crowdin project. use after confirming the project id and desired event triggers.
  - body: { url: string, name: string, events: string[], headers?: object, payload?: string, isActive?: boolean, projectId: string, requestType?: string }
- `POST https://api.mcp.ai/api/crowdin/assign/label/to/strings` — Tool to assign the specified label to provided string ids in a project. use after creating the label or verifying string ids to categorize content.
  - body: { labelId: integer, projectId: string, stringIds: integer[] }
- `POST https://api.mcp.ai/api/crowdin/delete/branch` — Tool to delete a specific branch from a crowdin project. use when you need to remove an obsolete branch after it's fully merged.
  - body: { branchId: integer, projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/delete/label` — Tool to delete the label identified by the specified label id in a project. use when you need to remove outdated or incorrect labels. ensure no resources reference the label before deletion.
  - body: { label_id: integer, project_id: integer }
- `POST https://api.mcp.ai/api/crowdin/delete/project` — Tool to delete a crowdin project by its id. use when you need to permanently remove a project after confirming no further usage. ensure all resources are no longer needed before deletion.
  - body: { project_id: integer }
- `POST https://api.mcp.ai/api/crowdin/delete/webhook` — Tool to delete the webhook identified by the specified webhook id in a crowdin project. use when you need to remove obsolete or incorrect webhooks after confirming project and webhook ids.
  - body: { projectId: string, webhookId: integer }
- `POST https://api.mcp.ai/api/crowdin/edit/file` — Tool to update file details in a project. use after confirming valid project and file ids.
  - body: { file_id: integer, operations: object[], project_id: integer }
- `POST https://api.mcp.ai/api/crowdin/edit/label` — Tool to edit a label in a crowdin project. use when you need to update the name or description of an existing label. ensure the label exists before using. example: edit label 42 to 'release-1.1'.
  - body: { name?: string, label_id: integer, project_id: integer, description?: string }
- `POST https://api.mcp.ai/api/crowdin/edit/project` — Tool to update project details using json-patch. use after confirming project settings to modify metadata like name, description, visibility, or languages.
  - body: { patch: object[], projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/edit/string` — Tool to update string details in a crowdin project. use when you need to modify a string's text or metadata after creation.
  - body: { stringId: integer, projectId: integer, operations: object[] }
- `POST https://api.mcp.ai/api/crowdin/get/label` — Tool to retrieve information about the label identified by the specified label id in a project. use after confirming the project context to fetch label details.
  - body: { label_id: integer, project_id: integer }
- `POST https://api.mcp.ai/api/crowdin/get/language` — Tool to retrieve details of a specific language. use when you have a language identifier and need locale codes and plural rules before configuring translations.
  - body: { languageId: string }
- `POST https://api.mcp.ai/api/crowdin/get/member/info` — Tool to retrieve information about a project member. use when you need to inspect details for a specific user within a project after obtaining their member id.
  - body: { memberId: integer, projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/get/project` — Tool to retrieve details of a specific crowdin project. use when you need to inspect project settings before making updates.
  - body: { projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/get/string` — Tool to retrieve details of a specific string in a crowdin project. use after confirming the project and string ids to fetch its metadata.
  - body: { stringId: integer, projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/get/webhook` — Tool to retrieve information about the webhook identified by the specified webhook id in a project. use after confirming the project context to fetch webhook details.
  - body: { project_id: integer, webhook_id: integer }
- `POST https://api.mcp.ai/api/crowdin/list/branches` — Tool to list all branches in a crowdin project. use after selecting a project to view its branch structure. supports pagination and optional filtering by branch id.
  - body: { limit?: integer, offset?: integer, branchId?: integer, projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/list/files` — Tool to list files in a crowdin project. use when you need to retrieve a list of project files with optional filters by directory, group, or branch before processing.
  - body: { limit?: integer, offset?: integer, groupId?: integer, branchId?: integer, projectId: integer, directoryId?: integer }
- `POST https://api.mcp.ai/api/crowdin/list/labels` — Tool to list labels in a crowdin project. use when you need to retrieve all labels for a specific project with optional pagination.
  - body: { limit?: integer, offset?: integer, project_id: integer }
- `POST https://api.mcp.ai/api/crowdin/list/languages` — Tool to retrieve a list of supported languages. use when you need to fetch all languages crowdin supports before starting localization.
  - body: { limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/crowdin/list/project/members` — Tool to list members in a crowdin project. use when you need to retrieve project member list for management tasks after confirming the project id.
  - body: { role?: string, limit?: integer, offset?: integer, search?: string, projectId: integer, languageId?: string }
- `POST https://api.mcp.ai/api/crowdin/list/projects` — Tool to retrieve a list of all crowdin projects with optional filters. use when you need to paginate through or filter projects by owner, group, language inclusion, or archive status.
  - body: { limit?: integer, offset?: integer, userId?: integer, groupId?: integer, isArchived?: boolean, languageId?: string, hasManagerAccess?: boolean }
- `POST https://api.mcp.ai/api/crowdin/list/reports` — Tool to list reports for a given crowdin project. use after confirming project id to retrieve available reports. supports pagination via limit and offset.
  - body: { limit?: integer, offset?: integer, projectId: integer }
- `POST https://api.mcp.ai/api/crowdin/upload/storage` — Tool to upload a file to crowdin storage. use when you need to obtain a storageid for further operations like adding files to a project.
  - body: { file: string, fileName: string, contentType: string }

## More
- Page: https://mcp.ai/crowdin
- Agent spec (llms.txt): https://mcp.ai/crowdin/llms.txt
- Postman collection: https://mcp.ai/crowdin/postman.json
