{"name":"com.ainetcafe/netcafe-translate","slug":"ainetcafe-netcafe-translate","title":null,"description":"Translation that never breaks structure: .srt timings, i18n key trees, PDF layout.","url":"https://mcp.market/server/ainetcafe-netcafe-translate","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":21,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-08-16T06:53:22.000Z","license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T05:55:42.800Z","last_ok_at":"2026-09-24T05:55:42.800Z","latency_ms":706},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mario03690/ai-netcafe","website":"https://ainetcafe.com/mcp.html","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://ainetcafe.com/mcp/translate?s=registry"}],"packages":[],"tools":[{"name":"check_grammar","description":"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","write_action":false,"price_micros":0,"input_schema":{"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"]}},{"name":"check_job","description":"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>","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","description":"The job_id returned when the task was started."}},"required":["job_id"]}},{"name":"translate_i18n_json","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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":[]}},{"name":"translate_pdf","description":"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","write_action":false,"price_micros":0,"input_schema":{"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"]}},{"name":"translate_srt","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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":[]}},{"name":"translate_text","description":"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","write_action":false,"price_micros":0,"input_schema":{"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"]}},{"name":"what_can_you_do","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"]}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-23T17:15:12.394Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T17:15:12.314Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1201ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":12,"max":15,"notes":["last push 38 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://ainetcafe.com/mcp/translate?s=registry","reachable":true,"authRequired":false,"latencyMs":1201,"serverInfo":{"name":"netcafe-translate","version":"1.5.0"}}],"packages":[],"repo":{"found":true,"owner":"mario03690","repo":"ai-netcafe","archived":false,"pushedAt":"2026-08-16T06:53:22Z","stars":1,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/79393843?v=4","ownerCreatedAt":"2021-02-21T06:22:05Z"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-08-16T06:53:22.000Z","score":21}}}},"grade_history":[],"reviews":[]}