MCPサーバー

netcafe-translate

com.ainetcafe/netcafe-translate

このMCPでできること

Translates text, subtitles, i18n JSON, and PDFs while preserving timestamps, placeholders, document layout, and formulas; also checks grammar.

check_grammar
Check grammar and style
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', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to check (≤10000 chars).'}, 'language': {'type': 'string', 'description': 'Language code like "en-US", "zh-CN"; default "auto".'}}}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
check_job
Check a long-running job
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', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id returned when the task was started.'}}}
出力スキーマ
{'type': 'object', 'required': ['job_id', 'status'], 'properties': {'kind': {'type': 'string'}, 'error': {'type': 'string'}, 'job_id': {'type': 'string'}, 'result': {}, 'status': {'type': 'string'}, 'is_terminal': {'type': 'boolean'}, 'next_action': {'type': ['object', 'null']}, 'structured_result': {}, 'retry_after_seconds': {'type': 'integer'}}}
translate_i18n_json
Translate an i18n locale file
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', 'required': [], 'properties': {'to': {'type': 'string', 'description': 'Target language.'}, 'url': {'type': 'string', 'description': 'Or a link to the source JSON.'}, 'json': {'type': 'string', 'description': 'Source locale file content (JSON).'}, 'existing_json': {'type': 'string', 'description': 'Existing target locale; only missing keys get translated.'}}}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
translate_pdf
Translate a PDF keeping its layout
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', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Direct URL to the PDF (e.g. an arXiv PDF link).'}, 'pages': {'enum': ['first', 'first5', 'all'], 'type': 'string', 'description': 'How much to translate. first = 1 page, first5 = first 5 pages (default), all = whole document (slow and expensive).'}, 'lang_to': {'type': 'string', 'description': 'Target language, e.g. "Simplified Chinese", "Japanese". Default Simplified Chinese.'}}}
出力スキーマ
{'type': 'object', 'required': ['job_id', 'status'], 'properties': {'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'poll_interval_seconds': {'type': 'integer'}}}
translate_srt
Translate subtitles, timeline untouched
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', 'required': [], 'properties': {'to': {'type': 'string', 'description': 'Target language, e.g. "English", "日本語".'}, 'srt': {'type': 'string', 'description': 'The .srt file content.'}, 'url': {'type': 'string', 'description': 'Or a link to the .srt file.'}}}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
translate_text
Translate text (offline engine)
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', 'required': ['text', 'target'], 'properties': {'text': {'type': 'string', 'description': 'Text to translate (≤5000 chars).'}, 'source': {'type': 'string', 'description': 'Source language code; default "auto".'}, 'target': {'type': 'string', 'description': 'Target language code, e.g. "zh", "en", "ja".'}}}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
what_can_you_do
Find the right tool for a 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', 'required': ['task'], 'properties': {'task': {'type': 'string', 'description': 'What you are trying to do, e.g. "reconcile a bank statement against my books" or "把一堆发票整理成能入账的表格"'}}}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
追加
translate_pdf
2026年9月17日12:33
追加
check_job
2026年9月17日12:33
追加
check_grammar
2026年9月17日12:33
追加
translate_i18n_json
2026年9月17日12:33
追加
translate_srt
2026年9月17日12:33
追加
translate_text
2026年9月17日12:33
追加
what_can_you_do
2026年9月17日12:33