netcafe-docs

Statements, invoices, tables, ledgers — every result carries its own arithmetic proof.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
93%
Integridad del esquema
85%
Calidad de los nombres
83%
Riesgo de envenenamiento
20%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (11)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'redact_text' description contains placeholder texten redact_text
  • MEDIUMTool description contains URL to non-standard domainen transcribe_audio
  • MEDIUMTool description contains URL to non-standard domainen convert_to_pdf
  • MEDIUMTool description contains URL to non-standard domainen check_job
  • LOWTool 'redact_text' description lacks action verben redact_text
  • LOWTool 'pdf_watermark' description lacks action verben pdf_watermark
  • LOWTool 'xlsx_to_pdf' description lacks action verben xlsx_to_pdf
  • LOWTool 'pptx_to_pdf' description lacks action verben pptx_to_pdf
  • LOWTool 'meeting_pack' description lacks action verben meeting_pack

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,850Tokens (definiciones de herramientas)
~828 BTamaño de respuesta típico
Impacto significativo en la atención (3.01% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "netcafe-docs": {
      "url": "https://ainetcafe.com/mcp/docs?s=registry"
    }
  }
}

Puntos de conexión remotos

https://ainetcafe.com/mcp/docs?s=registrystreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (23)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢redact_text(text, only)

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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢csv_to_qbo(csv, url, account_id, bank_id, currency)

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.

Esquema de entrada

{
  "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": []
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢check_resume(url)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public URL of the resume (PDF or .docx)."
    }
  },
  "required": [
    "url"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢pdf_to_markdown(url)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public URL of the PDF, or of a page image (png/jpg) for scanned documents."
    }
  },
  "required": [
    "url"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢extract_tables(url, fields)

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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢extract_statement(url)

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).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public URL of the statement PDF."
    }
  },
  "required": [
    "url"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢extract_invoices(urls)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "string",
      "description": "Invoice URLs — comma-separated, or pass an array. Up to 20 per call."
    }
  },
  "required": [
    "urls"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢pdf_add_page_numbers(url, style, start_at, skip_first, position, ...)

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}".

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢fix_csv_encoding(url, text)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public URL of the CSV."
    },
    "text": {
      "type": "string",
      "description": "Or paste the CSV content directly."
    }
  },
  "required": []
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢transcribe_audio(url, language)

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>

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢convert_to_pdf(url, html)

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

Esquema de entrada

{
  "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)."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "additionalProperties": true
}
🟢deep_research(topic, depth)

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

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "poll_interval_seconds": {
      "type": "integer"
    }
  },
  "required": [
    "job_id",
    "status"
  ]
}
🟢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>

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "The job_id returned when the task was started."
    }
  },
  "required": [
    "job_id"
  ]
}

Esquema de salida

{
  "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

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "poll_interval_seconds": {
      "type": "integer"
    }
  },
  "required": [
    "job_id",
    "status"
  ]
}
🟢make_slides(topic, slides, language, instructions)

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

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "poll_interval_seconds": {
      "type": "integer"
    }
  },
  "required": [
    "job_id",
    "status"
  ]
}
🟢pdf_page_count(url)

Count pages and report each page size of a PDF (by URL).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {}
  },
  "additionalProperties": true
}
⚪pdf_watermark(text, url)

Stamp diagonal text watermark on every page of a PDF (by URL). text = the watermark.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string"
    },
    "url": {}
  },
  "additionalProperties": true
}
⚪xlsx_to_pdf(url)

Excel .xlsx (by URL) → PDF.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {}
  },
  "additionalProperties": true
}
⚪pptx_to_pdf(url)

PowerPoint .pptx (by URL) → PDF handout.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {}
  },
  "additionalProperties": true
}
⚪webpage_to_docx(url)

Any article URL → Word .docx (rendered page → clean document).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {}
  },
  "additionalProperties": true
}
⚪meeting_pack(url, audio)

会议录音 → 纪要包 PDF:转写、要点、决议、待办。纪要里点名的负责人会与转写原文比对 —— 把任务安排给一个从没在录音里出现过的人,报告会判不通过。入参 url(音频直链)。自证不通过不计费。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "audio": {}
  },
  "additionalProperties": true
}
⚪doc_translate_cn(text, url, target)

文档翻译成中文,保留段落结构。逐段翻译并核对段落条数进出一致 —— 漏译最常见的形态就是整段消失,这里会当场发现。入参 url(文档链接)或 text,可选 target(默认 zh)。自证不通过不计费。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string"
    },
    "url": {},
    "target": {
      "type": "string"
    }
  },
  "additionalProperties": true
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada23 herramientas
verificadoversión no registrada23 herramientas