anyapi-mcp-server
anyapi-mcp-server
Si tiene una API, puedes usar MCP con ella.
Los servidores MCP tradicionales seleccionan manualmente un puñado de endpoints y dan el trabajo por terminado, limitándote al subconjunto que alguien decidió que era "suficiente". ¿Por qué conformarse con una fracción de una API cuando puedes tener todo?
anyapi-mcp-server es un servidor MCP universal que conecta cualquier API REST a asistentes de IA como Claude, Cursor y otras herramientas basadas en LLM; solo tienes que apuntarlo a una especificación OpenAPI o una colección de Postman. Cada endpoint que proporciona la API queda disponible al instante, con selección de campos al estilo GraphQL e inferencia automática de esquemas. Sin código de servidor personalizado, sin límites artificiales.
Inicio rápido
1. Instalar
npm install -g anyapi-mcp-server2. Añadir a tu cliente MCP (Cursor, Claude Desktop, etc.)
{
"mcpServers": {
"your-api": {
"command": "npx",
"args": [
"-y",
"anyapi-mcp-server",
"--name", "your-api",
"--spec", "path/to/openapi.json",
"--base-url", "https://api.example.com",
"--header", "Authorization: Bearer ${API_KEY}"
],
"env": {
"API_KEY": "your-api-key"
}
}
}
}3. Usar las herramientas — descubre endpoints con list_api, inspecciona esquemas con call_api, obtén datos con query_api.
Ejemplos de proveedores
Configuraciones listas para usar para APIs populares:
Proveedor | Autenticación |
Token de API o Clave + Correo electrónico | |
Clave de API + Clave de aplicación | |
Token de acceso personal | |
OAuth 2.0 | |
Clave de API | |
Clave de API personal | |
Token de Bot/Usuario |
Estos funcionan con cualquier API que tenga una especificación OpenAPI o Postman; los anteriores son solo ejemplos. Stripe, Twilio, Shopify, HubSpot y cualquier otra cosa con una API REST funcionarán de la misma manera.
Referencia de CLI
Flags obligatorios
Flag | Descripción |
| Nombre del servidor (ej. |
| Ruta o URL HTTPS a una especificación OpenAPI (JSON/YAML) o Colección de Postman. Las URLs remotas se almacenan en caché localmente. Soporta |
| URL base de la API (ej. |
Flags opcionales
Flag | Descripción |
| Cabecera HTTP como |
| Ruta al registro de solicitudes/respuestas en formato NDJSON. Las cabeceras sensibles se enmascaran automáticamente. |
Flags de OAuth
Para APIs que usan OAuth 2.0 en lugar de tokens estáticos. Si se proporciona cualquiera de los tres flags obligatorios, los tres son necesarios. Todos los flags soportan ${ENV_VAR}.
Flag | Obligatorio | Descripción |
| Sí* | ID de cliente OAuth |
| Sí* | Secreto de cliente OAuth |
| Sí* | URL del endpoint de token |
| No | Endpoint de autorización (detectado automáticamente desde la especificación si está disponible) |
| No | Scopes separados por comas |
| No |
|
| No | Parámetro de token adicional como |
Consulta la guía de Google Workspace para ver un ejemplo completo de OAuth.
Herramientas
El servidor expone cuatro herramientas (más auth cuando OAuth está configurado):
list_api — Explorar endpoints
Descubre lo que ofrece la API. Llama sin argumentos para ver todas las categorías, proporciona category para listar endpoints en una etiqueta, o search para encontrar endpoints por palabra clave.
call_api — Inspeccionar un endpoint
Realiza una solicitud HTTP real y devuelve el esquema GraphQL inferido (SDL), no los datos en sí. Úsalo para descubrir la forma de la respuesta y obtener suggestedQueries que puedes copiar en query_api. También devuelve costes de tokens por campo (fieldTokenCosts) y un dataKey para reutilizar la caché. Para solicitudes PUT/PATCH, crea automáticamente una copia de seguridad previa a la escritura (devuelve backupDataKey). Soporta bodyFile para cargas útiles grandes y bloquea solicitudes con valores de marcador de posición detectados.
query_api — Obtener datos
Obtiene datos y devuelve solo los campos que selecciones mediante una consulta GraphQL. Soporta tanto lecturas como escrituras (mutaciones para POST/PUT/DELETE/PATCH). Pasa un dataKey de call_api para reutilizar datos en caché sin llamadas HTTP.
# Read
{ items { id name status } _count }
# Write
mutation { post_endpoint(input: { name: "example" }) { id } }Parámetros clave:
maxTokens— presupuesto de tokens para la respuesta. Los arrays se truncan para ajustarse. Sin esto ounlimited, las respuestas de más de ~10k tokens son rechazadas.unlimited— establecer entruepara devolver la respuesta completa sin aplicar límites de presupuesto de tokens.dataKey— reutiliza datos en caché de una respuesta anterior decall_apioquery_api.jsonFilter— ruta de puntos para extraer valores anidados después de la consulta GraphQL (ej."data[].attributes.name").bodyFile— ruta absoluta a un archivo JSON para usar como cuerpo de la solicitud (mutuamente excluyente conbody). Úsalo para cargas útiles grandes que no se pueden enviar en línea.skipBackup— omite la copia de seguridad automática previa a la escritura para solicitudes PUT/PATCH (predeterminado:false).
explain_api — Leer la documentación
Devuelve la documentación de la especificación para un endpoint (parámetros, esquema del cuerpo de la solicitud, códigos de respuesta) sin realizar una solicitud HTTP.
auth — Autenticación OAuth
Solo disponible cuando los flags --oauth-* están configurados. Gestiona el flujo de OAuth:
action: "start"— devuelve una URL de autorización (o intercambia credenciales paraclient_credentials)action: "exchange"— completa el flujo de código de autorización (el callback se captura automáticamente)action: "status"— muestra el estado actual del token
Los tokens se persisten y actualizan automáticamente.
Flujo de trabajo típico
list_api → discover what's available
↓
explain_api → read the docs for an endpoint
↓
call_api → inspect the response schema (returns dataKey)
↓
query_api → fetch exactly the fields you need (pass dataKey for zero HTTP calls)
↓
query_api → re-query with different fields using the same dataKeyCómo funciona
OpenAPI/Postman spec
│
▼
┌─────────┐ ┌─────────────┐ ┌──────────┐ ┌───────────┐
│list_api │ │ explain_api │ │ call_api │ │ query_api │
│(browse) │ │ (docs) │ │ (schema) │ │ (data) │
└─────────┘ └─────────────┘ └──────────┘ └───────────┘
│ │ no HTTP │ │
▼ ▼ request ▼ ▼
Spec index Spec index REST API call dataKey cache
(tags, (params, (with retry) hit → no HTTP
paths) responses, │ miss → fetch
body schema) ▼ │
Infer schema + ▼
return dataKey Execute GraphQL
+ token budget
truncationCaracterísticas
Cualquier API REST — proporciona una especificación OpenAPI (JSON/YAML) o Colección de Postman v2.x como archivo o URL
Caché de especificaciones remotas — las especificaciones HTTPS se obtienen una vez y se almacenan en
~/.cache/anyapi-mcp/Selección de campos GraphQL — consulta solo los campos que necesitas de cualquier respuesta
Inferencia de esquemas — construye automáticamente esquemas GraphQL a partir de respuestas de API en vivo
Fusión de múltiples muestras — muestrea hasta 10 elementos de array para esquemas más ricos
Soporte de mutaciones — las operaciones de escritura obtienen mutaciones GraphQL tipadas a partir de los esquemas de cuerpo de OpenAPI
Sugerencias inteligentes —
call_apidevuelve consultas listas para usar basadas en el esquema inferidoCaché de respuestas — caché basada en sistema de archivos con TTL de 5 minutos; los tokens
dataKeypermiten aquery_apireutilizar datos sin llamadas HTTPPresupuesto de tokens —
query_apiaplica un límite de seguridad de ~10k tokens por defecto; usamaxTokenspara truncar el array más grande y profundo para que quepa, ounlimited: truepara respuestas completasCostes de tokens por campo —
call_apidevuelve un árbolfieldTokenCostspara que el LLM pueda tomar decisiones informadas sobre los camposSeguimiento de límites de tasa — analiza las cabeceras
X-RateLimit-*y advierte cuando los límites están casi agotadosDetección de paginación — detecta automáticamente patrones de paginación basados en cursor, token de página siguiente y enlaces en las respuestas
Filtro JSON —
query_apiacepta una ruta de puntosjsonFilterpara extracción posterior a la consulta (ej."data[].name")Reintento con retroceso — reintentos automáticos para 429/5xx con retroceso exponencial y soporte para
Retry-AfterFormato múltiple — analiza respuestas JSON, XML, CSV y texto plano
Escrituras seguras — las solicitudes PUT/PATCH toman automáticamente una instantánea del recurso antes de escribir (
backupDataKey); los valores de marcador de posición (ej.PLACEHOLDER,TODO,file://) se detectan y bloquean antes de enviarseCuerpo basado en archivos — el parámetro
bodyFileacepta una ruta absoluta a un archivo JSON, permitiendo cargas útiles grandes que no se pueden enviar en líneaErrores enriquecidos — mensajes de error estructurados con sugerencias específicas de estado y contexto de especificación para la autocorrección
OAuth 2.0 — flujos de código de autorización (con PKCE) y credenciales de cliente con actualización automática de tokens
Interpolación de variables de entorno —
${ENV_VAR}en URLs base, cabeceras y rutas de especificaciónRegistro de solicitudes — registro NDJSON opcional con enmascaramiento de cabeceras sensibles
Formatos de especificación soportados
OpenAPI 3.x (JSON o YAML)
OpenAPI 2.0 / Swagger (JSON o YAML)
Colección de Postman v2.x (JSON)
Licencia
Propietaria no comercial. Gratuito para uso personal y educativo. El uso comercial requiere permiso por escrito. Consulta LICENSE para más detalles.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quiloos39/anyapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server