API Manager Server

API Manager Server

Multi-protocol server for managing APIs, compatible with ChatGPT Plugins and Claude MCP, enabling storage, search, and management of API configurations.

Category
访问服务器

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: search y fetch segú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

  1. Despliega el servidor en tu plataforma preferida (Heroku, Railway, etc.)

  2. 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
  1. 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
  2. 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

  1. "Busca APIs relacionadas con autenticación"

    • ChatGPT usará search con query "authentication"
    • Mostrará todas las APIs que contengan esa palabra
  2. "Muéstrame los detalles de la API auth-service"

    • ChatGPT usará fetch con id "auth-service"
    • Mostrará documentación completa, endpoints, autenticación, etc.
  3. "¿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 manifest
  • GET /openapi.yaml - OpenAPI specification
  • GET /oauth/authorize - OAuth2 authorization
  • POST /oauth/token - OAuth2 token exchange
  • POST /oauth/refresh - OAuth2 token refresh
  • POST /search - Search APIs (ChatGPT tool)
  • POST /fetch - Fetch API details (ChatGPT tool)
  • GET /events - Server-Sent Events
  • GET /health - Health check

Claude MCP Endpoints (Legacy)

  • POST /auth/token - Obtener token JWT
  • POST /api/tools - Ejecutar herramientas MCP
  • GET /health - Estado del servidor

WebSocket (Solo MCP)

  • ws://tu-servidor:3000/mcp?apiKey=TU_API_KEY
  • ws://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:

  1. Despliega el servidor en tu plataforma preferida
  2. 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 texto
  • fetch: Obtener información detallada de una API específica

Claude MCP Tools (Legacy)

  • save_api: Guardar configuración de API
  • make_request: Hacer peticiones a APIs guardadas
  • list_apis: Listar todas las APIs
  • get_api: Obtener detalles de una API
  • delete_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.json sea accesible
  • Asegúrate de que el servidor esté en HTTPS en producción

Error: "OAuth2 authorization failed"

  • Verifica OAUTH_CLIENT_ID y OAUTH_CLIENT_SECRET
  • Confirma que REDIRECT_URI coincide 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, no ws://

General Issues

Error: "Database connection failed"

  • Verifica MONGODB_URI en variables de entorno
  • Confirma que MongoDB está ejecutándose
  • Revisa permisos de red si usas MongoDB Atlas

🚀 Próximos Pasos

  1. Mejoras de Autenticación: Implementar scopes más específicos para OAuth2
  2. Rate Limiting: Agregar limitación de velocidad por usuario
  3. Webhooks: Soporte para notificaciones de cambios en APIs
  4. API Documentation: Auto-generación de documentación de APIs guardadas
  5. Monitoring: Métricas avanzadas y logging estructurado

📞 Soporte

Si necesitas ayuda:

  1. Revisa la sección de Troubleshooting
  2. Verifica que todas las variables de entorno estén configuradas
  3. Consulta los logs del servidor para errores específicos
  4. Abre un issue en el repositorio con detalles completos

📝 Licencia

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选