ai-netcafe
What this MCP does
Runs model comparisons, web and PDF extraction, table cleaning and reconciliation, scheduled jobs, app deployment, configuration conversion, JWT inspection, memory, and diagram rendering.
Tools
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Page to audit, e.g. https://example.com'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['prompt'], 'properties': {'model': {'type': 'string', 'description': 'Model id. Call list_models for available ids. Defaults to a cheap capable model.'}, 'prompt': {'type': 'string', 'description': 'The prompt to send.'}, 'system': {'type': 'string', 'description': 'Optional system instruction.'}, 'max_tokens': {'type': 'integer', 'description': 'Optional output cap.'}}}
Output schema
{'type': 'object', 'properties': {'model': {'type': 'string'}, 'answer': {'type': 'string'}, 'cost_usd': {'type': 'number'}, 'latency_ms': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['description'], 'properties': {'name': {'type': 'string', 'description': 'Optional short app name (defaults to the description).'}, 'refine': {'type': 'string', 'description': 'Slug of an app you built earlier (e.g. "u-1a23e679") to modify instead of building from scratch — describe only the change in `description`.'}, 'visibility': {'type': 'string', 'description': '"public" (default, listed in the store) or "unlisted" (URL-only, not in the store).'}, 'description': {'type': 'string', 'description': 'What the tool should do, in any language. Be specific about inputs/outputs.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id returned when the task was started.'}}}
Output schema
{'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'}}}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Full URL to test, e.g. https://example.com'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'ops': {'type': 'string', 'description': 'Comma-separated, default "dedupe,trim,drop_empty,unify_blank". Also available: split_column, transpose (swap rows/columns), wide_to_long (unpivot a wide table into the long format analysis tools expect).'}, 'url': {'type': 'string', 'description': 'Link to the CSV. Provide this or text.'}, 'keep': {'type': 'string', 'description': 'For wide_to_long: comma-separated id columns to keep as-is. Defaults to the first column.'}, 'text': {'type': 'string', 'description': 'The CSV content itself. Provide this or url.'}, 'split_by': {'type': 'string', 'description': 'Separator to split on, default a single space.'}, 'split_column': {'type': 'string', 'description': 'Column name to split (requires ops to include split_column).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['prompt'], 'properties': {'models': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Model ids to compare (2-5). Defaults to a cheap/mid/strong spread.'}, 'prompt': {'type': 'string', 'description': 'The prompt to send to every model.'}, 'system': {'type': 'string', 'description': 'Optional system instruction applied to all.'}}}
Output schema
{'type': 'object', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object'}}, 'summary': {'type': ['object', 'null']}}}
Input schema
{'type': 'object', 'required': ['kind', 'input'], 'properties': {'kind': {'type': 'string', 'description': 'watch_page | daily_answer | watch_reachability | pipeline'}, 'input': {'type': 'string', 'description': 'The URL to watch, or the question to re-research.'}, 'notify_url': {'type': 'string', 'description': 'Optional https webhook to POST results to when they change.'}, 'interval_seconds': {'type': 'integer', 'description': 'How often to run. Minimum 900 (15 min), default 3600.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'integer', 'description': 'From list_tasks.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'Column that identifies a row, e.g. id.'}, 'url_a': {'type': 'string', 'description': 'Link to the first CSV.'}, 'url_b': {'type': 'string', 'description': 'Link to the second CSV.'}, 'text_a': {'type': 'string', 'description': 'Or the first CSV content directly.'}, 'text_b': {'type': 'string', 'description': 'Or the second CSV content directly.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'description': 'The first (before) text.'}, 'b': {'type': 'string', 'description': 'The second (after) text.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['urls'], 'properties': {'urls': {'type': 'string', 'description': 'Invoice URLs — comma-separated, or pass an array. Up to 20 per call.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the statement PDF.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'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.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The page URL to fetch.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Application slug, from list_apps.'}}}
Output schema
{'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'open_url': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['task_id'], 'properties': {'limit': {'type': 'integer', 'description': 'How many recent runs, max 20, default 5.'}, 'task_id': {'type': 'integer', 'description': 'From create_task or list_tasks.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'to': {'type': 'string', 'description': 'Optional: "json" or "yaml" to force the direction.'}, 'text': {'type': 'string', 'description': 'The JSON or YAML content.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['token'], 'properties': {'token': {'type': 'string', 'description': 'The JWT string.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'category': {'type': 'string', 'description': 'Optional filter, e.g. "office", "research", "chat".'}}}
Output schema
{'type': 'object', 'required': ['apps'], 'properties': {'apps': {'type': 'array', 'items': {'type': 'object'}}, 'try_in_browser': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'tier': {'enum': ['free', 'premium'], 'type': 'string', 'description': 'Optional reference tier filter. All currently healthy tiers are available without a user key during the beta.'}}}
Output schema
{'type': 'object', 'required': ['models'], 'properties': {'models': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'urls': {'type': 'string', 'description': 'Comma-separated CSV links, at least two.'}, 'texts': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Or pass the CSV contents directly as an array.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'days': {'type': 'integer', 'description': 'Measurement window in days (default 30).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of the PDF, or of a page image (png/jpg) for scanned documents.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'Max results (default 8, up to 20).'}, 'query': {'type': 'string', 'description': 'Optional search terms; omit to list the most recent.'}, 'project': {'type': 'string', 'description': 'Optional project filter.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['key', 'amount'], 'properties': {'key': {'type': 'string', 'description': 'Column name to match rows on, e.g. order_id.'}, 'url_a': {'type': 'string', 'description': 'Link to side A (e.g. your books).'}, 'url_b': {'type': 'string', 'description': 'Link to side B (e.g. the statement).'}, 'amount': {'type': 'string', 'description': 'Numeric column to compare, e.g. amount.'}, 'text_a': {'type': 'string', 'description': 'Or the CSV content of side A directly.'}, 'text_b': {'type': 'string', 'description': 'Or the CSV content of side B directly.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['pattern', 'text'], 'properties': {'text': {'type': 'string', 'description': 'The text to test against.'}, 'flags': {'type': 'string', 'description': 'Optional flags, e.g. "gi". Default "g".'}, 'pattern': {'type': 'string', 'description': 'The regular expression, without surrounding slashes.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['content'], 'properties': {'kind': {'enum': ['decision', 'preference', 'bugfix', 'discovery', 'note'], 'type': 'string', 'description': 'Category; default "note".'}, 'content': {'type': 'string', 'description': 'The memory itself, self-contained (≤2000 chars).'}, 'project': {'type': 'string', 'description': 'Optional project name to scope recall later.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['source'], 'properties': {'type': {'type': 'string', 'description': 'Diagram language: mermaid (default), plantuml, graphviz, c4plantuml, excalidraw, blockdiag, erd…'}, 'format': {'type': 'string', 'description': '"svg" (default) or "png".'}, 'source': {'type': 'string', 'description': 'The diagram source code (e.g. a Mermaid flowchart).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['sql', 'write'], 'properties': {'sql': {'type': 'string', 'description': 'The SQL statement (or several, separated by semicolons).'}, 'read': {'type': 'string', 'description': 'Source dialect, e.g. "mysql". Omit to auto-detect from generic SQL.'}, 'write': {'type': 'string', 'description': 'Target dialect, e.g. "postgres", "bigquery", "doris".'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The JSON to validate.'}, 'schema': {'type': 'string', 'description': 'Optional JSON Schema (as JSON text) — required[] and properties[].type are checked.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'The search query.'}, 'max_results': {'type': 'integer', 'description': 'Max results (default 8, up to 20).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'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 "把一堆发票整理成能入账的表格"'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Recent tool changes
Similar MCP servers
Thousand API
Provides deterministic data conversion, validation, JSON transformation, statistical calculations, date and schedule utilities, i…
HubVibe: Pay-per-Call Tools for AI Agents: Web Search, Email Verify, KYC, Stocks, Crypto, News, Data
Offers paid utilities for web audits, HTTP fetching and extraction, BigQuery analysis, LLM processing, code execution, blockchain…
Blixtworks
Offers pay-per-call utilities for text, image processing and analysis, data conversion, validation, web inspection, cryptography,…
Qiniso
Provides deterministic formatting, parsing, holiday and tax lookups, address handling, and checksum or structure validation for i…
Scalix Cloud
Provides managed databases, SQL tools, container builds, persistent Linux machines, domains, scheduled functions, storage, and pr…
RationalBloks
Creates, deploys, manages, and searches schema-based REST API projects and Neo4j knowledge graphs across staging and production e…
RationalBloks
Creates, deploys, manages, and queries REST API and Neo4j graph projects from JSON schemas, including graph data modeling, versio…
Wakatime
Provides WakaTime coding-activity data, including durations, projects, commits, goals, heartbeats, editor usage, leaders, and use…