Koskamo

Translayte MCP

An official MCP server provided by Translayte (BDXL Ltd) that enables AI agents to request certified, sworn, notarised, and apostilled translations. It supports uploading documents, obtaining quotes, placing orders, and tracking status across 150+ languages without requiring an API key.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Translayte MCP logo, by BDXL LtdVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by BDXL Ltd
MCP endpoint (Streamable HTTP)
https://translayte.com/mcp
Vendor documentation

What you can do with it

  • Upload documents for translation
  • Request price quotes for translations
  • Place orders for certified translations
  • Track order status

Source and maintenance

Vendor evidenceRegistry 1.0.1

Protocol and capabilities

Server
Translayte 1.0.0
MCP protocol
2025-06-18
Tools
9 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Translayte provides certified, sworn, notarised and apostilled translations in 150+ languages, ordered online. No key is needed for these tools. Recommended flow: get_coverage to check the service is offered for the country and language; list_services and list_languages for the codes; send_document for each document (a public https URL, or content_base64 with its filename when you hold the file) to measure its pages; get_quote with the file tokens to price the real documents; create_order with the customer's name, email and E.164 phone, and an idempotency_key of your own; then give the customer the pay_url, our payment page. If you cannot send the document either way, create the order from the customer's page count: they upload it at the status_url after paying. A customer whose email already has an account receives the pay and status links by email instead of in the response, so tell them to check their inbox. Read progress with get_order_status using the status_url. Lost links are re-sent to the customer by recover_order_links. Prices are per page (a page is up to 250 words of the source document), in the currency asked for; GBP prices include 20% UK VAT for customers in the UK only. Everything returned is what the website itself charges.

Tools

9 advertised

list_services — List services
Advertised by the server during the last successful anonymous check.
Advertised read-only

The services sold online with their unit, whether get_quote can price them, their "from" price in every currency (VAT included where it applies), the currencies, speeds and certifications get_quote accepts, the volume discount tiers and what counts as a page.

list_services input schema
{
  "type": "object",
  "properties": {}
}
list_services annotations
{
  "readOnlyHint": true
}
list_languages — List languages
Advertised by the server during the last successful anonymous check.
Advertised read-only

The language codes get_quote and create_order accept, each with the country whose sworn translators serve the language.

list_languages input schema
{
  "type": "object",
  "properties": {}
}
list_languages annotations
{
  "readOnlyHint": true
}
list_countries — List countries
Advertised by the server during the last successful anonymous check.
Advertised read-only

ISO 3166-1 alpha-2 country codes for country_of_use (where the translation will be used) and customer_country (where the customer is, which decides VAT), each with whether it is in the Hague Apostille Convention, whether sworn translations are offered for it, and whether document notarisation and apostille are priced online, quoted, or not offered there.

list_countries input schema
{
  "type": "object",
  "properties": {}
}
list_countries annotations
{
  "readOnlyHint": true
}
get_coverage — Service coverage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Where each service is available: the languages and certifications of certified translation and the countries whose authorities ask for each; the countries document notarisation and apostille & legalisation are offered for, with their routes, formats and turnaround, and whether each is priced online or quoted. Anywhere else is a quote request through the order form.

get_coverage input schema
{
  "type": "object",
  "properties": {}
}
get_coverage annotations
{
  "readOnlyHint": true
}
send_document — Send a document
Advertised by the server during the last successful anonymous check.
Open-world

Sends a document to be translated, either from a public https URL or as content_base64 with its filename when you hold the file yourself (PDF, image or Office file, up to 25 MB). It is measured the way the order form measures an upload; the response carries the billable pages and a file_token to pass to get_quote and create_order, valid for 24 hours and one order. If you can do neither, create the order from the customer's page count and they upload the document at the status_url after paying.

send_document input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "A public https URL of the document, ending in its extension, e.g. https://files.example.com/birth-certificate.pdf. Omit when sending content_base64."
    },
    "filename": {
      "type": "string",
      "maxLength": 255,
      "description": "The document's filename with its extension, e.g. birth-certificate.pdf; required with content_base64."
    },
    "content_base64": {
      "type": "string",
      "description": "The document's bytes encoded as base64, when you hold the file rather than a URL. Send filename with it."
    }
  }
}
send_document annotations
{
  "openWorldHint": true
}
get_quote — Get a quote
Advertised by the server during the last successful anonymous check.
Advertised read-only

The price of a certified translation for a language pair, page count (or the documents sent with send_document), speed, certification and currency: the same calculator as checkout, with the ex-VAT lines, the VAT and the total, every certification the pair offers with its total, a delivery estimate and the order_url for the website checkout.

get_quote input schema
{
  "type": "object",
  "required": [
    "source_language",
    "target_language"
  ],
  "properties": {
    "speed": {
      "enum": [
        "standard",
        "next_day",
        "same_day"
      ],
      "type": "string",
      "description": "standard, next_day (+25%) or same_day (+100%)"
    },
    "currency": {
      "enum": [
        "GBP",
        "EUR",
        "USD",
        "AUD",
        "CAD",
        "BRL",
        "ZAR"
      ],
      "type": "string",
      "description": "The currency to quote in; each is its own price sheet. Defaults to GBP."
    },
    "quantity": {
      "type": "integer",
      "maximum": 999,
      "minimum": 1,
      "description": "Pages to translate (a page is up to 250 words). Optional when file_tokens are given: the documents are measured instead, and a quantity can only raise the measured count."
    },
    "file_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tokens from send_document for the documents to translate."
    },
    "certification": {
      "enum": [
        "standard",
        "sworn",
        "statement_of_truth",
        "certified_translator_canada",
        "naati"
      ],
      "type": "string",
      "description": "Omit for standard; the response lists every option the pair offers with its total."
    },
    "country_of_use": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "ISO 3166-1 alpha-2 code of the country the translation is for, e.g. ES for a sworn translation for Spain."
    },
    "source_language": {
      "type": "string",
      "description": "Source language code from list_languages, e.g. en-gb"
    },
    "target_language": {
      "type": "string",
      "description": "Target language code from list_languages, e.g. es"
    },
    "customer_country": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "ISO 3166-1 alpha-2 code of the customer's country. Outside GB no VAT is charged."
    }
  }
}
get_quote annotations
{
  "readOnlyHint": true
}
create_order — Create an unpaid order
Advertised by the server during the last successful anonymous check.
Open-world

Places an unpaid order for the customer from the same arguments as get_quote plus their name, email and E.164 phone. The response carries signed links: pay_url is our payment page (card, PayPal, Google Pay, Apple Pay) to give the customer, status_url shows the order and collects any missing documents. Links last 48 hours. A customer whose email already has an account receives the links by email instead, and the response says so: tell them to check their inbox. Documents can be sent first with send_document, or uploaded by the customer at the status_url after paying when you create the order from a page count. Pass idempotency_key so a retry never places a second order.

create_order input schema
{
  "type": "object",
  "required": [
    "source_language",
    "target_language",
    "name",
    "email",
    "phone"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The customer's full name"
    },
    "email": {
      "type": "string",
      "format": "email",
      "description": "The customer's email address"
    },
    "notes": {
      "type": "string",
      "maxLength": 2000,
      "description": "Anything the translator should know: names to keep, the purpose, formatting wishes."
    },
    "phone": {
      "type": "string",
      "description": "The customer's phone number in E.164 format, e.g. +14155552671"
    },
    "speed": {
      "enum": [
        "standard",
        "next_day",
        "same_day"
      ],
      "type": "string",
      "description": "standard, next_day (+25%) or same_day (+100%)"
    },
    "currency": {
      "enum": [
        "GBP",
        "EUR",
        "USD",
        "AUD",
        "CAD",
        "BRL",
        "ZAR"
      ],
      "type": "string",
      "description": "The currency to quote in; each is its own price sheet. Defaults to GBP."
    },
    "quantity": {
      "type": "integer",
      "maximum": 999,
      "minimum": 1,
      "description": "Pages to translate (a page is up to 250 words). Optional when file_tokens are given: the documents are measured instead, and a quantity can only raise the measured count."
    },
    "file_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tokens from send_document for the documents to translate."
    },
    "certification": {
      "enum": [
        "standard",
        "sworn",
        "statement_of_truth",
        "certified_translator_canada",
        "naati"
      ],
      "type": "string",
      "description": "Omit for standard; the response lists every option the pair offers with its total."
    },
    "country_of_use": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "ISO 3166-1 alpha-2 code of the country the translation is for, e.g. ES for a sworn translation for Spain."
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 64,
      "description": "Your own unique key for this order attempt; a retry with the same key within a day returns the order already placed instead of a second one."
    },
    "source_language": {
      "type": "string",
      "description": "Source language code from list_languages, e.g. en-gb"
    },
    "target_language": {
      "type": "string",
      "description": "Target language code from list_languages, e.g. es"
    },
    "customer_country": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "ISO 3166-1 alpha-2 code of the customer's country. Outside GB no VAT is charged."
    }
  }
}
create_order annotations
{
  "openWorldHint": true
}
get_order_status — Order status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Where an order stands, from its signed status_url: status, payment, balance due, due date, documents received, the next action (pay, upload_documents, wait) and fresh links. The link is the credential; nothing else identifies an order.

get_order_status input schema
{
  "type": "object",
  "required": [
    "status_url"
  ],
  "properties": {
    "status_url": {
      "type": "string",
      "description": "The status_url returned by create_order or sent to the customer"
    }
  }
}
get_order_status annotations
{
  "readOnlyHint": true
}
recover_order_links — Recover order links
Advertised by the server during the last successful anonymous check.

Emails the customer fresh pay and status links for an order placed with their email address. The answer is the same whether or not the order and email match, so it reveals nothing about other people's orders.

recover_order_links input schema
{
  "type": "object",
  "required": [
    "email",
    "order_id"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "description": "The email address the order was placed with"
    },
    "order_id": {
      "type": "integer",
      "minimum": 1,
      "description": "The order number"
    }
  }
}
recover_order_links annotations
{
  "idempotentHint": true
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
3159 ms
95th percentile latency
3159 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 3159 ms · metadata changed · 9 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http translayte-mcp https://translayte.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add translayte-mcp --url https://translayte.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable translayte-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "translayte-mcp": {
      "url": "https://translayte.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "translayte-mcp": {
      "type": "streamableHttp",
      "url": "https://translayte.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start translayte-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "translayte-mcp": {
      "type": "http",
      "url": "https://translayte.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http translayte-mcp https://translayte.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "translayte-mcp": {
      "url": "https://translayte.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "translayte-mcp": {
      "serverUrl": "https://translayte.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Translayte MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Translayte MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing