mcp-api-connect
mcp-api-connect
Un payload de entrada, cualquier API de salida. mcp-api-connect es un motor de conectores agnóstico de protocolo y autenticación: describe un servicio de destino (URL, protocolo, autenticación, forma de solicitud/respuesta) una vez, luego envíale un payload normalizado y recibe una respuesta normalizada — ya sea que el destino sea una API REST/JSON, un servicio SOAP heredado, protegido por una clave de API, autenticación básica, un token Bearer o credenciales de cliente OAuth2.
Se distribuye como tres cosas construidas sobre el mismo motor central, así que como quieras usarlo, puedes:
Una biblioteca de Python —
pip install mcp-api-connect, llama aMCPAPIConnectEnginedirectamente, sin necesidad de servidor.Una API HTTP independiente —
pip install mcp-api-connect[api], ejecutamcp-api-connect-api, haz POST a/invoke.Un servidor MCP —
pip install mcp-api-connect[mcp], ejecutamcp-api-connect, apunta cualquier cliente MCP (Claude, etc.) hacia él para que un agente pueda llamar a conectores registrados — o servicios arbitrarios sobre la marcha — como herramientas.
Por qué
Cada proyecto de integración reinventa la misma rueda: un cliente REST aquí, un cliente SOAP allá, un flujo de autenticación por servicio, mapeo ad-hoc de solicitud/respuesta disperso por la base de código. mcp-api-connect centraliza eso en una especificación declarativa (InvokeSpec) y un motor de ejecución, de modo que añadir un nuevo servicio de destino es configuración, no código.
Related MCP server: Universal API Connector MCP
Inicio rápido (biblioteca)
pip install mcp-api-connectimport asyncio
from mcp_api_connect import MCPAPIConnectEngine, InvokeSpec, Target, AuthSpec, AuthType, RequestFormat, ResponseFormat
spec = InvokeSpec(
target=Target(base_url="https://api.example.com"),
auth=AuthSpec(type=AuthType.API_KEY, config={"api_key": "secret", "header_name": "X-API-Key"}),
request_format=RequestFormat(method="POST", path="/v1/orders", content_type="json"),
response_format=ResponseFormat(content_type="json"),
)
async def main():
async with MCPAPIConnectEngine() as engine:
result = await engine.invoke(spec, {"customer": "jane"})
print(result.success, result.data)
asyncio.run(main())Inicio rápido (API HTTP)
pip install "mcp-api-connect[api]"
mcp-api-connect-api # serves on :8000, interactive docs at /docscurl -X POST http://localhost:8000/invoke -H 'content-type: application/json' -d '{
"spec": {
"target": {"base_url": "https://api.example.com"},
"auth": {"type": "api_key", "config": {"api_key": "secret"}},
"request_format": {"method": "POST", "path": "/v1/orders"},
"response_format": {"content_type": "json"}
},
"payload": {"customer": "jane"}
}'Registra un conector reutilizable una vez, luego invócalo por nombre:
curl -X POST http://localhost:8000/connectors -d '{"name": "orders-api", "spec": {...}}'
curl -X POST http://localhost:8000/connectors/orders-api/invoke -d '{"customer": "jane"}'Inicio rápido (MCP)
pip install "mcp-api-connect[mcp]"{
"mcpServers": {
"mcp-api-connect": { "command": "/path/to/.venv/bin/mcp-api-connect" }
}
}Expone herramientas: invoke (sin estado, de una sola vez), register_connector, list_connectors, invoke_connector (por nombre), delete_connector. Un agente puede registrar un conector para "la API de Salesforce" una vez, y luego simplemente decir "llámalo con este payload" de ahí en adelante.
➜ Configuración completa para Claude Desktop / Claude Code / Cursor, persistencia, notas de seguridad y un ejemplo práctico: docs/mcp-integration.md.
Conceptos principales
Target— URL base, protocolo (rest|soap), tiempo de espera, cabeceras por defecto.AuthSpec—type(none,api_key,basic,bearer,oauth2_client_credentials) + un dictconfigcon la forma adecuada para ese tipo. Los tokens OAuth2 se obtienen y se almacenan en caché automáticamente.RequestFormat/ResponseFormat— tipo de contenido (json,xml,soap) más unfield_mapdeclarativo ({"target.path": "$.source.jsonpath"}) para remodelar payloads sin escribir código, o unabody_templatede Jinja2 para control total (requerida para sobres SOAP).InvokeSpec— agrupa los tres anteriores; la unidad de "cómo llegar a un servicio". Guárdalo como unConnectorcon nombre o pásalo en línea por llamada.
Consulta src/mcp_api_connect/core/models.py para el esquema completo, y docs/auth-reference.md para la forma de config que espera cada type de autenticación.
Documentación
docs/mcp-integration.md — configuración completa del cliente MCP (Claude Desktop, Claude Code, Cursor), persistencia, seguridad, referencia de herramientas, ejemplo práctico, solución de problemas
docs/auth-reference.md — campos de
configpara cada tipo de autenticaciónCONTRIBUTING.md — configuración de desarrollo, ejecución de pruebas, expectativas de PR
Extensión
Nuevo tipo de autenticación: implementa
AuthStrategy, regístralo medianteengine.register_auth_strategy(...).Nuevo protocolo (p. ej. GraphQL): implementa
ProtocolAdapter, regístralo medianteengine.register_adapter(...).Nuevo backend de almacenamiento de conectores: implementa
ConnectorStore(incluyeInMemoryConnectorStoreySqliteConnectorStore, credenciales cifradas en reposo mediante Fernet).
Hoja de ruta
Flujo de código de autorización OAuth2, mTLS, estrategias de autenticación AWS SigV4
SOAP basado en WSDL (adaptador opcional respaldado por
zeep, sin necesidad de sobre escrito a mano)Adaptador GraphQL
ConnectorStorerespaldado por PostgresPolíticas de reintento/backoff + limitación de tasa por conector
Lista blanca de destinos segura contra SSRF para despliegues públicos
Desarrollo
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,api,storage,mcp]"
pytestLicencia
MIT — consulta LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Any REST/SOAP/GraphQL/OData/SQL API as MCP tools for Claude & ChatGPT. 561 connectors: SAP, ERP.
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Connect AI agents to 580+ APIs with OAuth or API-key auth. Hosted gateway; API pricing varies.
- ElaichiOAuthai.elaichi
Governed AI agents for the software your company already runs. 400+ connectors, one endpoint.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to connect and interact with common business platforms like Shopify, WordPress, and Calendly via pre-built connectors for tasks such as product management, content operations, and scheduling.1322 PyPI1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to connect to any API by loading OpenAPI, GraphQL, gRPC, or SOAP specs, with a built-in catalog of 2500+ public APIs, supporting secure execution, response filtering, chaining, and parallel calls.34 PyPI4MIT
- AlicenseNot gradedqualityBmaintenanceEnables importing OpenAPI, Swagger, Google Discovery, GraphQL, and HTTP MCP definitions and generating typed agent tools whose calls map to HTTP endpoints under explicit execution policies such as allow, approval, or block. A hosted runtime adds credentials, OAuth scopes, request validation, approvals, and execution traces for safely exposing those endpoints to agents.741 npm4MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to discover and call existing OpenAPI services through governed tools, enforcing policy, approval for destructive operations, and credential handling before requests execute.1Apache 2.0