Skip to main content
Glama

Crowdin MCP by usefulapi

Server Details

MCP server for Crowdin — projects, files, strings, translation progress, tasks, and members.

Ownership verified
Status
Healthy
Uptime
75.7% over 71 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a clearly distinct Crowdin resource and action (projects, files, strings, translations, languages, members, tasks, branches, directories, progress). There is no meaningful overlap between the list/get/add tools.

Naming Consistency5/5

All 12 tools follow a strict crowdin_verb_noun pattern, using only list_, get_, and add_ prefixes consistently. The naming is highly predictable and readable.

Tool Count5/5

12 tools is a sensible scope for a localization project client, covering the key read surfaces plus basic string/translation creation. Each tool earns its place without redundancy.

Completeness3/5

The set is read-heavy: it lists and gets most resources and can add strings/translations, but lacks update/delete/approval operations, file upload, project creation, and task management writes. Agents can discover and add content but cannot fully manage localization lifecycle.

Available Tools

12 tools
crowdin_add_stringAdd source stringB
Destructive
Inspect

Adds a source string to a file in a Crowdin project (additive). Crowdin API: POST /projects/{projectId}/strings.

NameRequiredDescriptionDefault
textYesThe source string text.
fileIdYesId of the source file to add the string to.
contextNoOptional context shown to translators.
isHiddenNoHide the string from translators.
maxLengthNoMax allowed translation length.
projectIdYesNumeric project id (path).
identifierNoOptional unique string identifier / key.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the safety profile is partly covered; the description adds useful context by calling the operation 'additive' and giving the POST endpoint. It still omits what happens on duplicate text or identifier, whether auth or project permissions are required, and what the call returns. Note the mild tension between the description's 'additive' framing and destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action front-loaded and zero filler. The trailing API-route sentence is marginally redundant for an agent but is compact and cheap.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create/mutation tool with no output schema, the description leaves out the result shape (a created string id is typically needed for follow-up calls) and any duplicate-handling semantics. Annotations cover the destructive signal, but the description should say more about post-call state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 7 well-documented parameters, so the schema carries parameter meaning on its own. The description adds no field-level detail (e.g., identifier uniqueness, isHidden/maxLength effects), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Adds a source string to a file') plus the exact API route, so the operation is unambiguous. It implies the distinction from crowdin_add_translation by specifying 'source string', but never names a sibling tool explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (e.g., the file must already exist), and no mention of alternatives such as crowdin_add_translation or how to look up fileId via crowdin_list_files. Usage is only inferable from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_add_translationAdd translationA
Destructive
Inspect

Adds a translation for a source string in a target language (additive). Crowdin API: POST /projects/{projectId}/translations.

NameRequiredDescriptionDefault
textYesThe translation text.
stringIdYesId of the source string to translate.
projectIdYesNumeric project id (path).
languageIdYesTarget language id, e.g. "fr", "de", "uk".
pluralCategoryNameNoPlural form, e.g. "one", "few", "many", "other".

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, so the agent knows this is a mutating write. The description usefully adds that the operation is additive rather than an overwrite, and discloses the HTTP verb/path that signals a POST mutation. It does not cover what happens on duplicate translations, permission requirements, or the response shape, so it adds context but not rich behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler: the mutation scope and the additive semantics come first, the API mapping second. Every clause earns its place and the key qualifier is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter write tool with no output schema, the description covers the core action and the additive behavior, which is the essential context. It omits prerequisite/permission information, duplicate-handling behavior, and any indication of what the call returns, leaving meaningful gaps for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters including examples for languageId and pluralCategoryName. The description only restates the source-string/target-language relationship without adding format or constraint detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Adds a translation for a source string in a target language'), and the 'additive' qualifier distinguishes it from an overwrite-style update. It also maps itself to the underlying Crowdin endpoint, which removes ambiguity about what operation is performed. It stops short of naming a sibling tool for differentiation, so it is clear but not maximally distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(additive)' implies this is the right call when creating rather than replacing a translation, which is implied usage guidance. However, there is no explicit when-to-use/when-not statement and no named alternative (e.g. a future update-translation tool) to route the agent. Guidance is present but must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_get_language_progressLanguage translation progressB
Read-only
Inspect

Per-target-language translation & approval completion percentages for a project — the headline localization status. Crowdin API: GET /projects/{projectId}/languages/progress.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).
projectIdYesNumeric project id.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, and the description correctly frames it as a reporting/count operation that computes completion percentages. It stops short of noting pagination behavior (limit/offset) or whether results are cached/expensive, so it adds only modest context above the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the returned metric and the scoping, with the API endpoint appended as a compact identifier. Nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by stating the shape of the result (per-language translation and approval percentages), which is the key missing piece for an agent. It is nearly complete for a simple read tool; only guidance on result size/pagination interaction is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — limit, offset, and projectId all carry inline descriptions with defaults and bounds — so the schema already does the heavy lifting. The description mentions project scoping only implicitly via the API path and adds no meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific retrieval target (per-target-language translation & approval completion percentages for a project) and even cites the underlying endpoint, so an agent knows exactly what this returns. It does not explicitly differentiate itself from siblings like crowdin_get_project or crowdin_list_projects, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It positions the tool as 'the headline localization status,' which hints at when it matters, but there is no explicit when-to-use guidance, no mention of alternatives (e.g. project-level vs language-level reporting), and no stated prerequisites beyond the required projectId.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_get_projectGet projectA
Read-only
Inspect

Get a single project's details by id (settings, languages, counts). Crowdin API: GET /projects/{projectId}.

NameRequiredDescriptionDefault
projectIdYesNumeric project id (from crowdin_list_projects).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered by structured data. The description adds modest value by mapping to the underlying API call GET /projects/{projectId} and sketching the response contents, but says nothing about auth requirements, error behavior for unknown ids, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with zero filler; the core behavior leads and the API mapping trails as supporting detail. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with readOnlyHint annotated and no output schema, the description gives enough: it names the resource, the key, and the categories of returned data. Missing only failure modes and whether the response is a full object or partial, which are minor here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single required parameter is already documented with its source (crowdin_list_projects). The description only restates 'by id', adding no syntax or constraint detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Get) + resource (a single project's details) + scope qualifier ('by id'), with an itemized payload hint (settings, languages, counts). The word 'single' implicitly separates it from the sibling list tool crowdin_list_projects, so an agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but never says when to choose it over crowdin_list_projects or any other sibling; no prerequisites, no exclusions. The only routing hint ('from crowdin_list_projects') lives in the schema's parameter description, not in the tool description itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_branchesList branchesA
Read-only
Inspect

List version branches in a project (id, name, title). Crowdin API: GET /projects/{projectId}/branches.

NameRequiredDescriptionDefault
nameNoFilter by branch name.
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).
projectIdYesNumeric project id.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds value beyond annotations by naming the returned fields (id, name, title) and citing the underlying API route, but says nothing about pagination behavior or result-size limits, which the schema only partially covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence plus a short API reference. The purpose and returned fields are front-loaded and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the field list (id, name, title) usefully compensates for the missing return contract, and the read-only annotation covers safety. Only gaps are pagination guidance and whether results include totals, which are minor for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name, limit, offset, and projectId. The description adds no parameter syntax or semantics beyond the schema, which sets the baseline at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (version branches in a project), and enumerates the returned fields. The resource is distinct from siblings like crowdin_list_files and crowdin_list_directories, so an agent can disambiguate without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource name and the projectId requirement, but there is no explicit when-to-use statement, no mention of an alternative tool, and no exclusions. Adequate minimum viability, nothing more.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_directoriesList directoriesB
Read-only
Inspect

List directories (folders) in a project (id, name, path). Crowdin API: GET /projects/{projectId}/directories.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).
branchIdNoFilter by branch id.
projectIdYesNumeric project id.
directoryIdNoFilter by parent directory id.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds value by naming the returned fields (id, name, path) since there is no output schema, but it omits pagination behavior despite limit/offset parameters (default 25, max 500) and says nothing about ordering or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler; the purpose leads and the implementation detail follows. The parenthetical field list is compact and informative rather than redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with full schema coverage and no output schema, the description is nearly sufficient: it names the resource, the scope, the returned fields, and the endpoint, so an agent can call it correctly without inspecting the API. It stops short of documenting pagination defaults and filter semantics, which are the only remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (projectId, branchId, directoryId, limit, offset) are already documented in the schema, making 3 the baseline. The description's '(id, name, path)' refers to response fields, not parameters, so it adds no parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List directories (folders) in a project') and even names the returned fields (id, name, path) plus the backing endpoint. It is clearly distinguishable from write siblings like crowdin_add_string, though it does not explicitly contrast itself with the nearest list siblings such as crowdin_list_branches or crowdin_list_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what the tool returns but gives no when-to-use guidance: it never states that branchId/directoryId can scope results, nor when to prefer this over listing files or branches. The API endpoint reference is context, not usage instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_filesList filesB
Read-only
Inspect

List source files in a project (id, name, path, type, status). Crowdin API: GET /projects/{projectId}/files.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
filterNoFilter files by name substring.
offsetNoRows to skip (default 0).
branchIdNoFilter by branch id.
projectIdYesNumeric project id.
directoryIdNoFilter by directory id.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the endpoint (GET /projects/{projectId}/files) and the shape of returned rows, but does not mention pagination defaults, total counts, or permission requirements beyond what the schema implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and scope, followed by the API endpoint. Nothing is padded, though the endpoint reference is of limited value to an agent that already has the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, listing the returned fields (id, name, path, type, status) usefully compensates. Annotations cover read-only safety and the 100%-covered schema covers parameters, so the description is nearly complete for a list tool; it only omits mention of pagination/filtering behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (limit, offset, filter, branchId, directoryId, projectId are all documented in the schema), so the schema already carries parameter meaning. The description's parenthetical lists return fields rather than parameter semantics, adding no extra param context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (source files in a project), and even enumerates the returned fields and the underlying API endpoint. It is clearly distinct from write siblings like crowdin_add_string, though it does not explicitly contrast itself with the nearby crowdin_list_strings/crowdin_list_branches alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only says what the tool returns; it gives no when-to-use guidance, no prerequisites, and never names an alternative such as crowdin_list_directories or crowdin_list_branches. Usage is inferable from the name alone, leaving real routing decisions to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_membersList project membersB
Read-only
Inspect

List members of a project (id, username, role, permissions). Crowdin API: GET /projects/{projectId}/members.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).
searchNoSearch members by name/username/email.
projectIdYesNumeric project id.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the concrete upstream endpoint (GET /projects/{projectId}/members), which corroborates the read-only listing behavior, but it says nothing about pagination limits, rate limits, auth requirements, or result volume beyond what the schema documents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence plus an endpoint reference; the essential information leads and nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields, and the parameters are fully covered by the schema. The remaining gap is behavioral detail on pagination/sorting, which the description leaves entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (projectId, limit, offset, search) are already fully documented in the schema. The description adds no extra parameter semantics; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List members of a project') and enumerates the returned fields (id, username, role, permissions), which unambiguously separates it from siblings like crowdin_list_projects or crowdin_list_tasks. It stops short of naming any alternative tool, so it is clear but not actively differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and no mention of alternative tools such as crowdin_get_project for project-level details. Usage is only implied by the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_projectsList projectsA
Read-only
Inspect

List projects the token can access (id, name, sourceLanguageId, targetLanguageIds). Good first call to discover project ids. Crowdin API: GET /projects.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).
groupIdNoFilter by group id (Enterprise).
hasManagerAccessNo1 = only projects where you are a manager.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already certifies this as a safe read, so the bar is lower. The description adds real value by disclosing the access-scoping rule ('the token can access') and the underlying endpoint (GET /projects), but says nothing about pagination behavior or whether the list is capped/defaulted (limit defaults to 25 per schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, and the core purpose plus access scope is front-loaded before the usage hint and endpoint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned fields and flags the call as a discovery entry point, which is the key context an agent needs. The only minor gap is pagination/truncation behavior for a list that defaults to 25 rows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (limit, offset, groupId, hasManagerAccess) are fully documented in the schema itself. The description's parenthetical lists returned fields rather than parameters, adding no parameter semantics beyond the schema, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List projects') and scopes it to those the token can access, which cleanly separates it from the singular 'crowdin_get_project' sibling. It even enumerates the returned fields, so an agent knows exactly what it gets back.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Good first call to discover project ids' gives clear, actionable when-to-use guidance for an agent starting a workflow. It stops short of naming an explicit alternative (e.g., use get_project once you have an id) or stating when-not to use it, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_stringsList source stringsA
Read-only
Inspect

List source strings in a project (id, text, identifier, context). Crowdin API: GET /projects/{projectId}/strings.

NameRequiredDescriptionDefault
croqlNoCrowdin Query Language filter, e.g. count of words <= 5.
limitNoMax rows (max 500, default 25).
fileIdNoFilter by source file id.
filterNoFilter strings by text or identifier substring.
offsetNoRows to skip (default 0).
branchIdNoFilter by branch id.
projectIdYesNumeric project id.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the underlying API endpoint (GET /projects/{projectId}/strings) and the shape of returned fields, which is modest extra context, but says nothing about pagination semantics, ordering, or how croql/filter narrowing affects results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses, front-loaded with the purpose and followed by the returned fields and endpoint. No filler, though the parenthetical field list is of limited value given the absence of an output schema for those fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with full schema coverage and annotations covering safety, the description supplies enough to call it correctly. Minor gaps remain: no output schema, so return shape relies on the parenthetical list, and pagination behavior is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented in the schema, including filter, croql, limit, and offset. The description adds no parameter-level meaning beyond the returned field list, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List source strings in a project') and even enumerates the returned fields (id, text, identifier, context). It is distinguishable from siblings like crowdin_list_files or crowdin_list_branches by resource, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent can infer this is the read path for enumerating strings in a project. There is no when-to-use/when-not guidance, no mention of the filtering parameters as selection criteria, and no routing to siblings such as crowdin_add_string or crowdin_get_language_progress.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_supported_languagesList supported languagesB
Read-only
Inspect

Crowdin's catalog of supported languages (id, name, locale, twoLettersCode). Crowdin API: GET /languages.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes the safe read-only nature. The description adds that this maps to GET /languages and lists returned fields, but it omits pagination behavior, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words: the first defines the catalog and its fields, and the second maps it to the API endpoint. The useful information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with complete parameter schema coverage and no output schema, the description is nearly complete. It names the returned fields, but does not mention pagination defaults or any other operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the limit and offset parameters are fully documented in the schema. The description adds no further meaning about these parameters, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource ('Crowdin's catalog of supported languages') and lists its fields, making the tool's purpose clear. It does not explicitly distinguish this from sibling list tools, but the resource is inherently distinct from files, projects, or strings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions. Usage is only implied by the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crowdin_list_tasksList tasksB
Read-only
Inspect

List translation/proofreading tasks in a project (id, title, status, assignees). Crowdin API: GET /projects/{projectId}/tasks.

NameRequiredDescriptionDefault
limitNoMax rows (max 500, default 25).
offsetNoRows to skip (default 0).
statusNoFilter by task status.
projectIdYesNumeric project id.
assigneeIdNoFilter by assignee user id.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context by enumerating the returned fields (id, title, status, assignees) and citing the underlying API endpoint, but it discloses nothing about pagination behavior or how status/assignee filters affect the result set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the purpose and followed by the return fields and endpoint. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with no output schema, naming the returned fields compensates well and the endpoint reference anchors it. Only pagination/result-set behavior is unaddressed, which the schema largely covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including limits, defaults, and the status enum, so the schema carries parameter semantics fully. The description's parenthetical field list adds minor value but no syntax or filtering detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('translation/proofreading tasks in a project') plus the returned fields, which clearly separates it from siblings like crowdin_list_projects or crowdin_list_members. It does not explicitly name an alternative list tool, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives, nor on prerequisites (e.g., that projectId is required, or how filtering narrows results). Usage is only implied by the tool name and the word 'in a project'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.