Files
translate-mcp/README.md
Christian Gick 8c9e5ee91d feat(translate-mcp): scaffold per-tenant translation MCP (CF-3122)
Node.js MCP server exposing translate/search_tm/upsert_glossary/record_correction
over StreamableHTTP on :9222. Routes translation calls to gemini-2.5-flash via
LiteLLM, augmented with per-tenant TM + glossary + tone profile from the
SmartTranslate pgvector DB.

Schema migration in sql/001_schema.sql already applied to smarttranslate DB.
Fleet registration in Infrastructure/litellm/config.yaml.

Refs: CF-3122 CF-3123 CF-3124 CF-3125
2026-04-14 16:27:44 +03:00

1.5 KiB

translate-mcp

Per-tenant translation MCP. Routes translations to gemini-2.5-flash via LiteLLM, augmented with per-tenant translation memory, glossary, and tone profile stored in the shared SmartTranslate Postgres (pgvector).

  • Epic: CF-3122
  • Scaffold: CF-3123 (this repo)
  • Schema migration: CF-3124 (see sql/001_schema.sql)
  • Gateway registration: CF-3125
  • Claude routing (CLAUDE.md + PreToolUse hook): CF-3126
  • Tenant profile seeding from memory: CF-3127

Tools

Tool Purpose
translate(text, tenant, target_lang, source_lang?) Main translation call; uses TM + glossary + tone.
search_tm(query, tenant, target_lang, ...) Vector TM lookup.
upsert_glossary(...) Manage per-tenant glossary.
record_correction(tm_id, corrected_target, tenant) Human-in-the-loop correction.
list_tenants() / get_tenant_profile(tenant) Inspect profiles.

Environment

TRANSLATE_DB_DSN=postgresql://translate_mcp_rw:***@postgres.agiliton.internal:5432/smarttranslate
LITELLM_URL=http://llm:4000
LITELLM_API_KEY=sk-litellm-master-key
TRANSLATE_MODEL=gemini-2.5-flash          # override for cost tests
TRANSLATE_EMBED_MODEL=mxbai-embed-large
SENTRY_DSN=...                             # optional

Run locally (dev)

uv pip install -e .
export TRANSLATE_DB_DSN=postgresql://...
python -m src.server

Deploy

Via LiteLLM MCP gateway: add block in Infrastructure/litellm/config.yaml (see CF-3125) and agiliton-deploy litellm.