netcafe-devkit
JSON/YAML, regex, diff, JWT, SQL dialects — the keyless millisecond ops an agent needs mid-task.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (6)
- HIGH
- MEDIUMen redact_text
- MEDIUMen make_qr
- LOWen redact_text
- LOWen screenshot_url
- INFOen redact_text
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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-devkit": {
"url": "https://ainetcafe.com/mcp/dev?s=registry"
}
}
}Puntos de conexión remotos
https://ainetcafe.com/mcp/dev?s=registrystreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (14)
🟢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
}🟢json_yaml(text, to)
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, a CI file, or a Kubernetes manifest needs to be in the other format.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The JSON or YAML content."
},
"to": {
"type": "string",
"description": "Optional: \"json\" or \"yaml\" to force the direction."
}
},
"required": [
"text"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢validate_json(text, schema)
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 than pretending. Use before feeding generated JSON into something that will fail on it.
Esquema de entrada
{
"type": "object",
"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."
}
},
"required": [
"text"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢diff_text(a, b)
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 LLM to eyeball two blobs and hoping it notices.
Esquema de entrada
{
"type": "object",
"properties": {
"a": {
"type": "string",
"description": "The first (before) text."
},
"b": {
"type": "string",
"description": "The second (after) text."
}
},
"required": [
"a",
"b"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢jwt_decode(token)
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 never treat these values as proof of anything; verification needs the secret and belongs in your own service.
Esquema de entrada
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "The JWT string."
}
},
"required": [
"token"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢regex_test(pattern, text, flags)
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 JSON and the shell.
Esquema de entrada
{
"type": "object",
"properties": {
"pattern": {
"type": "string",
"description": "The regular expression, without surrounding slashes."
},
"text": {
"type": "string",
"description": "The text to test against."
},
"flags": {
"type": "string",
"description": "Optional flags, e.g. \"gi\". Default \"g\"."
}
},
"required": [
"pattern",
"text"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢transpile_sql(sql, read, write)
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), not an LLM: the same input always produces the same output, and syntax errors come back with the exact line and column. Use it when migrating queries between databases or debugging dialect-specific syntax.
Esquema de entrada
{
"type": "object",
"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\"."
}
},
"required": [
"sql",
"write"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢make_qr(text)
Any text or URL → a QR code PNG you can embed or download. Stateless URL form: https://ainetcafe.com/i/qr/<text>
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text or URL to encode."
}
},
"required": [
"text"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}⚪json_format(json, url, indent)
Validate and pretty-print JSON (2-space indent). Reports the error location if invalid.
Esquema de entrada
{
"type": "object",
"properties": {
"json": {},
"url": {},
"indent": {
"type": "number"
}
},
"additionalProperties": true
}🟢timezone_convert(to, from, time)
Convert a time between time zones, or get current time in any zone. from/to = IANA zone (Asia/Shanghai), time = YYYY-MM-DDTHH:mm (default now).
Esquema de entrada
{
"type": "object",
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string"
},
"time": {
"type": "string"
}
},
"additionalProperties": true
}⚪unit_convert(value, from, to)
Convert units: length, weight, temperature, area, volume, speed, data size. value + from + to (e.g. 100 km mi, 25 c f).
Esquema de entrada
{
"type": "object",
"properties": {
"value": {
"type": "number"
},
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"additionalProperties": true
}⚪sql_from_description(request, schema, dialect)
Plain-language request + table schema → ready-to-run .sql file with comments.
Esquema de entrada
{
"type": "object",
"properties": {
"request": {},
"schema": {
"type": "string"
},
"dialect": {}
},
"additionalProperties": true
}⚪screenshot_url(url, width)
Full-page screenshot of any URL → PNG. The same job screenshot APIs charge $7-79/month for.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {},
"width": {
"type": "number"
}
},
"additionalProperties": true
}Comunidad
Evidencia