Connect AI Netcafe and your agent gets 34 tools, among them ai_visibility, ask_model, build_app. It answers at https://ainetcafe.com/mcp?s=registry over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 11 times since 4 September 2026; the last check, on 7 November 2026, succeeded.
Publish your app to managed hosting with one call; compare LLM cost; PDF translate, PPTX, research.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
ai_visibility | Audit a URL for AI visibility: which AI crawlers robots.txt actually allows (parsed per user-agent group, not keyword-matched), whether llms.txt / sitemap / JSON-LD / canonical exist, and how much real text an agent gets without running Jav Inputs: url |
ask_model | Send a prompt to one specific large language model and get the answer plus its exact cost in USD. Useful when you want a second opinion from a different model, or a cheaper model for a bulk subtask. Example — GET https://ainetcafe.com/t/ask Inputs: prompt, model, system, max_tokens |
build_app | Turn one plain-language description into a LIVE single-page web tool: code is generated, deployed to managed hosting with HTTPS, and listed — you get the public URL in ~1-2 minutes. Best for tool-style apps: calculators, converters, checkli Inputs: description, name, visibility, refine |
check_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 Inputs: job_id |
china_reachability | Fetch a URL from a real mainland-China network egress and report HTTP status, latency and China DNS resolution. Answers "is my site/API usable from China?" with a measurement instead of a guess — you cannot get this from a VPS abroad. Inputs: url |
clean_table | Tidies a spreadsheet export: removes duplicate rows, trims whitespace (half-width and full-width — Chinese exports are full of ), unifies the half-dozen ways a cell can say "empty" (NA / null / - / 无), drops empty rows and columns, and can Inputs: url, text, ops, keep, split_column, split_by |
compare_models | Run one prompt across multiple LLMs in parallel and return every answer side by side with its real measured cost and latency. This answers "which model should I actually use for this kind of task?" with data instead of guesswork — useful be Inputs: prompt, models, system |
create_task | Create a task that runs on a schedule in our cloud — you do not keep anything running. It only notifies you when the result actually changes. Kinds: watch_page (Watch a web page and report when its content changes); daily_answer (Re-run a w Inputs: kind, input, interval_seconds, notify_url |
delete_task | Stop and remove a scheduled task and its run history. Inputs: task_id |
diff_tables | Matches rows across two CSVs on a key column and reports three things: keys only in A, keys only in B, and keys in both whose other columns disagree — naming the exact column and both values. Unlike reconcile_ledger this needs no amount col Inputs: url_a, url_b, text_a, text_b, key |
diff_text | Returns which lines were added and which were removed, with line numbers — computed with a longest-common-subsequence, not guessed by a model. Use to compare two versions of a config, a document, or any command output, instead of asking an Inputs: a, b |
extract_invoices | 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 i Inputs: urls |
extract_statement | 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 t Inputs: url |
extract_tables | 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 a Inputs: url, fields |
fetch_page | Fetch any public URL and return LLM-ready clean Markdown (rendered via Crawl4AI, handles JS pages). Use after web_search to read a source, or to ingest any page for analysis. Example — GET https://ainetcafe.com/t/fetch_page?url=https://exam Inputs: url |
get_app | Full details of one hosted application: what it does, how to use it, measured benchmark scores, source repository, and the URL a human can open to run it. Example — GET https://ainetcafe.com/t/get_app?slug=<slug-from-list_apps> Inputs: slug |
get_task_runs | Recent runs of one scheduled task: what it returned, whether the result changed, and what each run cost. Inputs: task_id, limit |
json_yaml | Converts JSON to YAML or YAML to JSON. It works out which one you gave it, so you do not have to say. A parse failure comes back with the parser message instead of silently producing something that looks fine and is not. Use when a config, Inputs: text, to |
jwt_decode | Decodes the header and payload of a JWT and reports issued-at / expiry as readable timestamps plus seconds remaining. The signature is NOT verified and the response says so — decoding is fine for debugging a token you already hold, but neve Inputs: token |
list_apps | List the open-source AI applications hosted and ready to run at AI NetCafé (ainetcafe.com). Each one normally requires local setup (Docker/Python + your own model API key); here they run pre-configured. Use this to find a tool for a task li Inputs: category |
list_models | List every model callable through AI NetCafé with its input/output price per million tokens, so you can pick by cost as well as capability. Example — GET https://ainetcafe.com/t/list_models Inputs: tier |
list_tasks | Show the scheduled tasks on this workspace, when each runs next, how many times it has run and what it has cost so far. |
merge_tables | Combines up to 20 CSVs into a single table. Headers do not have to match: columns are unioned and a file missing a column contributes blanks for it, so rows never shift silently — the failure mode that makes hand-merged spreadsheets untrust Inputs: urls, texts |
model_costs | What one call actually costs on each model, measured. Vendors publish per-million-token list prices, but a call's cost depends on how many tokens the model chooses to emit — models differ by an order of magnitude on the same prompt. standar Inputs: days |
pdf_to_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. Inputs: url |
recall | Retrieve previously stored memories, optionally filtered by search query and/or project. Call at the start of work on a known project to restore context: why decisions were made, known fixes, preferences. Example — GET https://ainetcafe.com Inputs: query, project, limit |
reconcile_ledger | Reconciles two sets of records — your books against a bank, platform, or supplier statement. Matches rows on a key column, compares an amount column, and returns three lists: only in A, only in B, and same key but different amount. Amounts Inputs: url_a, url_b, text_a, text_b, key, amount |
regex_test | Runs a regular expression against sample text and returns every match with its position and capture groups (named groups included). Use before wiring a pattern into code, instead of guessing whether the escaping survived the trip through JS Inputs: pattern, text, flags |
remember | Persist a durable memory: an architecture decision, a stable user preference, a verified bug fix, or an important discovery. Anonymous callers get a small per-network memory pool; callers sending an AllRouter key (Authorization: Bearer sk-. Inputs: content, kind, project |
render_diagram | Turn diagram-as-code into an image: Mermaid, PlantUML, Graphviz/DOT, C4, Excalidraw and 20+ more (self-hosted Kroki). Returns a hosted SVG/PNG URL you can embed directly in Markdown or HTML. Example — GET "https://ainetcafe.com/t/render_dia Inputs: source, type, format |
transpile_sql | Convert a SQL statement from one dialect to another — mysql, postgres, sqlite, tsql, oracle, snowflake, bigquery, redshift, spark, hive, presto, trino, duckdb, clickhouse, databricks, doris, starrocks and more. Deterministic parser (sqlglot Inputs: sql, read, write |
validate_json | Checks that text parses as JSON, and optionally that required keys are present with the right top-level types. Returns the specific violations, not just true/false. Checks required + types only — not full JSON Schema, and it says so rather Inputs: text, schema |
web_search | Search the live web through a self-hosted SearXNG meta-search (aggregates dozens of engines, no tracking). Returns titles, URLs and snippets. Use when you need current information or sources. Example — GET https://ainetcafe.com/t/web_search Inputs: query, max_results |
what_can_you_do | 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 Inputs: task |
Every block below points at https://ainetcafe.com/mcp?s=registry. Pick your client and copy.
claude mcp add --transport http ai-netcafe https://ainetcafe.com/mcp?s=registry
{
"mcpServers": {
"ai-netcafe": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ainetcafe.com/mcp?s=registry"]
}
}
}{
"mcpServers": {
"ai-netcafe": {
"url": "https://ainetcafe.com/mcp?s=registry"
}
}
}{
"servers": {
"ai-netcafe": {
"type": "http",
"url": "https://ainetcafe.com/mcp?s=registry"
}
}
}{
"context_servers": {
"ai-netcafe": {
"url": "https://ainetcafe.com/mcp?s=registry"
}
}
}{
"mcpServers": {
"ai-netcafe": {
"serverUrl": "https://ainetcafe.com/mcp?s=registry"
}
}
}{
"mcpServers": {
"ai-netcafe": {
"url": "https://ainetcafe.com/mcp?s=registry"
}
}
}name: AI Netcafe
version: 0.0.1
schema: v1
mcpServers:
- name: AI Netcafe
type: streamable-http
url: https://ainetcafe.com/mcp?s=registry{
"mcpServers": {
"ai-netcafe": {
"httpUrl": "https://ainetcafe.com/mcp?s=registry"
}
}
}{
"mcpServers": {
"ai-netcafe": {
"type": "http",
"url": "https://ainetcafe.com/mcp?s=registry"
}
}
}{
"mcpServers": {
"ai-netcafe": {
"url": "https://ainetcafe.com/mcp?s=registry"
}
}
}goose://extension?url=https%3A%2F%2Fainetcafe.com%2Fmcp%3Fs%3Dregistry&type=streamable_http&id=ai-netcafe&name=AI%20Netcafe
It answered our last check on 7 November 2026 in 947 ms. Over 11 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by ainetcafe.com and served from ainetcafe.com, the vendor's own domain: https://ainetcafe.com/mcp?s=registry.
34, as returned by the server's own tools/list on 9 September 2026: ai_visibility, ask_model, build_app, check_job, china_reachability, clean_table, compare_models, create_task, and 26 more.
It answered our last check on 7 November 2026 in 947 ms. Over 11 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://ainetcafe.com/mcp?s=registry. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.ainetcafe. Endpoint host: ainetcafe.com. ARD identifier: urn:air:com.ainetcafe:mcp:ai-netcafe.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.