How to integrate Crowdin MCP with LlamaIndex

This guide walks you through connecting Crowdin to LlamaIndex using the Composio tool router. By the end, you'll have a working Crowdin agent that can create a new crowdin project for our app, add new source file to the translations project, assign sprint label to specific string ids through natural language commands. This guide will help you understand how to give your LlamaIndex agent real control over a Crowdin account through Composio's Crowdin MCP server. Before we dive in, let's take a quick look at the key ideas and tools involved.

Crowdin logoCrowdin
Api KeyOauth2

Crowdin is a localization management platform that streamlines translation workflows and collaboration. It helps teams centralize multilingual content, boost productivity, and automate translation processes.

230 Tools

Introduction

This guide walks you through connecting Crowdin to LlamaIndex using the Composio tool router. By the end, you'll have a working Crowdin agent that can create a new crowdin project for our app, add new source file to the translations project, assign sprint label to specific string ids through natural language commands.

This guide will help you understand how to give your LlamaIndex agent real control over a Crowdin account through Composio's Crowdin MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate Crowdin with

TL;DR

Here's what you'll learn:
  • Set your OpenAI and Composio API keys
  • Install LlamaIndex and Composio packages
  • Create a Composio Tool Router session for Crowdin
  • Connect LlamaIndex to the Crowdin MCP server
  • Build a Crowdin-powered agent using LlamaIndex
  • Interact with Crowdin through natural language

What is LlamaIndex?

LlamaIndex is a data framework for building LLM applications. It provides tools for connecting LLMs to external data sources and services through agents and tools.

Key features include:

  • ReAct Agent: Reasoning and acting pattern for tool-using agents
  • MCP Tools: Native support for Model Context Protocol
  • Context Management: Maintain conversation context across interactions
  • Async Support: Built for async/await patterns

What is the Crowdin MCP server, and what's possible with it?

The Crowdin MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Crowdin account. It provides structured and secure access to your localization projects, so your agent can manage branches, organize files, label content, automate webhooks, and orchestrate translation workflows on your behalf.

  • Branch and project management: Easily have your agent create, delete, or organize Crowdin projects and branches to streamline new releases or features.
  • Dynamic file handling: Let your agent add new files to projects, ensuring your translation assets are always up to date and properly organized by branch or directory.
  • Labeling and content categorization: Direct your agent to create, assign, or remove labels on resources and strings, helping you segment and track translation tasks with precision.
  • Workflow automation with webhooks: Automate your translation process by having the agent set up or remove webhooks for real-time notifications and integrations.
  • Resource cleanup and maintenance: Empower your agent to delete obsolete branches, labels, webhooks, or entire projects, keeping your Crowdin workspace clean and focused.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step10 STEPS
1

Prerequisites

Before you begin, make sure you have:
  • Python 3.8/Node 16 or higher installed
  • A Composio account with the API key
  • An OpenAI API key
  • A Crowdin account and project
  • Basic familiarity with async Python/Typescript
2

Getting API Keys for OpenAI, Composio, and Crowdin

OpenAI API key (OPENAI_API_KEY)
  • Go to the OpenAI dashboard
  • Create an API key if you don't have one
  • Assign it to OPENAI_API_KEY in .env
Composio API key and user ID
  • Log into the Composio dashboard
  • Copy your API key from Settings
    • Use this as COMPOSIO_API_KEY
  • Pick a stable user identifier (email or ID)
    • Use this as COMPOSIO_USER_ID
3

Installing dependencies

npm install @composio/llamaindex @llamaindex/openai @llamaindex/tools @llamaindex/workflow dotenv

Create a new Typescript project and install the necessary dependencies:

  • @composio/llamaindex: Composio's LlamaIndex integration
  • @llamaindex/openai: OpenAI LLM integration
  • @llamaindex/tools: MCP client for LlamaIndex
  • @llamaindex/workflow: Workflow framework for LlamaIndex
  • dotenv: Environment variable management
4

Set environment variables

bash
OPENAI_API_KEY=your-openai-api-key
COMPOSIO_API_KEY=your-composio-api-key
COMPOSIO_USER_ID=your-user-id

Create a .env file in your project root:

These credentials will be used to:

  • Authenticate with OpenAI's GPT-5 model
  • Connect to Composio's Tool Router
  • Identify your Composio user session for Crowdin access
5

Import modules

import "dotenv/config";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";

import { Composio } from "@composio/core";

import { mcp } from "@llamaindex/tools";
import { agent as createAgent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";

dotenv.config();

Create a new file called crowdin_llamaindex_agent.ts and import the required modules:

Key imports:

  • dotenv.config loads .env at runtime
  • readline gives us a simple CLI chat loop
  • Composio is the main Composio SDK client
  • mcp connects to an MCP endpoint
  • createAgent builds a LlamaIndex agent
  • openai configures the LLM backend
6

Load environment variables and initialize Composio

const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY;
const COMPOSIO_USER_ID = process.env.COMPOSIO_USER_ID;

if (!OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!COMPOSIO_API_KEY) throw new Error("COMPOSIO_API_KEY is not set");
if (!COMPOSIO_USER_ID) throw new Error("COMPOSIO_USER_ID is not set");

What's happening:

This ensures missing credentials cause early, clear errors before the agent attempts to initialise.

7

Create a Tool Router session and build the agent function

async function buildAgent() {

  console.log(`Initializing Composio client...${COMPOSIO_USER_ID!}...`);
  console.log(`COMPOSIO_USER_ID: ${COMPOSIO_USER_ID!}...`);

  const composio = new Composio({
    apiKey: COMPOSIO_API_KEY,
    provider: new LlamaindexProvider(),
  });

  const session = await composio.create(
    COMPOSIO_USER_ID!,
    {
      toolkits: ["crowdin"],
    },
  );

  const mcpUrl = session.mcp.url;
  console.log(`Composio Tool Router MCP URL: ${mcpUrl}`);

  const server = mcp({
    url: mcpUrl,
    clientName: "composio_tool_router_with_llamaindex",
    requestInit: {
      headers: {
        "x-api-key": COMPOSIO_API_KEY!,
      },
    },
    // verbose: true,
  });

  const tools = await server.tools();

  const llm = openai({ apiKey: OPENAI_API_KEY, model: "gpt-5" });

  const agent = createAgent({
    name: "composio_tool_router_with_llamaindex",
        description : "An agent that uses Composio Tool Router MCP tools to perform actions.",
    systemPrompt:
      "You are a helpful assistant connected to Composio Tool Router."+
"Use the available tools to answer user queries and perform Crowdin actions." ,
    llm,
    tools,
  });

  return agent;
}

What's happening here:

  • We create a Composio client using your API key and configure it with the LlamaIndex provider
  • We then create a tool router MCP session for your user, specifying the toolkits we want to use (in this case, crowdin)
  • The session returns an MCP HTTP endpoint URL that acts as a gateway to all your configured tools
  • LlamaIndex will connect to this endpoint to dynamically discover and use the available Crowdin tools.
  • The MCP tools are mapped to LlamaIndex-compatible tools and plug them into the Agent.
8

Create an interactive chat loop

async function chatLoop(agent: ReturnType<typeof createAgent>) {
  const rl = readline.createInterface({ input, output });

  console.log("Type 'quit' or 'exit' to stop.");

  while (true) {
    let userInput: string;

    try {
      userInput = (await rl.question("\nYou: ")).trim();
    } catch {
      console.log("\nAgent: Bye!");
      break;
    }

    if (!userInput) {
      continue;
    }

    const lower = userInput.toLowerCase();
    if (lower === "quit" || lower === "exit") {
      console.log("Agent: Bye!");
      break;
    }

    try {
      process.stdout.write("Agent: ");

      const stream = agent.runStream(userInput);
      let finalResult: any = null;

      for await (const event of stream) {
        // The event.data contains the streamed content
        const data: any = event.data;

        // Check for streaming delta content
        if (data?.delta) {
          process.stdout.write(data.delta);
        }

        // Store final result for fallback
        if (data?.result || data?.message) {
          finalResult = data;
        }
      }

      // If no streaming happened, show the final result
      if (finalResult) {
        const answer =
          finalResult.result ??
          finalResult.message?.content ??
          finalResult.message ??
          "";
        if (answer && typeof answer === "string" && !answer.includes("[object")) {
          process.stdout.write(answer);
        }
      }

      console.log(); // New line after streaming completes
    } catch (err: any) {
      console.error("\nAgent error:", err?.message ?? err);
    }
  }

  rl.close();
}

What's happening:

  • We're creating a direct terminal interface to chat with Crowdin
  • The LLM's responses are streamed to the CLI for faster interaction.
  • The agent uses context to maintain conversation history
  • The agent processes the request, selects appropriate Crowdin tools, and returns a result
  • We extract the answer from the result data structure and display it to the user
  • You can type 'quit' or 'exit' to stop the chat loop gracefully
  • Agent responses and any errors are streamed in a clear, readable format
9

Define the main entry point

async function main() {
  try {
    const agent = await buildAgent();
    await chatLoop(agent);
  } catch (err) {
    console.error("Failed to start agent:", err);
    process.exit(1);
  }
}

main();

What's happening here:

  • We're orchestrating the entire application flow
  • The agent gets built with proper error handling
  • Then we kick off the interactive chat loop so you can start talking to Crowdin
10

Run the agent

npx ts-node llamaindex-agent.ts

When prompted, authenticate and authorise your agent with Crowdin, then start asking questions.

Complete Code

Here's the complete code to get you started with Crowdin and LlamaIndex:

import "dotenv/config";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";

import { Composio } from "@composio/core";
import { LlamaindexProvider } from "@composio/llamaindex";

import { mcp } from "@llamaindex/tools";
import { agent as createAgent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";

dotenv.config();

const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY;
const COMPOSIO_USER_ID = process.env.COMPOSIO_USER_ID;

if (!OPENAI_API_KEY) {
    throw new Error("OPENAI_API_KEY is not set in the environment");
  }
if (!COMPOSIO_API_KEY) {
    throw new Error("COMPOSIO_API_KEY is not set in the environment");
  }
if (!COMPOSIO_USER_ID) {
    throw new Error("COMPOSIO_USER_ID is not set in the environment");
  }

async function buildAgent() {

  console.log(`Initializing Composio client...${COMPOSIO_USER_ID!}...`);
  console.log(`COMPOSIO_USER_ID: ${COMPOSIO_USER_ID!}...`);

  const composio = new Composio({
    apiKey: COMPOSIO_API_KEY,
    provider: new LlamaindexProvider(),
  });

  const session = await composio.create(
    COMPOSIO_USER_ID!,
    {
      toolkits: ["crowdin"],
    },
  );

  const mcpUrl = session.mcp.url;
  console.log(`Composio Tool Router MCP URL: ${mcpUrl}`);

  const server = mcp({
    url: mcpUrl,
    clientName: "composio_tool_router_with_llamaindex",
    requestInit: {
      headers: {
        "x-api-key": COMPOSIO_API_KEY!,
      },
    },
    // verbose: true,
  });

  const tools = await server.tools();

  const llm = openai({ apiKey: OPENAI_API_KEY, model: "gpt-5" });

  const agent = createAgent({
    name: "composio_tool_router_with_llamaindex",
    description:
      "An agent that uses Composio Tool Router MCP tools to perform actions.",
    systemPrompt:
      "You are a helpful assistant connected to Composio Tool Router."+
"Use the available tools to answer user queries and perform Crowdin actions." ,
    llm,
    tools,
  });

  return agent;
}

async function chatLoop(agent: ReturnType<typeof createAgent>) {
  const rl = readline.createInterface({ input, output });

  console.log("Type 'quit' or 'exit' to stop.");

  while (true) {
    let userInput: string;

    try {
      userInput = (await rl.question("\nYou: ")).trim();
    } catch {
      console.log("\nAgent: Bye!");
      break;
    }

    if (!userInput) {
      continue;
    }

    const lower = userInput.toLowerCase();
    if (lower === "quit" || lower === "exit") {
      console.log("Agent: Bye!");
      break;
    }

    try {
      process.stdout.write("Agent: ");

      const stream = agent.runStream(userInput);
      let finalResult: any = null;

      for await (const event of stream) {
        // The event.data contains the streamed content
        const data: any = event.data;

        // Check for streaming delta content
        if (data?.delta) {
          process.stdout.write(data.delta);
        }

        // Store final result for fallback
        if (data?.result || data?.message) {
          finalResult = data;
        }
      }

      // If no streaming happened, show the final result
      if (finalResult) {
        const answer =
          finalResult.result ??
          finalResult.message?.content ??
          finalResult.message ??
          "";
        if (answer && typeof answer === "string" && !answer.includes("[object")) {
          process.stdout.write(answer);
        }
      }

      console.log(); // New line after streaming completes
    } catch (err: any) {
      console.error("\nAgent error:", err?.message ?? err);
    }
  }

  rl.close();
}

async function main() {
  try {
    const agent = await buildAgent();
    await chatLoop(agent);
  } catch (err: any) {
    console.error("Failed to start agent:", err?.message ?? err);
    process.exit(1);
  }
}

main();

Conclusion

You've successfully connected Crowdin to LlamaIndex through Composio's Tool Router MCP layer. Key takeaways:
  • Tool Router dynamically exposes Crowdin tools through an MCP endpoint
  • LlamaIndex's ReActAgent handles reasoning and orchestration; Composio handles integrations
  • The agent becomes more capable without increasing prompt size
  • Async Python provides clean, efficient execution of agent workflows
You can easily extend this to other toolkits like Gmail, Notion, Stripe, GitHub, and more by adding them to the toolkits parameter.
TOOLS

Supported Tools

Every Crowdin action and event your agent gets out of the box.

Add Branch

Tool to create a new branch in a Crowdin project.

Add Directory

Tool to create a new directory in a Crowdin project.

Add File

Tool to add a new file to a Crowdin project.

Add Glossary Term

Tool to add a new term to a Crowdin glossary.

Add Label

Tool to create a new label in a Crowdin project.

Create Crowdin Project

Tool to create a new project in Crowdin.

Add Project File Format Settings

Tool to add file format settings to a Crowdin project.

Add Webhook

Tool to create a new webhook in a Crowdin project.

Assign Label to Strings

Assign a label to one or more source strings in a Crowdin project.

Build Project Directory Translation

Tool to build translations for a specific directory in a Crowdin project.

Build Project File Translation

Tool to build a project file translation in Crowdin.

Build Project Translation

Tool to build project translation in Crowdin, generating downloadable translation files.

Cancel Project Translation Build

Tool to cancel a project translation build in Crowdin.

Check Bundle Export Status

Tool to check the status of a bundle export operation in Crowdin.

Check Glossary Export Status

Tool to check the status of a glossary export operation.

Check Glossary Import Status

Tool to check the status of a glossary import operation.

Check GraphQL Rate Limit

Tool to check GraphQL API rate limit status for Crowdin.

Check Project Report Status

Tool to check report generation status in a Crowdin project.

Check Project Build Status

Tool to check the status of a project translation build in Crowdin.

Check TM Export Status

Tool to check Translation Memory export status in Crowdin.

Check TM Import Status

Tool to check Translation Memory import status in Crowdin.

Check AI Report Status

Tool to check the generation status of an AI report for a Crowdin user.

Clone AI Prompt

Tool to clone an existing AI prompt in Crowdin.

Create Glossary

Tool to create a new glossary in Crowdin.

Import Glossary

Tool to import glossary terms from a file into a Crowdin glossary.

Create Custom Language

Tool to create a custom language in Crowdin.

Create MT Translations

Tool to translate strings using Crowdin's Machine Translation engine.

Create Project Comment

Tool to add a comment or issue to a string or file (asset) in a Crowdin project.

Add Project Member

Tool to add members to a Crowdin project.

Add Bundle

Tool to add a new bundle to a Crowdin project.

Add Distribution

Tool to create a new distribution in a Crowdin project.

Create Report Settings Template

Tool to create a report settings template in Crowdin.

Create Project Strings Exporter Settings

Tool to add project strings exporter settings in Crowdin.

Create Project Task

Tool to create a new task in a Crowdin project.

Create String

Tool to add a new source string to a Crowdin project.

Create TM Import

Tool to import a Translation Memory file into Crowdin.

Add Translation Memory

Tool to create a new Translation Memory (TM) in Crowdin.

Create TM Segments

Tool to create translation memory segments in Crowdin.

Create TM Segment Records

Tool to create translation memory segment records in Crowdin.

Create Translation Alignment

Tool to create translation alignment for a project.

Create AI Prompt

Tool to create a new AI prompt in Crowdin.

Add AI Snippet

Tool to create an AI snippet in Crowdin.

Create User Report Settings Template

Tool to create a user report settings template in Crowdin.

Delete Branch

Tool to delete a specific branch from a Crowdin project.

Delete Directory

Tool to delete a specific directory from a Crowdin project.

Delete File

Tool to delete a specific file from a Crowdin project.

Delete Glossary

Tool to delete a glossary from Crowdin.

Delete Glossary Concept

Tool to delete a concept from a Crowdin glossary.

Delete Glossary Term

Tool to delete a term from a Crowdin glossary.

Delete Glossary Terms

Tool to clear terms from a Crowdin glossary.

Delete Label

Tool to delete the label identified by the specified label ID in a project.

Delete Custom Language

Tool to delete a custom language from Crowdin.

Delete Project

Tool to delete a Crowdin project by its ID.

Delete Project Comment Attachment

Tool to delete an attachment from a string or asset comment in a Crowdin project.

Delete Project Member

Tool to delete a member from a Crowdin project.

Delete Bundle

Tool to delete a bundle from a Crowdin project.

Delete Distribution

Tool to delete a distribution from a Crowdin project.

Delete Project File Format Settings

Tool to delete file format settings from a Crowdin project.

Delete Report Settings Template

Tool to delete a report settings template from a Crowdin project.

Delete Screenshot

Tool to delete a screenshot from a Crowdin project.

Delete Project Strings Exporter Settings

Tool to delete project strings exporter settings in Crowdin.

Delete Task Settings Template

Tool to delete a task settings template from a Crowdin project.

Delete Project Task

Tool to delete a specific task from a Crowdin project.

Delete Project Task Comment

Tool to delete a specific comment from a project task.

Delete Storage

Tool to delete a storage from Crowdin.

Delete String

Tool to delete a specific source string from a Crowdin project.

Delete Translation Memory

Tool to delete a Translation Memory (TM) from Crowdin.

Delete TM Segment

Tool to delete a specific translation memory segment from Crowdin.

Clear TM Segments

Tool to clear all segments from a Translation Memory in Crowdin.

Delete TM Segment Record

Tool to delete a translation memory segment record in Crowdin.

Delete User AI Prompt

Tool to delete an AI prompt for a specific user.

Delete User AI Provider

Tool to delete an AI provider for a specific user.

Delete AI Snippet

Tool to delete an AI snippet from Crowdin.

Delete User Report Settings Template

Tool to delete a user report settings template from Crowdin.

Delete Webhook

Permanently deletes a webhook from a Crowdin project.

Download File

Tool to download a file from a Crowdin project.

Download Glossary Export

Tool to download an exported glossary from Crowdin.

Download Bundle Export

Tool to download an exported bundle from Crowdin.

Download Project Report

Tool to download a generated project report from Crowdin.

Download Project Translation Build

Tool to download a built project translation from Crowdin.

Download TM Export

Tool to download an exported Translation Memory from Crowdin.

Download AI Report

Tool to download an AI report from Crowdin.

Edit File

Tool to update file details in a project.

Edit Label

Tool to edit a label's title in a Crowdin project.

Edit Project

Tool to update project details using JSON-Patch.

Edit String

Edit a source string in a Crowdin project using JSON Patch operations.

Execute GraphQL Query

Tool to execute GraphQL queries against the Crowdin GraphQL API.

Export Glossary

Tool to initiate a glossary export operation in Crowdin.

Export Bundle

Tool to initiate an asynchronous export operation for a bundle in Crowdin.

Export Project Translations

Tool to export project translations from Crowdin.

Export Project Task Strings

Tool to export strings from a project task in XLIFF format.

Export Translation Memory

Tool to export Translation Memory (TM) from Crowdin.

Generate Project Report

Tool to generate organization reports in Crowdin projects.

Generate AI Prompt Fine-Tuning Dataset

Tool to generate an AI prompt fine-tuning dataset from project or TM data.

Get Branch

Tool to retrieve details of a specific branch in a Crowdin project by its ID.

Get File

Tool to retrieve detailed information about a specific file in a Crowdin project.

Get Glossary

Tool to retrieve information about a specific glossary by its ID.

Get Glossary Concept

Tool to retrieve a specific concept from a Crowdin glossary.

Get Glossary Term

Tool to retrieve a specific term from a Crowdin glossary.

Get Label

Tool to retrieve information about the label identified by the specified label ID in a project.

Get Language

Tool to retrieve details of a specific language.

Get Member Info

Tool to retrieve information about a project member.

Get MT

Tool to retrieve details of a specific Machine Translation engine.

Get Project

Tool to retrieve details of a specific Crowdin project.

Get Project AI Settings

Tool to retrieve AI settings for a specific Crowdin project.

Get Branch Progress

Tool to retrieve branch translation progress for all languages in a Crowdin project.

Get Bundle

Tool to retrieve details of a specific bundle from a Crowdin project.

Get String/Asset Comment

Tool to retrieve a specific string or asset comment by its ID in a Crowdin project.

Get Directory

Tool to retrieve information about a specific directory in a Crowdin project.

Get Directory Progress

Tool to get translation progress for all languages in a specific directory of a Crowdin project.

Get Distribution

Tool to retrieve details of a specific distribution in a Crowdin project.

Get Project File Format Settings

Tool to retrieve file format settings for a specific project.

Get File Progress

Tool to retrieve file translation progress for all languages in a Crowdin project.

Get File Revision

Tool to retrieve details of a specific file revision in a Crowdin project.

Get Project Progress

Tool to retrieve project translation progress for all languages in a Crowdin project.

Get Language Progress

Tool to retrieve translation progress for a specific language across all files in a Crowdin project.

Get QA Checks Revalidation Status

Tool to retrieve the status of a QA checks revalidation job.

Get Report Settings Template

Tool to retrieve a specific report settings template from Crowdin.

Get Project Strings Exporter Settings

Tool to retrieve project strings exporter settings by ID.

Get Task Settings Template

Tool to retrieve a specific task settings template from a Crowdin project.

Get Project Task

Tool to retrieve details of a specific task in a Crowdin project.

Get Project Task Comment

Tool to retrieve a specific task comment by its ID in a Crowdin project.

Get Storage

Tool to retrieve details of a specific file uploaded to Crowdin storage.

Get String

Retrieves detailed information about a specific source string in a Crowdin project.

Get Translation Memory

Tool to retrieve information about a specific Translation Memory by its ID.

Get Authenticated User

Tool to retrieve information about the currently authenticated user.

Get AI Prompt

Tool to retrieve a specific AI prompt from Crowdin.

Get AI Prompt Fine-Tuning Dataset Status

Tool to retrieve the generation status of an AI prompt fine-tuning dataset.

Get User AI Provider

Tool to retrieve an AI provider for a specific user.

Get User AI Settings

Tool to retrieve AI settings for a Crowdin user.

Get AI Snippet

Tool to retrieve an AI snippet from Crowdin.

Get User Report Archive

Tool to get a specific report archive for a Crowdin user.

Get User Report Settings Template

Tool to retrieve a user report settings template in Crowdin.

Get User Security Log

Tool to retrieve details of a specific security log entry for a user.

Get Viewer

Tool to retrieve information about the authenticated user via GraphQL.

Get Webhook

Retrieves detailed information about a specific webhook in a Crowdin project.

List Application Installations

List all application installations in Crowdin with pagination and filtering support.

List Branches

List all branches in a Crowdin project.

List Files

Tool to list files in a Crowdin project.

List Glossaries

Tool to list all glossaries available to the authenticated user.

List Glossaries Concepts

Tool to list concepts in a Crowdin glossary with pagination and sorting support.

List Glossary Terms

Tool to list all terms in a Crowdin glossary.

List Project File Strings (GraphQL)

Tool to list source strings within files in Crowdin projects using GraphQL API.

List Labels

Lists all labels in a Crowdin project with pagination support.

List Languages

Tool to retrieve a list of supported languages.

List MTs

Tool to retrieve a paginated list of Machine Translation engines.

List Project Members

Tool to list members in a Crowdin project.

List Projects (v2)

List all Crowdin projects accessible to the authenticated user with advanced filtering and sorting options.

List Projects Approvals

Tool to list translation approvals in a Crowdin project with filtering and pagination.

List Bundles

Retrieves a paginated list of bundles in a Crowdin project.

List Bundle Files

Tool to list files in a specific Crowdin project bundle.

List Project Comments

Tool to retrieve a paginated list of comments on strings or assets in a Crowdin project.

List Project Dictionaries

Tool to list all dictionaries in a Crowdin project.

List Directories

List all directories in a Crowdin project.

List Distributions

Tool to retrieve a list of distributions for a Crowdin project.

List Project File Format Settings

Tool to list all file format settings for a Crowdin project.

List Asset References

Tool to list asset references for a specific file in a Crowdin project.

List File Revisions

Tool to list all revisions for a specific file in a Crowdin project.

List Projects Issues

Tool to list reported issues in a Crowdin project.

List Language Translations

Tool to list language translations for a specific project and language.

List Projects QA Checks

Tool to list QA check issues in a Crowdin project with pagination and filtering support.

List Report Settings Templates

Tool to list report settings templates for a Crowdin project.

List Screenshots

Tool to list screenshots in a Crowdin project.

List Project Strings

Lists all source strings in a Crowdin project with filtering and pagination.

List Project Strings Exporter Settings

Tool to list project strings exporter settings in Crowdin.

List Task Settings Templates

Tool to retrieve a paginated list of task settings templates for a Crowdin project.

List Project Builds

Tool to list translation builds for a Crowdin project.

List Translation Votes

Tool to list translation votes in a Crowdin project.

List Project Webhooks

Tool to retrieve a paginated list of webhooks configured in a Crowdin project.

List Project Task Comments

Tool to retrieve all comments on a specific project task.

List Storages

Tool to list files uploaded to Crowdin storage with pagination.

List Tasks

Tool to list tasks in a Crowdin project.

List Translation Memories

Tool to list all Translation Memories available to the authenticated user.

List TM Segments

Tool to list Translation Memory segments in Crowdin.

List User AI Prompts

Tool to list AI prompts for a specific user in Crowdin.

List AI Prompt Fine-Tuning Jobs

Tool to list AI prompt fine-tuning jobs for a specific user.

List User AI Providers

Tool to list all AI providers configured for a specific user.

List User AI Provider Models

Tool to list AI provider models configured for a specific user.

List Supported AI Provider Models

Tool to list supported AI provider models for a user.

List AI Snippets

Tool to list AI snippets for a specific user in Crowdin.

List User Report Archives

Tool to list report archives for a Crowdin user.

List User Report Settings Templates

Tool to list user report settings templates in Crowdin.

List User Security Logs

Tool to list security log entries for a specific user.

List User Tasks

Tool to retrieve a paginated list of tasks assigned to a specific user.

List User Tasks

Tool to retrieve tasks assigned to the authenticated user across all projects.

List Viewer Projects Files

Tool to list files within projects using GraphQL viewer query.

List Translations By Language

Tool to retrieve translation information for strings in specific target languages.

List Viewer Projects (GraphQL)

Tool to retrieve projects via Crowdin GraphQL API using viewer.

List Viewer Projects Translations

Tool to list translations for projects in a specific language using GraphQL viewer query.

Notify Project Members

Tool to send notifications to Crowdin project members.

Query GraphQL Node

Tool to query Crowdin GraphQL Project nodes by their global ID.

Release Distribution

Tool to release a distribution in a Crowdin project.

Reset Project File Format Settings Custom Segmentations

Tool to reset custom segmentations for file format settings in a Crowdin project.

Revalidate QA Checks

Tool to revalidate QA checks for a Crowdin project.

Search Glossaries Concordance

Tool to search for glossary terms using concordance search in Crowdin.

Search TM Concordance

Tool to search for translations in Translation Memory (TM) using concordance search.

Send Notification

Tool to send a notification message to the authenticated Crowdin user.

Update Glossaries

Tool to update glossary details using JSON-Patch operations.

Update Glossary Concept

Tool to update a concept in a Crowdin glossary.

Update Glossary Term

Tool to update an existing glossary term in Crowdin using JSON Patch operations.

Update Custom Language

Tool to update a custom language in Crowdin using JSON-Patch operations.

Edit String/Asset Comment

Tool to edit a string or asset comment in a Crowdin project using JSON Patch operations.

Update Branch

Tool to update branch details using JSON-Patch operations.

Update Bundle

Tool to update bundle properties in a Crowdin project using JSON-Patch operations.

Update Projects Comments

Tool to perform batch operations on project comments using JSON-Patch.

Update Project Dictionaries

Tool to edit a dictionary in a Crowdin project using JSON-Patch operations.

Update Directory

Tool to update directory details in a Crowdin project using JSON-Patch operations.

Edit Distribution

Tool to update distribution settings using JSON-Patch operations.

Update Project File Format Settings

Tool to edit file format settings in a Crowdin project using JSON Patch operations.

Update or Restore File

Tool to update or restore a file in a Crowdin project.

Update Report Settings Template

Tool to update a report settings template using JSON-Patch operations.

Edit Screenshot

Tool to edit a screenshot in a Crowdin project using JSON Patch operations.

Edit Screenshot Tag

Tool to edit a screenshot tag in a Crowdin project using JSON Patch operations.

Update Projects Strings

Tool to perform batch operations on strings in a Crowdin project using JSON Patch.

Update Project Strings Exporter Settings

Tool to edit project strings exporter settings in Crowdin using JSON Patch operations.

Update Task Settings Template

Tool to update a task settings template in a Crowdin project using JSON Patch operations.

Update Project Webhook

Tool to update webhook configuration in a Crowdin project using JSON Patch operations.

Update Project Task

Tool to update a project task in Crowdin using JSON Patch operations.

Edit Project Task Comment

Tool to edit a task comment in a Crowdin project using JSON Patch operations.

Update Translation Memory

Tool to update a Translation Memory (TM) in Crowdin using JSON Patch operations.

Update TM Segments

Tool to edit a translation memory segment in Crowdin using JSON Patch operations.

Update Authenticated User

Tool to update the authenticated user's profile using JSON Patch operations.

Update AI Prompt

Tool to update an AI prompt in Crowdin using JSON-Patch operations.

Update User AI Provider

Tool to edit an AI Provider for a specific user using JSON Patch operations.

Edit User AI Settings

Tool to update AI settings for a Crowdin user using JSON Patch operations.

Update AI Snippet

Tool to update an existing AI snippet in Crowdin using JSON Patch operations.

Update User Report Settings Template

Tool to update a user report settings template in Crowdin using JSON Patch operations.

Update Organization Webhook

Tool to update organization webhook configuration in Crowdin using JSON Patch operations.

Upload Storage

Upload a file to Crowdin storage to get a storage ID for subsequent operations.

Validate QA Checks

Tool to validate translation text by QA checks in a Crowdin project.

FAQ

Frequently asked questions

With a standalone Crowdin MCP server, the agents and LLMs can only access a fixed set of Crowdin tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Crowdin and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. LlamaIndex fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Crowdin tools.

Yes, absolutely. You can configure which Crowdin scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Crowdin data and credentials are handled as safely as possible.

Start with Crowdin.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Crowdin tool your agent needs.Free to start.

Start building