Skip to content

MCP server

Ownlate exposes a Model Context Protocol server, so an assistant like Claude can read your projects, translate segments, run quality checks and cut releases — with your permission, and only within the workspaces you allow.

Endpoint: https://mcp.ownlate.com

The server speaks streamable HTTP and authorises with OAuth 2.1, including dynamic client registration, so most clients need nothing more than the URL.

Terminal window
claude mcp add --transport http ownlate https://mcp.ownlate.com/

The first call returns a 401 with the address of the protected-resource metadata; your client follows it, registers itself, and sends you to a consent screen. There you choose:

  • Which workspaces the token may reach. It cannot see any other, whatever you are a member of.
  • Which permissions it may exercise, taken from the same permission codes as everything else.

For a device with no browser, the same server supports the device authorisation flow: the client shows a code, you approve it at platform.ownlate.com/device.

A token can never do more than you can. Granting translation:approve to an assistant when you do not hold it yourself grants nothing.

Claude Desktop — claude_desktop_config.json:

{
"mcpServers": {
"ownlate": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.ownlate.com/"]
}
}
}

VS Code — .vscode/mcp.json:

{
"servers": {
"ownlate": {
"type": "http",
"url": "https://mcp.ownlate.com/"
}
}
}

Everything a tool returns is read by the model of the client you connected: source texts, translations, keys, glossary terms, comments and the names of the people who wrote them. Connect an assistant only where that is acceptable — for a workspace under an agreement that forbids it, it is not.

What never leaves: the OTA access key of a project, the credentials of any integration, and anything about billing. No tool returns them.

A grant is yours to withdraw: platform.ownlate.com → your profile → connected applications. Withdrawing it stops the tokens at the next call.

Thirty-two tools, grouped by what they touch.

ToolWhat it returns
list_workspacesThe workspaces this token covers
get_workspaceOne of them
list_projectsProjects of a workspace
get_projectA project with its source and target languages
list_languagesThe language catalogue
add_target_languagesAdds languages to a project, keeping the existing ones
ToolWhat it returns
list_segmentsSegments of a project, filtered by language and status
search_segments_by_keysSegments for a list of keys; keys with no segment are reported separately
get_project_progressTranslated and approved share per language
get_project_analyticsAggregate counts for a project
list_translation_filesThe files registered in a project
get_translation_historyWho changed a translation, when, and what it was before
export_translationsA whole locale in one call, shaped like the localisation file
ToolWhat it does
translate_segmentSaves a translation for one segment in one language
save_draft_translationStores it as a draft, leaving review to a human
mark_translation_reviewedRecords that it was read through
approve_translationApproves it
reject_translationSends it back for rework
create_segmentAdds a key with its source text
import_segmentsWrites many keys at once — sources without a language, translations with one
update_segment_source_textRewrites the source string
set_segment_translatableMarks a key that must ship as written
ToolWhat it does
search_translation_memoryHow similar source texts were translated before, with a score
list_glossary_entriesTerms and forbidden wordings
find_glossary_matchesThe glossary entries occurring in a given text
check_segment_qualityWhich QA rules a translation violates
list_segment_commentsThe discussion on a segment
add_segment_commentLeaves a note — a question, or why a wording was chosen
ToolWhat it does
list_releasesReleases with versions, languages and segment counts
create_releaseSnapshots approved translations into a new release
recreate_latest_releaseRebuilds the latest release from what is approved now, keeping its version
get_ota_distributionThe project’s distribution — without the access key

A tool is offered only when the token carries the right, and the call goes through only when you still hold that right in the workspace. Losing a right takes the tool away from the next call on, without reissuing the token.

RightTools
workspace:viewlist_workspaces, get_workspace, find_glossary_matches
project:viewlist_projects, get_project, list_languages, list_glossary_entries, list_releases, list_translation_files, get_ota_distribution
project:createadd_target_languages, create_release, recreate_latest_release
segment:viewlist_segments, search_segments_by_keys, get_project_progress, get_project_analytics, get_translation_history, search_translation_memory, check_segment_quality, list_segment_comments, export_translations
segment:createcreate_segment, import_segments, update_segment_source_text, set_segment_translatable
translation:writetranslate_segment, save_draft_translation, add_segment_comment
translation:approveapprove_translation, reject_translation, mark_translation_reviewed

Every call that changes something is written to the workspace audit log as mcp.<tool>, with the client and the grant it came from.

Two resources are readable without calling a tool:

  • ownlate://project/{projectId}/progress — counts and percentage per language.
  • ownlate://project/{projectId}/release/latest — version, languages and segment count of the newest release.

Two prompts set up the work an assistant is usually asked for. Both take projectId and language:

  • translate_missing — walks the untranslated keys, consults the translation memory and the glossary, and writes drafts.
  • review_translations — reads a language through against the glossary and the quality rules and reports what is off, changing nothing.

A grant may make 120 calls a minute; beyond that the server answers 429 with Retry-After. A session lives an hour of inactivity, after which the client initialises again on its own.

A few patterns this is good at:

  • Reviewing rather than writing. list_segments with status: needs_review, then check_segment_quality and find_glossary_matches on each — the assistant flags what a human should look at instead of approving on its own.
  • First-pass translation into a draft. save_draft_translation rather than translate_segment, so nothing enters the review queue unread.
  • Keeping terminology honest. search_translation_memory before writing, so an assistant reuses the wording your team already approved rather than inventing a synonym.
  • Cutting a release after a merge. get_project_progress, then create_release when the languages you care about are complete.