Plugged.in MCP Server
oficialUn proxy integral que combina múltiples servidores MCP en un solo MCP. Proporciona descubrimiento y gestión de herramientas, indicaciones, recursos y plantillas entre servidores, además de un área de pruebas para depurar al construir servidores MCP.
Documentación
plugged.in MCP Hub — Proxy · Conocimiento · Memoria · Herramientas
La Encrucijada para Intercambios de Datos de IA
Un hub MCP unificado que le da a tu IA Conocimiento, Memoria y Herramientas — no solo un proxy. Gestiona y prueba todos los servidores MCP desde una única conexión mientras potencias flujos de trabajo con reconocimiento de documentos y memoria aumentada en todos los clientes.
📋 Descripción General
El Servidor Proxy MCP de plugged.in es un middleware potente que agrega múltiples servidores del Protocolo de Contexto de Modelo (MCP) en una única interfaz unificada. Obtiene configuraciones de herramientas, prompts y recursos desde la aplicación plugged.in y enruta inteligentemente las solicitudes a los servidores MCP subyacentes apropiados.
Este proxy permite una integración perfecta con cualquier cliente MCP (Claude, Cline, Cursor, etc.) mientras proporciona capacidades avanzadas de gestión a través del ecosistema plugged.in.
Pilares del Hub: Conocimiento · Memoria · Herramientas · Proxy
Conocimiento (RAG v2 / Intercambio de Documentos de IA)
Busca y fundamenta las salidas del modelo con recuperación de documentos unificada y con reconocimiento de atribución. Los servidores MCP pueden crear y gestionar documentos en tu biblioteca con versionado, controles de visibilidad y atribución de modelo. Usa el RAG integrado para buscar en todas las fuentes conectadas y devolver fragmentos relevantes y metadatos.
Memoria (Memoria Persistente de IA)
Memoria de larga duración, con alcance de espacio de trabajo/perfil, que sobrevive a las sesiones. El hub se integra con la memoria persistente de la aplicación plugged.in para que las acciones e ideas del agente puedan almacenarse y recuperarse a través de tareas. Las herramientas de memoria integradas están en la hoja de ruta para exponer patrones get/put/search de baja fricción bajo el mismo modelo de autenticación.
Herramientas
Agrega capacidades integradas con servidores MCP descendentes (STDIO, SSE, HTTP Transmisible). El descubrimiento de herramientas se almacena en caché y puede refrescarse bajo demanda; el descubrimiento a nivel de hub devuelve un catálogo unificado para cualquier cliente MCP. El hub soporta herramientas, recursos, plantillas de recursos y prompts.
Proxy
Una conexión para cada cliente. Ejecútalo como STDIO (por defecto) o HTTP Transmisible con autenticación API opcional y modo sin estado. Funciona con Claude Desktop, Cline, Cursor, MCP Inspector y más; mantén tus configuraciones de cliente existentes mientras centralizas políticas y telemetría.
⭐ ¡Si encuentras útil este proyecto, por favor considera darle una estrella en GitHub! Nos ayuda a llegar a más desarrolladores y nos motiva a seguir mejorando.
✨ Características Clave
🚀 Capacidades Principales
- Zona de Pruebas de IA Integrada: Prueba tus MCPs al instante con Claude, Gemini, OpenAI y xAI sin necesidad de configurar ningún cliente
- Compatibilidad Universal con MCP: Funciona con cualquier cliente MCP incluyendo Claude Desktop, Cline y Cursor
- Soporte Multi-Servidor: Conéctate a servidores MCP STDIO, SSE y HTTP Transmisible
- Modos de Transporte Duales: Ejecuta el proxy como servidor STDIO (por defecto) o HTTP Transmisible
- Búsqueda Unificada de Documentos: Busca en todos los servidores conectados con capacidades RAG integradas
- Intercambio de Documentos de IA (RAG v2): Los servidores MCP pueden crear y gestionar documentos en tu biblioteca con atribución completa
- Notificaciones desde Cualquier Modelo: Recibe notificaciones en tiempo real con entrega opcional por correo electrónico
- Capa Multi-Espacio de Trabajo: Cambia entre diferentes conjuntos de configuraciones MCP con un clic
- Proxy Basado en API: Obtiene capacidades desde las APIs de la aplicación plugged.in en lugar del descubrimiento directo
- Soporte MCP Completo: Maneja herramientas, recursos, plantillas de recursos y prompts
- Instrucciones Personalizadas: Soporta instrucciones específicas del servidor formateadas como prompts MCP
🎯 Novedades en v1.5.0 (RAG v2 - Intercambio de Documentos de IA)
- Creación de Documentos por IA: Los servidores MCP ahora pueden crear documentos directamente en tu biblioteca
- Seguimiento completo de atribución del modelo (qué IA creó/actualizó el documento)
- Historial de versiones con seguimiento de cambios
- Deduplicación de contenido mediante hash SHA-256
- Soporte para múltiples formatos: MD, TXT, JSON, HTML, PDF y más
- Búsqueda Avanzada de Documentos: Consultas RAG mejoradas con filtrado de IA
- Filtrar por modelo de IA, proveedor, rango de fechas, etiquetas y tipo de fuente
- Búsqueda semántica con puntuación de relevancia
- Generación automática de fragmentos con resaltado de palabras clave
- Soporte para filtrar: fuentes
ai_generated,uploadoapi
- Gestión de Documentos vía MCP:
- Establecer visibilidad del documento: privado, espacio de trabajo o público
- Relaciones padre-hijo para versiones de documentos
- Organización basada en perfil junto con alcance basado en proyecto
- Seguimiento del progreso en tiempo real para el procesamiento de documentos
🎯 Características de v1.4.0 (Soporte de Registro v2)
- Gestión de Tokens OAuth: Manejo de autenticación OAuth sin fricciones para servidores MCP HTTP Transmisible
- Recuperación automática de tokens desde la aplicación plugged.in
- Almacenamiento seguro de tokens y mecanismos de refresco
- No se necesita autenticación del lado del cliente
- Sistema de Notificaciones Mejorado: Soporte de notificaciones bidireccional
- Enviar notificaciones a la aplicación plugged.in
- Recibir notificaciones de servidores MCP
- Marcar notificaciones como leídas/no leídas
- Eliminar notificaciones programáticamente
- Analíticas de Tendencias: Seguimiento de actividad en tiempo real
- Cada llamada a herramienta se registra y rastrea
- Contribuye a los cálculos de servidores en tendencia
- Métricas de uso e información de popularidad
- Integración con el Registro: Soporte completo para características del Registro v2
- Descubrimiento automático de servidores desde el registro
- Seguimiento de instalación y métricas
- Soporte para servidores comunitarios
📦 Características de v1.1.0
- Soporte HTTP Transmisible: Soporte completo para servidores MCP descendentes que usan transporte HTTP Transmisible
- Modo Servidor HTTP: Ejecuta el proxy como un servidor HTTP con puertos configurables
- Autenticación Flexible: Autenticación opcional por token Bearer para endpoints HTTP
- Gestión de Sesiones: Elige entre modos de operación con estado (basado en sesión) o sin estado
🎯 Características Principales de v1.0.0
- Notificaciones en Tiempo Real: Rastrea todas las actividades MCP con soporte integral de notificaciones
- Integración RAG: Soporte para consultas mejoradas con documentos a través de la aplicación plugged.in
- Scripts de Inspección: Herramientas de prueba automatizadas para depuración y desarrollo
- Monitorización de Salud: Endpoint de ping integrado para monitorización de conexión
🔧 Categorías de Herramientas
El proxy proporciona dos categorías distintas de herramientas:
🔧 Herramientas Estáticas Integradas (Siempre Disponibles)
Estas herramientas están integradas en el proxy y funcionan sin ninguna configuración de servidor:
pluggedin_discover_tools- Descubrimiento inteligente con caché para resultados instantáneospluggedin_ask_knowledge_base- Búsqueda RAG en tus documentos con capacidades de filtrado de IApluggedin_send_notification- Enviar notificaciones con entrega opcional por correo electrónicopluggedin_create_document- Crear documentos generados por IA en tu bibliotecapluggedin_list_documents- Listar documentos con opciones de filtradopluggedin_search_documents- Buscar documentos específicos por consultapluggedin_get_document- Recuperar el contenido completo de un documento específico por IDpluggedin_update_document- Actualizar o añadir contenido a un documento existente
📋 Herramientas del Portapapeles (Sistema de Memoria)
pluggedin_clipboard_set- Establecer una entrada del portapapeles por nombre (clave semántica) o índicepluggedin_clipboard_get- Obtener entradas del portapapeles por nombre, índice o listar todaspluggedin_clipboard_delete- Eliminar entradas del portapapeles por nombre, índice o limpiar todaspluggedin_clipboard_list- Listar todas las entradas del portapapeles con metadatospluggedin_clipboard_push- Insertar un valor con índice autoincremental (inserción en pila)pluggedin_clipboard_pop- Extraer la entrada con el índice más alto (comportamiento LIFO)
⚡ Herramientas MCP Dinámicas (Desde Servidores Conectados)
Estas herramientas provienen de tus servidores MCP configurados y pueden activarse/desactivarse:
- Herramientas de base de datos (PostgreSQL, SQLite, etc.)
- Herramientas de sistema de archivos
- Herramientas de integración API
- Herramientas personalizadas de cualquier servidor MCP
La herramienta de descubrimiento muestra inteligentemente ambas categorías, dando a los modelos de IA acceso inmediato a todas las capacidades disponibles.
🚀 Uso de la Herramienta de Descubrimiento
# Quick discovery - returns cached data instantly
pluggedin_discover_tools()
# Force refresh - shows current tools + runs background discovery
pluggedin_discover_tools({"force_refresh": true})
# Discover specific server
pluggedin_discover_tools({"server_uuid": "uuid-here"})
Respuesta de Ejemplo:
## 🔧 Static Built-in Tools (Always Available):
1. **pluggedin_discover_tools** - Smart discovery with caching
2. **pluggedin_rag_query** - RAG v2 search across documents with AI filtering
3. **pluggedin_send_notification** - Send notifications
4. **pluggedin_create_document** - (Coming Soon) Create AI-generated documents
## ⚡ Dynamic MCP Tools (8) - From Connected Servers:
1. **query** - Run read-only SQL queries
2. **generate_random_integer** - Generate secure random integers
...
📋 Ejemplos de Uso del Portapapeles
El sistema de portapapeles proporciona memoria persistente para flujos de trabajo de IA:
# Store a named entry (upserts if exists)
pluggedin_clipboard_set({
"name": "customer_context",
"value": "{\"name\": \"John Doe\", \"account_id\": \"12345\"}",
"contentType": "application/json"
})
# Store an indexed entry for ordered pipelines
pluggedin_clipboard_set({
"idx": 0,
"value": "First pipeline step result",
"createdByTool": "data_processor"
})
# Push to stack (auto-incrementing index)
pluggedin_clipboard_push({
"value": "Analysis result from step 1",
"contentType": "text/plain"
})
# Get a specific entry by name
pluggedin_clipboard_get({"name": "customer_context"})
# Pop from stack (LIFO - returns and removes highest index)
pluggedin_clipboard_pop()
# List all entries with metadata
pluggedin_clipboard_list({"limit": 20})
# Delete specific entry
pluggedin_clipboard_delete({"name": "customer_context"})
# Clear all clipboard entries
pluggedin_clipboard_delete({"clearAll": true})
📚 Ejemplos de Uso de RAG v2
El sistema RAG v2 mejorado permite a los servidores MCP crear y buscar documentos con atribución completa de IA:
# Search for documents created by specific AI models
pluggedin_rag_query({
"query": "system architecture",
"filters": {
"modelName": "Claude 3 Opus",
"source": "ai_generated",
"tags": ["technical"]
}
})
# Search across all document sources
pluggedin_rag_query({
"query": "deployment guide",
"filters": {
"dateFrom": "2024-01-01",
"visibility": "workspace"
}
})
# Future: Create AI-generated documents (Coming Soon)
pluggedin_create_document({
"title": "Analysis Report",
"content": "# Market Analysis\n\nDetailed findings...",
"format": "md",
"tags": ["analysis", "market"],
"metadata": {
"model": {
"name": "Claude 3 Opus",
"provider": "Anthropic"
}
}
})
🚀 Inicio Rápido
Prerrequisitos
- Node.js 18+ (recomendado v20+)
- Una clave API de la aplicación plugged.in (consíguela en plugged.in/api-keys)
Instalación
# Install and run with npx (latest v1.0.0)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
🔄 Actualizando a v1.0.0
Para instalaciones existentes, consulta nuestra Guía de Migración para instrucciones detalladas de actualización.
# Quick upgrade
npx -y @pluggedin/[email protected] --pluggedin-api-key YOUR_API_KEY
Configuración para Clientes MCP
Claude Desktop
Añade lo siguiente a tu configuración de Claude Desktop:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cline
Añade lo siguiente a tu configuración de Cline:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cursor
Para Cursor, puedes usar argumentos de línea de comandos en lugar de variables de entorno:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
⚙️ Opciones de Configuración
Variables de Entorno
| Variable | Descripción | Requerida | Por Defecto |
|---|---|---|---|
PLUGGEDIN_API_KEY | Clave API de la aplicación plugged.in | Sí | - |
PLUGGEDIN_API_BASE_URL | URL base para la aplicación plugged.in | No | https://plugged.in |
Argumentos de Línea de Comandos
Los argumentos de línea de comandos tienen prioridad sobre las variables de entorno:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY --pluggedin-api-base-url https://your-custom-url.com
Opciones de Transporte
| Opción | Descripción | Por Defecto |
|---|---|---|
--transport <type> | Tipo de transporte: stdio o streamable-http | stdio |
--port <number> | Puerto para el servidor HTTP Transmisible | 12006 |
--stateless | Habilitar modo sin estado para HTTP Transmisible | false |
--require-api-auth | Requerir clave API para solicitudes HTTP Transmisible | false |
Para una lista completa de opciones:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --help
🌐 Modo HTTP Transmisible
El proxy puede ejecutarse como un servidor HTTP en lugar de STDIO, permitiendo acceso basado en web y conexiones remotas.
Uso Básico
# Run as HTTP server on default port (12006)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --pluggedin-api-key YOUR_API_KEY
# Custom port
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --port 8080 --pluggedin-api-key YOUR_API_KEY
# With authentication required
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --require-api-auth --pluggedin-api-key YOUR_API_KEY
# Stateless mode (new session per request)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --stateless --pluggedin-api-key YOUR_API_KEY
Endpoints HTTP
POST /mcp- Enviar mensajes MCPGET /mcp- Flujo de eventos enviados por el servidor (opcional)DELETE /mcp- Terminar sesiónGET /health- Endpoint de verificación de salud
Gestión de Sesiones
En modo con estado (por defecto), usa la cabecera mcp-session-id para mantener sesiones:
# First request creates a session
curl -X POST http://localhost:12006/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
# Subsequent requests use the same session
curl -X POST http://localhost:12006/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: YOUR_SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"tool_name"},"id":2}'
Autenticación
Al usar --require-api-auth, incluye tu clave API como token Bearer:
curl -X POST http://localhost:12006/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"ping","id":1}'
🐳 Uso con Docker
También puedes construir y ejecutar el servidor proxy usando Docker.
Construyendo la Imagen
Asegúrate de tener Docker instalado y en funcionamiento. Navega al directorio pluggedin-mcp y ejecuta:
docker build -t pluggedin-mcp-proxy:latest .
Se incluye un archivo .dockerignore para optimizar el contexto de construcción.
Ejecutando el Contenedor
Modo STDIO (Por Defecto)
Ejecuta el contenedor en modo STDIO para pruebas con MCP Inspector:
docker run -it --rm \
-e PLUGGEDIN_API_KEY="YOUR_API_KEY" \
-e PLUGGEDIN_API_BASE_URL="YOUR_API_BASE_URL" \
--name pluggedin-mcp-container \
pluggedin-mcp-proxy:latest
Modo HTTP Transmisible
Ejecuta el contenedor como un servidor HTTP:
docker run -d --rm \
-e PLUGGEDIN_API_KEY="YOUR_API_KEY" \
-e PLUGGEDIN_API_BASE_URL="YOUR_API_BASE_URL" \
-p 12006:12006 \
--name pluggedin-mcp-http \
pluggedin-mcp-proxy:latest \
--transport streamable-http --port 12006
Reemplaza YOUR_API_KEY y YOUR_API_BASE_URL (si no usas el puerto por defecto https://plugged.in).
Probando con MCP Inspector
Mientras el contenedor está en ejecución, puedes conectarte a él usando MCP Inspector:
npx @modelcontextprotocol/inspector docker://pluggedin-mcp-container
Esto se conectará a la entrada/salida estándar del contenedor en ejecución.
Deteniendo el Contenedor
Presiona Ctrl+C en la terminal donde se está ejecutando docker run. La bandera --rm asegura que el contenedor se elimine automáticamente al detenerse.
☁️ Despliegue en Smithery Cloud
Despliega el Proxy MCP de plugged.in en Smithery Cloud para acceso alojado y siempre disponible a tus servidores MCP.
Inicio Rápido
- Visite smithery.ai e inicie sesión
- Conecte su cuenta de GitHub y seleccione el repositorio
pluggedin-mcp - Configure su clave API de Plugged.in en la interfaz de Smithery
- Despliegue y obtenga su endpoint HTTPS
Beneficios
- Disponibilidad 24/7: Su proxy siempre está en ejecución
- Configuración Cero: Smithery detecta automáticamente la configuración desde
smithery.yaml - Escalado Automático: Maneja múltiples conexiones concurrentes
- Acceso Web: Perfecto para aplicaciones web y clientes remotos
Documentación
Para instrucciones completas de despliegue, opciones de configuración, solución de problemas y detalles técnicos, consulte:
📖 Guía de Despliegue de Smithery
Agentes Autónomos (Vista previa)
El hub está diseñado para soportar bucles agénticos de extremo a extremo:
MCP Client → plugged.in MCP Hub → (Plan → Act → Reflect)
↘ Knowledge ↘ Memory ↘ Tools
- Planificar — derivar objetivos y restricciones, formar grafos de tareas.
- Actuar — llamar herramientas del catálogo unificado; enrutar de forma segura a través de servidores STDIO/SSE/HTTP.
- Reflexionar — persistir resultados en Memoria y Conocimiento (documentos, notas, artefactos) para mejorar los pasos subsiguientes.
Seguridad y Operaciones
Habilite --require-api-auth en modo HTTP Transmisible; use listas de permitidos para comandos, argumentos y variables de entorno. Combine la validación a nivel de servidor con avisos del lado del cliente reforzados contra la inyección de avisos. Aproveche el registro/telemetría existente para rastrear el uso de herramientas y las mutaciones de documentos.
🏗️ Arquitectura del Sistema
El Servidor Proxy MCP de plugged.in actúa como un puente entre los clientes MCP y múltiples servidores MCP subyacentes:
sequenceDiagram
participant MCPClient as MCP Client (e.g. Claude Desktop)
participant PluggedinMCP as plugged.in MCP Proxy
participant PluggedinApp as plugged.in App
participant MCPServers as Underlying MCP Servers
MCPClient ->> PluggedinMCP: Request list tools/resources/prompts
PluggedinMCP ->> PluggedinApp: Get capabilities via API
PluggedinApp ->> PluggedinMCP: Return capabilities (prefixed)
MCPClient ->> PluggedinMCP: Call tool/read resource/get prompt
alt Standard capability
PluggedinMCP ->> PluggedinApp: Resolve capability to server
PluggedinApp ->> PluggedinMCP: Return server details
PluggedinMCP ->> MCPServers: Forward request to target server
MCPServers ->> PluggedinMCP: Return response
else Custom instruction
PluggedinMCP ->> PluggedinApp: Get custom instruction
PluggedinApp ->> PluggedinMCP: Return formatted messages
end
PluggedinMCP ->> MCPClient: Return response
alt Discovery tool (Smart Caching)
MCPClient ->> PluggedinMCP: Call pluggedin_discover_tools
alt Cached data available
PluggedinMCP ->> PluggedinApp: Check cached capabilities
PluggedinApp ->> PluggedinMCP: Return cached tools/resources/prompts
PluggedinMCP ->> MCPClient: Return instant results (static + dynamic)
else Force refresh or no cache
PluggedinMCP ->> PluggedinApp: Trigger background discovery
PluggedinMCP ->> MCPClient: Return current tools + "discovery running"
PluggedinApp ->> MCPServers: Connect and discover capabilities (background)
MCPServers ->> PluggedinApp: Return fresh capabilities
end
end
🔄 Flujo de Trabajo
- Configuración: El proxy obtiene las configuraciones del servidor desde la App de plugged.in
- Descubrimiento Inteligente (
pluggedin_discover_tools):- Verificación de Caché: Primero verifica si existen datos en caché (< 1 segundo)
- Respuesta Instantánea: Devuelve herramientas estáticas + herramientas dinámicas en caché inmediatamente
- Actualización en Segundo Plano: Para
force_refresh=true, ejecuta el descubrimiento en segundo plano mientras muestra las herramientas actuales - Descubrimiento Completo: Solo ejecuta un descubrimiento completo si no existen datos en caché
- Listado de Capacidades: El proxy obtiene las capacidades descubiertas desde las APIs de la App de plugged.in
tools/list: Obtiene desde/api/tools(incluye herramientas estáticas + dinámicas)resources/list: Obtiene desde/api/resourcesresource-templates/list: Obtiene desde/api/resource-templatesprompts/list: Obtiene desde/api/promptsy/api/custom-instructions, fusiona los resultados
- Resolución de Capacidades: El proxy resuelve las capacidades a los servidores de destino
tools/call: Analiza el prefijo del nombre de la herramienta, busca el servidor en el mapa internoresources/read: Llama a/api/resolve/resource?uri=...para obtener los detalles del servidorprompts/get: Verifica el prefijo de instrucción personalizada o llama a/api/resolve/prompt?name=...
- Enrutamiento de Solicitudes: Las solicitudes se enrutan al servidor MCP subyacente apropiado
- Manejo de Respuestas: Las respuestas de los servidores subyacentes se devuelven al cliente
🔒 Características de Seguridad
El Proxy MCP de plugged.in implementa medidas de seguridad integrales para proteger su sistema y datos:
Validación y Saneamiento de Entradas
- Prevención de Inyección de Comandos: Todos los comandos y argumentos se validan contra listas de permitidos antes de la ejecución
- Seguridad de Variables de Entorno: Análisis seguro de archivos
.envcon manejo adecuado de comillas y valores multilínea - Validación de Tokens: Patrones regex fuertes para claves API y tokens de autenticación (32-64 caracteres hexadecimales)
Seguridad de Red
- Protección SSRF: La validación de URL bloquea el acceso a:
- Direcciones de localhost y loopback (127.0.0.1, ::1)
- Rangos de IP privadas (10.x, 172.16-31.x, 192.168.x)
- Direcciones de enlace local (169.254.x)
- Rangos de multidifusión y reservados
- Puertos de servicios internos comunes (SSH, bases de datos, etc.)
- Validación de Cabeceras: Protección contra inyección de cabeceras con:
- Bloqueo de cabeceras peligrosas
- Validación de nombres de cabecera conforme a RFC 7230
- Detección de caracteres de control
- Límites de tamaño de cabecera (8KB máx.)
- Limitación de Tasa:
- Llamadas a herramientas: 60 solicitudes por minuto
- Llamadas a la API: 100 solicitudes por minuto
- Saneamiento de Errores: Previene la divulgación de información saneando los mensajes de error
Seguridad de Procesos
- Ejecución Segura de Comandos: Usa
execFile()en lugar deexec()para prevenir la inyección de shell - Lista de Comandos Permitidos: Solo permite la ejecución de:
node,npx- Comandos de Node.jspython,python3- Comandos de Pythonuv,uvx,uvenv- Herramientas UV de Python
- Saneamiento de Argumentos: Elimina metacaracteres de shell y caracteres de control de todos los argumentos
- Validación de Variables de Entorno: Solo permite claves alfanuméricas con guiones bajos
Seguridad HTTP Transmisible
- Autenticación Perezosa: El descubrimiento de herramientas no requiere autenticación, mejorando la compatibilidad
- Seguridad de Sesión: Generación de ID de sesión criptográficamente segura
- Protección CORS: Cabeceras CORS configurables para acceso web
- Límites de Tamaño de Solicitud: Previene DoS a través de cargas útiles grandes
Utilidades de Seguridad
Un módulo dedicado security-utils.ts proporciona:
- Validación de token Bearer
- Validación de URL con protección SSRF
- Saneamiento de argumentos de comandos
- Validación de variables de entorno
- Implementación de limitación de tasa
- Saneamiento de mensajes de error
Para una implementación de seguridad detallada, consulte SECURITY.md.
🧩 Integración con la App de plugged.in
El Servidor Proxy MCP de plugged.in está diseñado para funcionar sin problemas con la App de plugged.in, que proporciona:
- Una interfaz basada en web para gestionar configuraciones de servidores MCP
- Descubrimiento centralizado de capacidades (Herramientas, Recursos, Plantillas, Avisos)
- Biblioteca de Documentos RAG v2: Cargue documentos y habilite contenido generado por IA con atribución completa
- Gestión de instrucciones personalizadas
- Soporte multi-espacio de trabajo para diferentes conjuntos de configuración
- Un área de pruebas interactiva para probar herramientas MCP con cualquier modelo de IA
- Autenticación de usuarios y gestión de claves API
- Intercambio de Documentos de IA: Cree, busque y gestione documentos con seguimiento de atribución de modelos
📚 Recursos Relacionados
- Repositorio de la App de plugged.in
- Especificación del Protocolo de Contexto de Modelo (MCP)
- Documentación de Claude Desktop
- Documentación de Cline
🤝 Contribuciones
¡Las contribuciones son bienvenidas! Por favor, siéntase libre de enviar una Solicitud de Extracción.
📝 Actualizaciones Recientes
Versión 1.9.0 (Septiembre 2025) - Mejoras de Seguridad
🔒 Saneamiento de HTML Mejorado
- Saneamiento Estándar de la Industria: Se reemplazó el saneamiento de HTML personalizado basado en regex con la biblioteca
sanitize-html - Prevención de XSS: Protección integral contra ataques de secuencias de comandos entre sitios
- Seguridad de Atributos HTML: Saneamiento mejorado para contextos de atributos HTML (comillas, ampersands)
- Inyección de Cadenas de Formato: Se corrigieron vulnerabilidades de inyección de cadenas de formato en el registro
- Pruebas de Seguridad: Cobertura de pruebas integral para todas las funciones de saneamiento
🛡️ Mejoras de Seguridad
- Cumplimiento de CodeQL: Se resolvieron todas las vulnerabilidades de seguridad identificadas por el análisis CodeQL de GitHub
- Validación de Entradas: Se fortaleció la validación y saneamiento de entradas en todas las funciones
- Actualizaciones de Dependencias: Se añadió
sanitize-htmlpara un filtrado robusto de contenido HTML - Cobertura de Pruebas: Se mejoró el conjunto de pruebas de seguridad con verificación de prevención de ataques XSS
Versión 1.5.0 (Enero 2025) - RAG v2
🤖 Intercambio de Documentos de IA
- Documentos Generados por IA: Los servidores MCP ahora pueden crear documentos en su biblioteca con atribución completa de IA
- Seguimiento de Atribución de Modelos: Historial completo de qué modelos de IA crearon o actualizaron cada documento
- Búsqueda Avanzada de Documentos: Filtre por modelo de IA, proveedor, fecha, etiquetas y tipo de fuente
- Versionado de Documentos: Rastree cambios y mantenga el historial de versiones para contenido generado por IA
- Soporte Multi-Fuente: Documentos desde cargas, generación de IA o integraciones de API
🔍 Capacidades RAG Mejoradas
- Búsqueda Semántica: Puntuación de relevancia mejorada con búsqueda de texto completo de PostgreSQL
- Filtrado Inteligente: Filtre resultados por visibilidad, atribución de modelo y fuente del documento
- Generación de Fragmentos: Extracción automática de fragmentos con resaltado de palabras clave
- Optimización del Rendimiento: Consultas más rápidas con indexación optimizada
Versión 1.2.0 (Enero 2025)
🔒 Mejoras de Seguridad
- Validación de URL: Protección SSRF integral que bloquea IPs privadas, localhost y puertos peligrosos
- Lista de Comandos Permitidos: Solo se pueden ejecutar comandos aprobados (node, npx, python, etc.)
- Saneamiento de Cabeceras: Protección contra ataques de inyección de cabeceras
- Autenticación Perezosa: Compatibilidad mejorada con Smithery con descubrimiento de herramientas sin autenticación
🚀 Mejoras de Rendimiento
- Compilaciones Docker Optimizadas: Compilaciones multi-etapa para una huella de contenedor mínima
- Solo Dependencias de Producción: Archivos de prueba y dependencias de desarrollo excluidos de las imágenes Docker
- Eficiencia de Recursos: Diseñado para despliegue en entornos con recursos limitados
🔧 Mejoras Técnicas
- Manejo de errores mejorado en el transporte HTTP Transmisible
- Mejor limpieza de sesiones y gestión de memoria
- Tipos de TypeScript y organización del código mejorados
Versión 1.1.0 (Diciembre 2024)
🚀 Nuevas Funcionalidades
- Soporte HTTP Transmisible: Conéctese a servidores MCP descendentes utilizando el moderno transporte HTTP Transmisible
- Modo Servidor HTTP: Ejecute el proxy como un servidor HTTP para acceso basado en web
- Gestión de Sesiones Flexible: Elija entre modos sin estado o con estado
- Opciones de Autenticación: Autenticación opcional con token Bearer para endpoints HTTP
- Monitorización de Salud: Endpoint
/healthpara monitorización del servicio
🔧 Mejoras Técnicas
- SDK de MCP actualizado a v1.13.1 para el último soporte de protocolo
- Se añadió integración con Express.js para la funcionalidad del servidor HTTP
- Tipos de TypeScript mejorados para una mejor experiencia del desarrollador
Versión 1.0.0 (Junio 2025)
🎯 Funcionalidades Principales
- Sistema de Notificaciones en Tiempo Real: Rastree todas las actividades MCP con soporte integral de notificaciones
- Integración RAG: Soporte para consultas mejoradas con documentos a través de la App de plugged.in
- Scripts de Inspector: Nuevas herramientas de prueba automatizadas para depuración y desarrollo
- Monitorización de Salud: Endpoint de ping incorporado para monitorización de conexiones
🔒 Mejoras de Seguridad
- Validación de Entradas: Validación y saneamiento estándar de la industria para todas las entradas
- Seguridad de URL: Validación de URL mejorada con protección SSRF
- Seguridad del Entorno: Análisis seguro de variables de entorno con dotenv
- Saneamiento de Errores: Previene la divulgación de información en las respuestas de error
🐛 Correcciones de Errores
- Se corrigió la interferencia del protocolo JSON-RPC (separación stdout vs stderr)
- Se resolvió la validación de URL de localhost para entornos de desarrollo
- Se corrigió el manejo de claves API en los scripts de inspector
- Se mejoró la estabilidad de la conexión y la gestión de memoria
🔧 Herramientas para Desarrolladores
- Nuevos scripts de inspector para pruebas automatizadas
- Mensajes de error y capacidades de depuración mejorados
- Registro estructurado con uso adecuado de stderr
- Seguridad de tipos TypeScript mejorada
Consulte las Notas de la Versión para obtener detalles completos.
🧪 Pruebas y Desarrollo
Desarrollo Local
Las pruebas se incluyen para fines de desarrollo, pero se excluyen de las compilaciones Docker para minimizar la huella del contenedor.
# Run tests locally
npm test
# or
./scripts/test-local.sh
# Run tests in watch mode
npm run test:watch
# Run tests with UI
npm run test:ui
Compilaciones Docker Ligeras
La imagen Docker está optimizada para una huella mínima:
- Proceso de compilación multi-etapa
- Solo dependencias de producción en la imagen final
- Archivos de prueba y dependencias de desarrollo excluidos
- Optimizado para entornos con recursos limitados
# Build optimized Docker image
docker build -t pluggedin-mcp .
# Check image size
docker images pluggedin-mcp
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.
🙏 Agradecimientos
- Inspirado por el Servidor Proxy MCP
- Construido sobre el Protocolo de Contexto de Modelo