Serveur MCP

netcafe-docs

com.ainetcafe/netcafe-docs

Ce que fait ce MCP

Extracts and validates data from PDFs, invoices, bank statements, tables, and CSVs; also supports web research, document conversion, translation, transcription, and slide generation.

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>
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id returned when the task was started.'}}}
Schéma de sortie
{'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'}}}
check_resume
Can an ATS parse this resume?
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the resume (PDF or .docx).'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
convert_to_pdf
Convert a web page or HTML to PDF
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
Lecture seule Idempotent
Schéma d’entrée
{'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).'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
csv_to_qbo
Transaction CSV → QuickBooks .qbo bank feed file
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': [], 'properties': {'csv': {'type': 'string', 'description': 'CSV content with a header row.'}, 'url': {'type': 'string', 'description': 'Or a link to the CSV.'}, 'bank_id': {'type': 'string', 'description': 'Routing / bank identifier, if your import asks for one.'}, 'currency': {'type': 'string', 'description': 'Three-letter currency code, default USD.'}, 'account_id': {'type': 'string', 'description': 'Your account number as the accounting software expects it.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
deep_research
Run an autonomous research agent
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
Schéma d’entrée
{'type': 'object', 'required': ['topic'], 'properties': {'depth': {'enum': ['quick', 'standard'], 'type': 'string', 'description': 'quick = outline only (~1 min); standard = full cited report (~3 min). Default standard.'}, 'topic': {'type': 'string', 'description': 'The research question. Phrase it as a question, not a keyword.'}}}
Schéma de sortie
{'type': 'object', 'required': ['job_id', 'status'], 'properties': {'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'poll_interval_seconds': {'type': 'integer'}}}
doc_translate_cn
doc translate cn
文档翻译成中文,保留段落结构。逐段翻译并核对段落条数进出一致 —— 漏译最常见的形态就是整段消失,这里会当场发现。入参 url(文档链接)或 text,可选 target(默认 zh)。自证不通过不计费。
Schéma d’entrée
{'type': 'object', 'properties': {'url': {}, 'text': {'type': 'string'}, 'target': {'type': 'string'}}, 'additionalProperties': True}
extract_invoices
A batch of invoices → one ledger-ready table (arithmetic-checked)
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['urls'], 'properties': {'urls': {'type': 'string', 'description': 'Invoice URLs — comma-separated, or pass an array. Up to 20 per call.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
extract_statement
Bank statement PDF → transactions + reconciliation check
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).
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the statement PDF.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
extract_tables
PDF tables → structured rows (with schema alignment)
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['url'], '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.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
fix_csv_encoding
Fix a CSV that opens garbled in Excel
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': [], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the CSV.'}, 'text': {'type': 'string', 'description': 'Or paste the CSV content directly.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
make_slides
Generate a PowerPoint deck
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
Schéma d’entrée
{'type': 'object', 'required': ['topic'], '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.'}}}
Schéma de sortie
{'type': 'object', 'required': ['job_id', 'status'], 'properties': {'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'poll_interval_seconds': {'type': 'integer'}}}
meeting_pack
meeting pack
会议录音 → 纪要包 PDF:转写、要点、决议、待办。纪要里点名的负责人会与转写原文比对 —— 把任务安排给一个从没在录音里出现过的人,报告会判不通过。入参 url(音频直链)。自证不通过不计费。
Schéma d’entrée
{'type': 'object', 'properties': {'url': {'type': 'string'}, 'audio': {}}, 'additionalProperties': True}
pdf_add_page_numbers
Add page numbers to a PDF
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}".
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the PDF.'}, 'text': {'type': 'string', 'description': 'Template, default "{n}". Use {n} and {total}.'}, 'style': {'type': 'string', 'description': 'arabic (default) | roman (i, ii, iii) | ROMAN (I, II, III)'}, 'position': {'type': 'string', 'description': 'bottom-center (default) | bottom-left | bottom-right | top-center | top-left | top-right'}, 'start_at': {'type': 'integer', 'description': 'Number to start from (default 1).'}, 'font_size': {'type': 'integer', 'description': 'Font size, default 10.'}, 'skip_first': {'type': 'integer', 'description': 'Leave this many leading pages unnumbered, e.g. 1 for a cover.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
pdf_page_count
pdf page count
Count pages and report each page size of a PDF (by URL).
Schéma d’entrée
{'type': 'object', 'properties': {'url': {}}, 'additionalProperties': True}
pdf_to_markdown
PDF or scanned page → structured Markdown
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the PDF, or of a page image (png/jpg) for scanned documents.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
pdf_watermark
pdf watermark
Stamp diagonal text watermark on every page of a PDF (by URL). text = the watermark.
Schéma d’entrée
{'type': 'object', 'properties': {'url': {}, 'text': {'type': 'string'}}, 'additionalProperties': True}
pptx_to_pdf
pptx to pdf
PowerPoint .pptx (by URL) → PDF handout.
Schéma d’entrée
{'type': 'object', 'properties': {'url': {}}, 'additionalProperties': True}
redact_text
Redact secrets and PII before sending text on
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['text'], 'properties': {'only': {'type': 'string', 'description': 'Optional comma-separated subset, e.g. "EMAIL,API_KEY,PRIVATE_KEY".'}, 'text': {'type': 'string', 'description': 'The text to redact.'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
transcribe_audio
Transcribe audio to text
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>
Schéma d’entrée
{'type': 'object', 'required': ['url'], '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.'}}}
Schéma de sortie
{'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
Schéma d’entrée
{'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.'}}}
Schéma de sortie
{'type': 'object', 'required': ['job_id', 'status'], 'properties': {'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'poll_interval_seconds': {'type': 'integer'}}}
webpage_to_docx
webpage to docx
Any article URL → Word .docx (rendered page → clean document).
Schéma d’entrée
{'type': 'object', 'properties': {'url': {}}, '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.
Lecture seule Idempotent
Schéma d’entrée
{'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 "把一堆发票整理成能入账的表格"'}}}
Schéma de sortie
{'type': 'object', 'additionalProperties': True}
xlsx_to_pdf
xlsx to pdf
Excel .xlsx (by URL) → PDF.
Schéma d’entrée
{'type': 'object', 'properties': {'url': {}}, 'additionalProperties': True}
Ajouté
doc_translate_cn
17 September 2026 12:33
Ajouté
meeting_pack
17 September 2026 12:33
Ajouté
webpage_to_docx
17 September 2026 12:33
Ajouté
pptx_to_pdf
17 September 2026 12:33
Ajouté
xlsx_to_pdf
17 September 2026 12:33
Ajouté
pdf_watermark
17 September 2026 12:33
Ajouté
pdf_page_count
17 September 2026 12:33
Ajouté
make_slides
17 September 2026 12:33
Ajouté
translate_pdf
17 September 2026 12:33
Ajouté
check_job
17 September 2026 12:33
Ajouté
deep_research
17 September 2026 12:33
Ajouté
convert_to_pdf
17 September 2026 12:33
Ajouté
transcribe_audio
17 September 2026 12:33
Ajouté
fix_csv_encoding
17 September 2026 12:33
Ajouté
pdf_add_page_numbers
17 September 2026 12:33
Ajouté
extract_invoices
17 September 2026 12:33
Ajouté
extract_statement
17 September 2026 12:33
Ajouté
extract_tables
17 September 2026 12:33
Ajouté
pdf_to_markdown
17 September 2026 12:33
Ajouté
check_resume
17 September 2026 12:33
Ajouté
csv_to_qbo
17 September 2026 12:33
Ajouté
redact_text
17 September 2026 12:33
Ajouté
what_can_you_do
17 September 2026 12:33