netcafe-translate
Translation that never breaks structure: .srt timings, i18n key trees, PDF layout.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (7)
- HIGH
- MEDIUMen translate_i18n_json
- MEDIUMen translate_text
- MEDIUMen check_grammar
- MEDIUMen check_job
- LOWen translate_srt
- INFOen translate_i18n_json
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"netcafe-translate": {
"url": "https://ainetcafe.com/mcp/translate?s=registry"
}
}
}Puntos de conexión remotos
https://ainetcafe.com/mcp/translate?s=registrystreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (7)
🟢what_can_you_do(task)
Describe a task in plain language (any language) and get back exactly which tools on this server do it, with ready-to-run example calls — instead of reading the whole catalogue and guessing. Also returns multi-step recipes when a task needs several tools chained (invoices to a ledger, a bank statement reconciled, a messy CSV turned into a deliverable). Deterministic and free: it calls no model, costs nothing, and never runs out of quota. Call this FIRST when you are not sure what this server offers.
Esquema de entrada
{
"type": "object",
"properties": {
"task": {
"type": "string",
"description": "What you are trying to do, e.g. \"reconcile a bank statement against my books\" or \"把一堆发票整理成能入账的表格\""
}
},
"required": [
"task"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢translate_text(text, target, source)
Translate text between languages using a self-hosted LibreTranslate engine (fully offline, no big-tech API). For whole PDFs with layout preserved, use translate_pdf instead. Example — GET https://ainetcafe.com/t/translate_text?text=hello+world&to=zh
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text to translate (≤5000 chars)."
},
"target": {
"type": "string",
"description": "Target language code, e.g. \"zh\", \"en\", \"ja\"."
},
"source": {
"type": "string",
"description": "Source language code; default \"auto\"."
}
},
"required": [
"text",
"target"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢translate_srt(srt, url, to)
Translate an .srt subtitle file into another language while keeping every timestamp and cue number byte-identical. Cues are anchored by index and refilled in code, so the timeline cannot drift — the usual failure mode when you hand a whole .srt to a model.
Esquema de entrada
{
"type": "object",
"properties": {
"srt": {
"type": "string",
"description": "The .srt file content."
},
"url": {
"type": "string",
"description": "Or a link to the .srt file."
},
"to": {
"type": "string",
"description": "Target language, e.g. \"English\", \"日本語\"."
}
},
"required": []
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢translate_i18n_json(json, url, to, existing_json)
Translate an i18n JSON locale file, keeping the key structure identical and placeholders ({name}, {{count}}, %s, HTML tags) intact. Pass existing_json to translate only the keys that are missing from it — the incremental sync people usually hand-roll a script for.
Esquema de entrada
{
"type": "object",
"properties": {
"json": {
"type": "string",
"description": "Source locale file content (JSON)."
},
"url": {
"type": "string",
"description": "Or a link to the source JSON."
},
"to": {
"type": "string",
"description": "Target language."
},
"existing_json": {
"type": "string",
"description": "Existing target locale; only missing keys get translated."
}
},
"required": []
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢check_grammar(text, language)
Check text for grammar, spelling and style issues in 30+ languages (self-hosted LanguageTool). Returns each issue with a suggested replacement — apply them to produce corrected text. Example — GET https://ainetcafe.com/t/check_grammar?text=Their+going+to+the+park
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text to check (≤10000 chars)."
},
"language": {
"type": "string",
"description": "Language code like \"en-US\", \"zh-CN\"; default \"auto\"."
}
},
"required": [
"text"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢check_job(job_id)
Get the status or result of a job started by deep_research, translate_pdf, or make_slides. Poll every 15-30 seconds until status is "done" or "error". While work is pending, follow retry_after_seconds and next_action; when complete, prefer structured_result when present. Example — GET https://ainetcafe.com/t/check_job?job_id=<id-from-a-job-tool>
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "The job_id returned when the task was started."
}
},
"required": [
"job_id"
]
}Esquema de salida
{
"type": "object",
"properties": {
"job_id": {
"type": "string"
},
"kind": {
"type": "string"
},
"status": {
"type": "string"
},
"is_terminal": {
"type": "boolean"
},
"retry_after_seconds": {
"type": "integer"
},
"next_action": {
"type": [
"object",
"null"
]
},
"result": {},
"structured_result": {},
"error": {
"type": "string"
}
},
"required": [
"job_id",
"status"
]
}🟢translate_pdf(url, lang_to, pages)
Translate a PDF from a URL while preserving the original layout — formulas, figures and two-column academic typesetting stay intact, unlike ordinary translators that flatten the document. Returns a job_id; poll check_job for the download links (translated-only and bilingual side-by-side). Typically 20-60 seconds for a few pages. Powered by PDFMathTranslate (36k stars) hosted at AI NetCafé. Example — tools/call translate_pdf {"url":"<pdf-url>","target":"zh"} → poll check_job
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Direct URL to the PDF (e.g. an arXiv PDF link)."
},
"lang_to": {
"type": "string",
"description": "Target language, e.g. \"Simplified Chinese\", \"Japanese\". Default Simplified Chinese."
},
"pages": {
"type": "string",
"enum": [
"first",
"first5",
"all"
],
"description": "How much to translate. first = 1 page, first5 = first 5 pages (default), all = whole document (slow and expensive)."
}
},
"required": [
"url"
]
}Esquema de salida
{
"type": "object",
"properties": {
"job_id": {
"type": "string"
},
"status": {
"type": "string"
},
"poll_interval_seconds": {
"type": "integer"
}
},
"required": [
"job_id",
"status"
]
}Comunidad
Evidencia