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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。