apifable

apifable
Lee la especificación. Entiende la API. Integra con confianza.
Inglés | 繁體中文
Descripción general
apifable es un servidor MCP que ayuda a la IA a integrar APIs de forma más fluida en proyectos frontend de TypeScript. Facilita la exploración de la estructura de la API, la búsqueda de endpoints y la generación de tipos de TypeScript, proporcionando a tu agente de IA el contexto que necesita para escribir código de integración preciso.
Related MCP server: openapi-mcp-proxy
✨ Características
📦 Contexto de API listo para IA — proporciona a la IA la estructura que necesita para entender y trabajar con tu API
📘 Soporte para OpenAPI 3.0 / 3.1 — funciona con especificaciones estándar como una fuente de verdad fiable
🤖 Servidor MCP para agentes de IA — conéctalo a Claude, Cursor y Windsurf
🔍 Herramientas de exploración de API — navega por endpoints, busca por palabras clave e inspecciona detalles completos de peticiones/respuestas
🏷️ Generación de tipos de TypeScript — genera definiciones de tipos de TypeScript listas para usar en código frontend
Primeros pasos
Instalación
Ejecuta apifable init para configurar la configuración de tu proyecto:
npx apifable@latest initEsto crea apifable.config.json en la raíz de tu proyecto. El archivo de configuración debe ser enviado al control de versiones para que la ruta de la especificación se comparta con tu equipo.
Después de que el comando se inicie, puedes elegir entre Archivo manual y URL remota.
1. Archivo manual
Usa este modo si tu especificación OpenAPI ya reside en el proyecto, o si quieres gestionar las actualizaciones de la especificación tú mismo.
init te pedirá la ruta del archivo local, como openapi.yaml.
Luego debes colocar tu especificación OpenAPI en esa ruta manualmente. Cuando la API del backend cambie, también deberás actualizar ese archivo manualmente.
2. URL remota
Usa este modo si tu especificación OpenAPI está disponible desde una URL remota estable, como el endpoint de especificación OpenAPI proporcionado por la documentación de tu API de backend.
init primero te pedirá la URL remota, como https://api.example.com/openapi.yaml, y luego te pedirá la ruta de salida local, como ./openapi.yaml.
[!NOTE] En este modo,
inittambién añade automáticamente la ruta de la especificación local descargada a.gitignore, porque el archivo está destinado a ser actualizado desde la fuente remota.
Luego puedes ejecutar el siguiente comando para descargar la especificación OpenAPI desde la URL remota a tu ruta local (spec.url → spec.path). Siempre que la especificación cambie, simplemente ejecútalo de nuevo para actualizar:
npx apifable@latest fetchCabeceras
Para cabeceras no sensibles que pueden compartirse con tu equipo, añade spec.headers a apifable.config.json:
{
"spec": {
"path": "openapi.yaml",
"url": "https://example.com/openapi.yaml",
"headers": {
"X-Api-Version": "2"
}
}
}Cabeceras de autenticación (Tokens secretos)
Si la descarga de la especificación OpenAPI remota requiere autenticación (API privada), almacena las cabeceras secretas en .apifable/auth.json. Este archivo no debe ser enviado al control de versiones:
{
"headers": {
"Authorization": "Bearer YOUR_SECRET_TOKEN"
}
}Tanto apifable.config.json como .apifable/auth.json soportan la sintaxis ${ENV_VAR} en los valores de las cabeceras.
{
"headers": {
"Authorization": "Bearer ${MY_API_KEY}"
}
}Prioridad de cabeceras (de mayor a menor)
Cabeceras de
.apifable/auth.json(sobrescribe claves con el mismo nombre)spec.headersdeapifable.config.json
Claude Code
Añade lo siguiente a tu .mcp.json:
{
"mcpServers": {
"apifable": {
"command": "npx",
"args": ["-y", "apifable@latest", "mcp"]
}
}
}Para otros agentes de IA como Cursor y Windsurf, puedes seguir el mismo enfoque para configurar apifable como un servidor MCP.
Uso
Aquí tienes algunos ejemplos de prompts que puedes usar para explorar APIs y construir funcionalidades.
Explorar la API
List all APIsShow me APIs related to postsList APIs under the Post tagShow me the API details for post commentsShow me the API details for GET /posts/{id}/commentsShow me the API details for postCommentsConstruir una funcionalidad
Implement the post comments feature
Post page: src/pages/posts/[id].tsx
Related APIs:
- GET /posts/{id}/comments (list post comments)
- POST /posts/{id}/comments (create a post comment)[!TIP] Al escribir un prompt para construir una funcionalidad, incluye contexto relevante: rutas de página, ubicaciones de componentes, APIs relacionadas y cualquier patrón o ejemplo a seguir.
Guía para agentes de IA
Añade lo siguiente al archivo AGENTS.md de tu proyecto para ayudar a los agentes de IA a usar apifable de manera más efectiva:
## API Integration (apifable)
- Always use `get_endpoint` to verify the exact path, method, and parameters before writing integration code. Never assume.
- When presenting endpoint list data from apifable tools, display exactly these columns in order: `Method` (Uppercase), `Path`, `Summary`. Keep all values verbatim, including summary prefixes like `[ 32 - 001 ]`. Do not omit, rename, paraphrase, or add extra columns.
- When saving generated types, store them under `src/types/` and name files by domain (e.g., `src/types/auth.ts`, `src/types/user.ts`), not by OpenAPI tag names.Lo anterior es un punto de partida recomendado. Siéntete libre de ajustar las columnas de la lista de endpoints y la ruta de la carpeta de tipos para que coincidan con tu proyecto.
Referencia de herramientas MCP
get_spec_info
Devuelve el título, versión, descripción, servidores y todas las etiquetas de la API con sus recuentos de endpoints. Empieza aquí para entender la forma de una especificación desconocida.
list_endpoints_by_tag
Entradas:
tag(string): El nombre de la etiqueta por la que filtrarlimit(number, opcional): Máximo de endpoints a devolveroffset(number, opcional): Número de endpoints a saltar (por defecto: 0)
Devuelve todos los endpoints que pertenecen a la etiqueta dada. La respuesta incluye los campos total, offset y hasMore para la paginación. Incluye una advertencia cuando los resultados superan los 30 elementos y no se especifica un limit.
search_endpoints
Entradas:
query(string): Palabra clave a buscartag(string, opcional): Restringir la búsqueda a una etiqueta específicalimit(number, opcional): Máximo de resultados a devolver (por defecto: 10)
Búsqueda por palabra clave a través de operationId, path, summary y description. Los resultados se clasifican por relevancia. Si no se encuentran coincidencias exactas, recurre automáticamente a la búsqueda difusa. La respuesta incluye un campo matchType ("exact" o "fuzzy"); los resultados difusos también incluyen un campo score por resultado.
get_endpoint
Entradas (elige una):
method(string) +path(string): Método HTTP y ruta del endpoint (ej.get+/users/{id})operationId(string): ID de la operación (ej.listUsers)
Devuelve el objeto completo del endpoint, incluyendo parámetros, requestBody y respuestas, con los $ref de componentes internos soportados resueltos en línea.
search_schemas
Entradas:
query(string): Palabra clave a buscarlimit(number, opcional): Máximo de resultados a devolver (por defecto: 10)
Búsqueda por palabra clave a través del nombre del esquema y la descripción. Los resultados se clasifican por relevancia. Si no se encuentran coincidencias exactas, recurre automáticamente a la búsqueda difusa. La respuesta incluye un campo matchType ("exact" o "fuzzy"); los resultados difusos también incluyen un campo score por resultado. Los resultados vacíos también pueden incluir un campo message con orientación para el siguiente paso.
get_schema
Entradas:
name(string): Nombre del esquema decomponents/schemas
Devuelve el esquema completo con los $ref de componentes internos soportados resueltos.
get_types
Entradas (elige un modo):
schemas(string[]): Array de nombres de esquemas decomponents/schemasmethod(string) +path(string): Método HTTP y ruta del endpointoperationId(string): ID de la operación (ej.listUsers)
Genera declaraciones de TypeScript autocontenidas como texto de código. En el modo endpoint, sigue los $ref de componentes internos soportados antes de recopilar las dependencias del esquema. Incluye automáticamente dependencias transitivas y no incluye sentencias de importación.
Reglas de modo:
Usa exactamente un modo por llamada:
schemas,method+path, ooperationIdNo mezcles modos en la misma llamada
Limitaciones
No se soportan los
$refexternos (ej. referencias a otros archivos o URLs).No se soporta OpenAPI 2.0 (Swagger). Solo se soportan las especificaciones OpenAPI 3.0 y 3.1.
Patrocinio
Si crees que este paquete te ha ayudado, considera convertirte en patrocinador para apoyar mi trabajo~ y tu avatar será visible en mis proyectos principales.
Créditos
@reapi/mcp-openapi — por la inspiración inicial
Licencia
Historial de estrellas
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that loads multiple OpenAPI specifications and exposes them to LLM-powered IDE integrations, enabling AI to understand and work with your APIs directly in development tools like Cursor.72090MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides tools for exploring large OpenAPI schemas without loading entire schemas into LLM context. Perfect for discovering and analyzing endpoints, data models, and API structure efficiently.914MIT
- AlicenseBqualityCmaintenanceMCP server that enables AI assistants to explore and generate code for type-safe OpenAPI clients from various cloud APIs like DigitalOcean, Hetzner Cloud, and Ory.7818MIT
- AlicenseAqualityDmaintenanceA TypeScript-based MCP server that integrates with Swagger/OpenAPI specifications to expose API endpoints as tools for Large Language Models (LLMs), enabling natural language interaction with any OpenAPI-compliant API.49MIT
Related MCP Connectors
MCP server for AI access to Swagger by SmartBear.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ycs77/apifable'
If you have feedback or need assistance with the MCP directory API, please join our Discord server