Skip to main content
Glama

LingoHub MCP by usefulapi

Upload resource file

lingohub_upload_resource_file
Destructive

WRITE: upload one text resource file (JSON, properties, XLIFF, PO, ...) into a project. The language comes from the file name or from language. The import flags decide whether existing segments are changed or deactivated: with updating or deactivation on, translations already in Lingohub can be overwritten or switched off, so state the flags you want. Never retried. POST .../projects/{project_url}/resources.

Input Schema

NameRequiredDescriptionDefault
pathNoFolder the file is uploaded to; set it when the file name collides with another file (HTTP 406).
branchNoProject branch name. Default: the project's default branch. An unknown branch is HTTP 422.
contentYesThe file text (UTF-8), up to 1000000 characters.
languageNoLocale of this file (overrides the locale in the file name), e.g. de.
file_nameYesFile name with extension, e.g. en.json.
project_urlYesProject URL slug (e.g. "feature-demo"); list_projects returns it as project_url.
workspace_urlYesWorkspace URL slug (e.g. "lingohub-demo"); list_projects returns it as workspace_url.
source_create_newNoIf this is a source-language file: create new segments.
target_create_newNoIf this is a target-language file: create new segments.
source_update_existingNoIf this is a source-language file: update changed segments.
target_update_existingNoIf this is a target-language file: update changed translations (overwrites existing ones).
source_deactivate_missingNoIf this is a source-language file: deactivate segments missing from the file.
target_deactivate_missingNoIf this is a target-language file: deactivate segments missing from the file.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is known. The description adds genuinely useful context beyond that: the concrete consequence ('translations already in Lingohub can be overwritten or switched off') and the retry rule ('Never retried'), which is critical for a non-idempotent write. It stops short of describing the response or auth requirements.

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?

Three tight sentences, front-loaded with the WRITE marker and the resource scope, then the language rule, then the risk/flag guidance. The trailing POST endpoint is mildly redundant given the structured schema but still orienting.

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 13-parameter destructive write with no output schema, the description covers what is mutated, how language is resolved, and retry semantics — the essentials. The remaining gap is that with no output schema it could say what the import returns (e.g., counts of created/updated/deactivated segments), leaving the agent unsure how to confirm success.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and the description does add value by grouping the six import flags into a single semantic statement about changing versus deactivating segments, and by clarifying that language can come from the file name or the `language` field. It doesn't add detail on path/branch conflict handling beyond what the schema already documents.

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 and resource ('upload one text resource file') plus the accepted formats (JSON, properties, XLIFF, PO) and the target scope (into a project). It is clearly distinguishable from siblings like download_resource, delete_resource, and list_resources without opening any schema.

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?

It gives real guidance on how to use the import flags ('state the flags you want') and explains the language-resolution precedence, but it never says when to choose this tool over alternatives such as push_to_repository, nor does it state prerequisites like required permissions or that the project must already exist.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.