netcafe-translate
Translation that never breaks structure: .srt timings, i18n key trees, PDF layout.
사용해야 할까요
품질 및 안전성
발견 사항 (7)
- HIGH
- MEDIUMtranslate_i18n_json에서
- MEDIUMtranslate_text에서
- MEDIUMcheck_grammar에서
- MEDIUMcheck_job에서
- LOWtranslate_srt에서
- INFOtranslate_i18n_json에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`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"
]
}커뮤니티
증거