{"name":"com.ainetcafe/netcafe-docs","slug":"ainetcafe-netcafe-docs","title":null,"description":"Statements, invoices, tables, ledgers — every result carries its own arithmetic proof.","url":"https://mcp.market/server/ainetcafe-netcafe-docs","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"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":21,"ok":21,"last_checked_at":"2026-09-24T11:51:12.156Z","last_ok_at":"2026-09-24T11:51:12.156Z","latency_ms":399},"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.1.0","remotes":[{"type":"streamable-http","url":"https://ainetcafe.com/mcp/docs?s=registry"}],"packages":[],"tools":[{"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":"check_resume","description":"Check a resume (PDF or .docx) the way an applicant tracking system reads it: is the text extractable, are email/phone/sections findable, do multi-column layouts, tables or emoji break parsing. Returns a score plus concrete fixes ordered by impact — like the W3C validator, but for resumes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the resume (PDF or .docx)."}},"required":["url"]}},{"name":"convert_to_pdf","description":"Print-quality PDF from a URL or raw HTML via self-hosted Gotenberg (headless Chromium). Returns a hosted PDF download URL. Example — GET https://ainetcafe.com/t/convert_to_pdf?url=https://example.com","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Page URL to convert (either url or html is required)."},"html":{"type":"string","description":"Raw HTML to convert (alternative to url)."}}}},{"name":"csv_to_qbo","description":"Convert a transaction CSV into a .qbo / OFX bank-feed file that QuickBooks and similar accounting software import directly. Needs date, description and amount columns (or debit + credit). Pairs with extract_statement: statement PDF in, importable bank feed out.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"csv":{"type":"string","description":"CSV content with a header row."},"url":{"type":"string","description":"Or a link to the CSV."},"account_id":{"type":"string","description":"Your account number as the accounting software expects it."},"bank_id":{"type":"string","description":"Routing / bank identifier, if your import asks for one."},"currency":{"type":"string","description":"Three-letter currency code, default USD."}},"required":[]}},{"name":"deep_research","description":"Start an autonomous web research task. The agent plans sub-questions, searches the web, reads the sources and writes a report with citations — this is real research, not a single model call, and takes 2-5 minutes. Returns a job_id immediately; poll check_job to get the report. Use this when you need sourced, current information rather than what a model already knows. Powered by gpt-researcher (29k stars) hosted at AI NetCafé. Example — tools/call deep_research {\"topic\":\"State of MCP adoption in 2026?\"} → poll check_job","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"topic":{"type":"string","description":"The research question. Phrase it as a question, not a keyword."},"depth":{"type":"string","enum":["quick","standard"],"description":"quick = outline only (~1 min); standard = full cited report (~3 min). Default standard."}},"required":["topic"]}},{"name":"doc_translate_cn","description":"文档翻译成中文,保留段落结构。逐段翻译并核对段落条数进出一致 —— 漏译最常见的形态就是整段消失,这里会当场发现。入参 url(文档链接)或 text,可选 target(默认 zh)。自证不通过不计费。","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string"},"url":{},"target":{"type":"string"}},"additionalProperties":true}},{"name":"extract_invoices","description":"Give it up to 20 invoice URLs (PDF or page images) and get back one table ready to post: number, date, seller, buyer, net / tax / gross, currency. Every row is checked in code — net + tax must equal gross — and the batch total is re-added independently, so a row the model misread is flagged with the exact difference instead of quietly landing in your books. Mixed currencies get no batch total on purpose: adding them together would be an accounting error. CSV is UTF-8 with BOM so Excel opens it right.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"urls":{"type":"string","description":"Invoice URLs — comma-separated, or pass an array. Up to 20 per call."}},"required":["urls"]}},{"name":"extract_statement","description":"Turn a bank statement or transaction PDF into a clean transaction table (JSON + CSV), then cross-check it: opening + credits - debits must equal the stated closing balance. If it does not balance you get the exact difference and which row the running balance first breaks at — so you know whether the table is safe to use for accounting. Text-layer PDFs only (scanned images not yet supported).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the statement PDF."}},"required":["url"]}},{"name":"extract_tables","description":"Extract tables from a PDF into structured rows (JSON + CSV). Pass fields to force a fixed set of columns — that aligns a pile of documents that each name their headers differently into one consistent table. Rows the model was unsure about are flagged rather than guessed. Text-layer PDFs only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the PDF."},"fields":{"type":"string","description":"Optional comma-separated target columns, e.g. \"invoice_no,supplier,date,amount\". Omit to infer from the header."}},"required":["url"]}},{"name":"fix_csv_encoding","description":"Detect the real encoding of a CSV (GB18030, Shift-JIS, Windows-1252…), repair mojibake (UTF-8 that was read as Latin-1, e.g. \"Ã©\"), and re-emit UTF-8 with a BOM so Excel opens it correctly.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the CSV."},"text":{"type":"string","description":"Or paste the CSV content directly."}},"required":[]}},{"name":"make_slides","description":"Turn a topic or an outline into a real downloadable .pptx file — not a link into someone's web editor. Returns a job_id; poll check_job for the download URL. Usually 1-3 minutes. Powered by Presenton (open source) hosted at AI NetCafé. Example — tools/call make_slides {\"topic\":\"Q3 review\",\"slides\":8} → poll check_job","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"topic":{"type":"string","description":"The topic, or a full outline to follow."},"slides":{"type":"integer","description":"Number of slides (default 8)."},"language":{"type":"string","description":"Output language, e.g. \"Chinese\", \"English\". Default Chinese."},"instructions":{"type":"string","description":"Optional extra guidance on style or emphasis."}},"required":["topic"]}},{"name":"meeting_pack","description":"会议录音 → 纪要包 PDF:转写、要点、决议、待办。纪要里点名的负责人会与转写原文比对 —— 把任务安排给一个从没在录音里出现过的人,报告会判不通过。入参 url(音频直链)。自证不通过不计费。","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string"},"audio":{}},"additionalProperties":true}},{"name":"pdf_add_page_numbers","description":"Stamp page numbers or footer text onto every page of a PDF. Supports a starting number, roman numerals, skipping a cover page, position and font size — the combination Acrobat cannot do without scripting. Template supports {n} and {total}, e.g. \"Page {n} of {total}\".","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the PDF."},"style":{"type":"string","description":"arabic (default) | roman (i, ii, iii) | ROMAN (I, II, III)"},"start_at":{"type":"integer","description":"Number to start from (default 1)."},"skip_first":{"type":"integer","description":"Leave this many leading pages unnumbered, e.g. 1 for a cover."},"position":{"type":"string","description":"bottom-center (default) | bottom-left | bottom-right | top-center | top-left | top-right"},"text":{"type":"string","description":"Template, default \"{n}\". Use {n} and {total}."},"font_size":{"type":"integer","description":"Font size, default 10."}},"required":["url"]}},{"name":"pdf_page_count","description":"Count pages and report each page size of a PDF (by URL).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{}},"additionalProperties":true}},{"name":"pdf_to_markdown","description":"Convert a PDF (or a scanned page image) into clean Markdown that keeps headings, lists and tables, and puts multi-column pages in the right reading order. Text-layer PDFs are read exactly and cost far less; images go through a vision model.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the PDF, or of a page image (png/jpg) for scanned documents."}},"required":["url"]}},{"name":"pdf_watermark","description":"Stamp diagonal text watermark on every page of a PDF (by URL). text = the watermark.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string"},"url":{}},"additionalProperties":true}},{"name":"pptx_to_pdf","description":"PowerPoint .pptx (by URL) → PDF handout.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{}},"additionalProperties":true}},{"name":"redact_text","description":"Strip emails, phone numbers, ID numbers, API keys, private keys, JWTs, card numbers and IPs out of text, returning the redacted text plus a mapping table to restore them afterwards. Rule-based only — no model sees the input. The same value always maps to the same placeholder, so the answer can be restored.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","description":"The text to redact."},"only":{"type":"string","description":"Optional comma-separated subset, e.g. \"EMAIL,API_KEY,PRIVATE_KEY\"."}},"required":["text"]}},{"name":"transcribe_audio","description":"Fetch an audio file from a URL and transcribe it to text with open-source Whisper (100 languages, self-hosted). Good for voice memos, podcast clips and meeting recordings up to ~15 MB. Example — GET https://ainetcafe.com/t/transcribe_audio?url=<public-audio-url>","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the audio file (mp3/wav/m4a/ogg, ≤15 MB)."},"language":{"type":"string","description":"Hint language code like \"zh\", \"en\"; default auto-detect."}},"required":["url"]}},{"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":"webpage_to_docx","description":"Any article URL → Word .docx (rendered page → clean document).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{}},"additionalProperties":true}},{"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"]}},{"name":"xlsx_to_pdf","description":"Excel .xlsx (by URL) → PDF.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{}},"additionalProperties":true}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-23T11:54:48.133Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T11:54:48.122Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1627ms"]},"poisoning":{"score":15,"max":15,"notes":["23 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/docs?s=registry","reachable":true,"authRequired":false,"latencyMs":1627,"serverInfo":{"name":"netcafe-docs","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":[]}