netcafe-translate

Translation that never breaks structure: .srt timings, i18n key trees, PDF layout.

我該用這個嗎

品質與安全性

B
說明品質
93%
結構描述完整度
97%
命名品質
86%
汙染風險
20%
權限相符程度
100%
協定合規性
100%

發現項目(7)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'translate_i18n_json' description contains placeholder text在 translate_i18n_json 中
  • MEDIUMTool description contains URL to non-standard domain在 translate_text 中
  • MEDIUMTool description contains URL to non-standard domain在 check_grammar 中
  • MEDIUMTool description contains URL to non-standard domain在 check_job 中
  • LOWTool 'translate_srt' description lacks action verb在 translate_srt 中
  • INFOTool description contains placeholder or incomplete text在 translate_i18n_json 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,504Token(工具定義)
~1.1 KB典型回應大小
中等的注意力影響(128k 上下文的 1.18%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "netcafe-translate": {
      "url": "https://ainetcafe.com/mcp/translate?s=registry"
    }
  }
}

遠端端點

https://ainetcafe.com/mcp/translate?s=registrystreamable-http

它能做什麼

工具清單

工具(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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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": []
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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": []
}

輸出結構描述

{
  "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

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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>

輸入結構描述

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "The job_id returned when the task was started."
    }
  },
  "required": [
    "job_id"
  ]
}

輸出結構描述

{
  "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

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "poll_interval_seconds": {
      "type": "integer"
    }
  },
  "required": [
    "job_id",
    "status"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本7 個工具
已驗證未記錄版本7 個工具