API Manager Server
Multi-protocol server for managing APIs, compatible with ChatGPT Plugins and Claude MCP, enabling storage, search, and management of API configurations.
README
API Manager Server
Un servidor multi-protocolo para gestionar APIs, compatible con ChatGPT Plugins y Claude MCP (Model Context Protocol).
🚀 Características
ChatGPT Plugin Compatible
- 2 Tools Obligatorios:
searchyfetchsegún especificación oficial - OAuth2 Authentication: Flujo completo de autenticación para ChatGPT
- Server-Sent Events (SSE): Endpoint de eventos en tiempo real
- Plugin Manifest: Configuración automática para ChatGPT
- OpenAPI 3.0: Especificación completa de la API
Claude MCP Compatible
- Servidor WebSocket: Protocolo MCP nativo
- 5 Tools MCP: save_api, make_request, list_apis, get_api, delete_api
- Autenticación JWT y API Keys: Seguridad integrada
Características Generales
- Base de datos MongoDB: Almacenamiento persistente con búsqueda
- Multi-usuario: Soporte para múltiples usuarios con aislamiento de datos
- Docker Ready: Containerizado para fácil despliegue
- Compatible con múltiples nubes: AWS, Heroku, Railway, etc.
📦 Instalación Local
# Clonar el repositorio
git clone <tu-repo>
cd api-manager-server
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus configuraciones
# Compilar TypeScript
npm run build
# Ejecutar servidor ChatGPT (recomendado)
npm run start:chatgpt
# O ejecutar servidor MCP original
npm run start:mcp
🤖 Integración con ChatGPT
Configuración del Plugin
-
Despliega el servidor en tu plataforma preferida (Heroku, Railway, etc.)
-
Configura las variables de entorno necesarias:
# OAuth2 para ChatGPT
OAUTH_CLIENT_ID=chatgpt-mcp-client
OAUTH_CLIENT_SECRET=tu-secret-super-seguro
REDIRECT_URI=https://chatgpt.com/aip/g-callback
# Base de datos y autenticación
MONGODB_URI=tu-mongodb-uri
JWT_SECRET=tu-jwt-secret
API_KEY=tu-api-key
-
Registra el plugin en ChatGPT:
- Ve a ChatGPT Plugin Store (o configuración de plugins)
- Selecciona "Develop your own plugin"
- Ingresa la URL de tu servidor:
https://tu-servidor.com - ChatGPT automáticamente detectará el manifest en
/.well-known/ai-plugin.json
-
Autoriza el plugin:
- ChatGPT te redirigirá al flujo OAuth2
- Acepta los permisos solicitados
- El plugin quedará instalado y listo para usar
Tools Disponibles en ChatGPT
🔍 search
Busca configuraciones de APIs guardadas.
{
"query": "authentication API"
}
Respuesta:
{
"results": [
{
"id": "auth-api",
"title": "auth-api - Authentication Service API",
"url": "https://tu-servidor.com/api/auth-api"
}
]
}
📄 fetch
Obtiene información detallada de una API específica.
{
"id": "auth-api"
}
Respuesta:
{
"id": "auth-api",
"title": "auth-api API Configuration",
"text": "# auth-api API Configuration\n\n## Description\nAuthentication service...",
"url": "https://tu-servidor.com/api/auth-api",
"metadata": {
"baseUrl": "https://api.example.com",
"authType": "bearer",
"hasHeaders": true
}
}
Casos de Uso con ChatGPT
-
"Busca APIs relacionadas con autenticación"
- ChatGPT usará
searchcon query "authentication" - Mostrará todas las APIs que contengan esa palabra
- ChatGPT usará
-
"Muéstrame los detalles de la API auth-service"
- ChatGPT usará
fetchcon id "auth-service" - Mostrará documentación completa, endpoints, autenticación, etc.
- ChatGPT usará
-
"¿Qué APIs tengo configuradas para pagos?"
- ChatGPT buscará APIs con términos relacionados a pagos
- Te dará un resumen de todas las APIs de pago disponibles
🐳 Docker
Construcción y ejecución local
# Construir imagen
npm run docker:build
# Ejecutar con Docker
npm run docker:run
# O usar Docker Compose (incluye MongoDB)
npm run docker:compose
☁️ Despliegue en la Nube
Heroku
# Configurar variables de entorno
export HEROKU_APP_NAME=tu-app-name
export JWT_SECRET=tu-secret
export API_KEY=tu-api-key
export MONGODB_URI=tu-mongodb-uri
# Desplegar
npm run deploy:heroku
Railway
# Instalar Railway CLI
npm install -g @railway/cli
# Desplegar
npm run deploy:railway
AWS ECS
# Configurar AWS CLI y variables
export AWS_REGION=us-east-1
export ECR_REPOSITORY=api-manager-mcp
# Desplegar
npm run deploy:aws
🔧 Variables de Entorno
Para ChatGPT Plugin
# Server
PORT=3000
NODE_ENV=production
# OAuth2 ChatGPT
OAUTH_CLIENT_ID=chatgpt-mcp-client
OAUTH_CLIENT_SECRET=your-super-secure-oauth-secret
REDIRECT_URI=https://chatgpt.com/aip/g-callback
# Security
JWT_SECRET=your-secure-jwt-secret
API_KEY=your-secure-api-key
# Database
MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net
DB_NAME=api_manager
Para Claude MCP (modo legacy)
# Server
PORT=3000
NODE_ENV=production
# Security (solo necesario para MCP)
JWT_SECRET=your-secure-jwt-secret
API_KEY=your-secure-api-key
# Database
MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net
DB_NAME=api_manager
📡 Endpoints
ChatGPT Plugin Endpoints
GET /.well-known/ai-plugin.json- Plugin manifestGET /openapi.yaml- OpenAPI specificationGET /oauth/authorize- OAuth2 authorizationPOST /oauth/token- OAuth2 token exchangePOST /oauth/refresh- OAuth2 token refreshPOST /search- Search APIs (ChatGPT tool)POST /fetch- Fetch API details (ChatGPT tool)GET /events- Server-Sent EventsGET /health- Health check
Claude MCP Endpoints (Legacy)
POST /auth/token- Obtener token JWTPOST /api/tools- Ejecutar herramientas MCPGET /health- Estado del servidor
WebSocket (Solo MCP)
ws://tu-servidor:3000/mcp?apiKey=TU_API_KEYws://tu-servidor:3000/mcp?token=TU_JWT_TOKEN
🔐 Autenticación
Opción 1: API Key
headers: {
'x-api-key': 'tu-api-key'
}
Opción 2: JWT Token
// Obtener token
const response = await fetch('/auth/token', {
method: 'POST',
body: JSON.stringify({ apiKey: 'tu-api-key' })
});
const { token } = await response.json();
// Usar token
headers: {
'Authorization': `Bearer ${token}`
}
📚 Uso con Claude Desktop (MCP Legacy)
Para conectar este servidor MCP con Claude Desktop desde la nube:
- Despliega el servidor en tu plataforma preferida
- Configura Claude Desktop para usar el endpoint WebSocket:
{
"mcpServers": {
"api-manager": {
"command": "npx",
"args": ["@modelcontextprotocol/ws-client", "wss://tu-servidor.com/mcp?apiKey=TU_API_KEY"]
}
}
}
🛠️ Herramientas Disponibles
ChatGPT Plugin Tools
search: Buscar configuraciones de APIs por consulta de textofetch: Obtener información detallada de una API específica
Claude MCP Tools (Legacy)
save_api: Guardar configuración de APImake_request: Hacer peticiones a APIs guardadaslist_apis: Listar todas las APIsget_api: Obtener detalles de una APIdelete_api: Eliminar una API
📈 Monitoreo
El servidor incluye un endpoint de salud:
curl https://tu-servidor.com/health
🔒 Seguridad
- Usa siempre HTTPS en producción
- Cambia las claves por defecto (especialmente OAuth2 secrets)
- Configura CORS apropiadamente para ChatGPT (
https://chatgpt.com) - Implementa rate limiting si es necesario
- Usa MongoDB Atlas o similar para base de datos segura
- Los tokens OAuth2 expiran en 1 hora (configurable)
🐛 Troubleshooting
ChatGPT Plugin Issues
Error: "Plugin manifest not found"
- Verifica que
/.well-known/ai-plugin.jsonsea accesible - Asegúrate de que el servidor esté en HTTPS en producción
Error: "OAuth2 authorization failed"
- Verifica
OAUTH_CLIENT_IDyOAUTH_CLIENT_SECRET - Confirma que
REDIRECT_URIcoincide con ChatGPT - Revisa logs del servidor para errores específicos
Error: "Search/Fetch tools not working"
- Verifica que MongoDB esté conectado correctamente
- Confirma que tienes APIs guardadas para buscar
- Revisa que el token OAuth2 no haya expirado
MCP Legacy Issues
Error: "WebSocket connection failed"
- Verifica que el servidor MCP esté ejecutándose (
npm run start:mcp) - Confirma la API key en la URL de conexión
- Asegúrate de usar
wss://en producción, nows://
General Issues
Error: "Database connection failed"
- Verifica
MONGODB_URIen variables de entorno - Confirma que MongoDB está ejecutándose
- Revisa permisos de red si usas MongoDB Atlas
🚀 Próximos Pasos
- Mejoras de Autenticación: Implementar scopes más específicos para OAuth2
- Rate Limiting: Agregar limitación de velocidad por usuario
- Webhooks: Soporte para notificaciones de cambios en APIs
- API Documentation: Auto-generación de documentación de APIs guardadas
- Monitoring: Métricas avanzadas y logging estructurado
📞 Soporte
Si necesitas ayuda:
- Revisa la sección de Troubleshooting
- Verifica que todas las variables de entorno estén configuradas
- Consulta los logs del servidor para errores específicos
- Abre un issue en el repositorio con detalles completos
📝 Licencia
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.