plugged.in MCP Proxy Server
Um middleware que agrega múltiplos servidores Model Context Protocol (MCP) em uma única interface unificada.
Documentação
plugged.in MCP Hub — Proxy · Knowledge · Memory · Tools
O Cruzamento para Trocas de Dados de IA
Um hub MCP unificado que dá à sua IA Knowledge, Memory e Tools — não apenas um proxy. Gerencie e teste todos os servidores MCP a partir de uma única conexão, enquanto potencializa fluxos de trabalho com reconhecimento de documentos e memória aumentada em vários clientes.
📋 Visão Geral
O plugged.in MCP Proxy Server é um middleware poderoso que agrega múltiplos servidores Model Context Protocol (MCP) em uma única interface unificada. Ele busca configurações de ferramentas, prompts e recursos do plugged.in App e roteia inteligentemente as solicitações para os servidores MCP subjacentes apropriados.
Este proxy permite integração perfeita com qualquer cliente MCP (Claude, Cline, Cursor, etc.) enquanto fornece capacidades avançadas de gerenciamento através do ecossistema plugged.in.
Pilares do Hub: Knowledge · Memory · Tools · Proxy
Knowledge (RAG v2 / Troca de Documentos de IA)
Pesquise e fundamente as saídas do modelo com recuperação unificada de documentos com atribuição. Servidores MCP podem criar e gerenciar documentos em sua biblioteca com versionamento, controles de visibilidade e atribuição de modelo. Use o RAG integrado para pesquisar em todas as fontes conectadas e retornar trechos e metadados relevantes.
Memory (Memória de IA Persistente)
Memória de longa duração, com escopo de workspace/perfil, que sobrevive às sessões. O hub se integra à memória persistente do plugged.in App para que ações e insights do agente possam ser armazenados e recuperados entre tarefas. Ferramentas de memória integradas estão no roadmap para expor padrões get/put/search de baixa fricção sob o mesmo modelo de autenticação.
Tools
Agregue capacidades integradas com servidores MCP downstream (STDIO, SSE, Streamable HTTP). A descoberta de ferramentas é armazenada em cache e pode ser atualizada sob demanda; a descoberta em nível de hub retorna um catálogo unificado para qualquer cliente MCP. O hub suporta ferramentas, recursos, modelos de recursos e prompts.
Proxy
Uma conexão para cada cliente. Execute como STDIO (padrão) ou Streamable HTTP com autenticação de API opcional e modo stateless. Funciona com Claude Desktop, Cline, Cursor, MCP Inspector e mais; mantenha suas configurações de cliente existentes enquanto centraliza políticas e telemetria.
⭐ Se você achar este projeto útil, considere dar uma estrela no GitHub! Isso nos ajuda a alcançar mais desenvolvedores e nos motiva a continuar melhorando.
✨ Principais Recursos
🚀 Capacidades Principais
- AI Playground Integrado: Teste seus MCPs instantaneamente com Claude, Gemini, OpenAI e xAI sem qualquer configuração de cliente
- Compatibilidade Universal com MCP: Funciona com qualquer cliente MCP, incluindo Claude Desktop, Cline e Cursor
- Suporte a Múltiplos Servidores: Conecte-se a servidores MCP STDIO, SSE e Streamable HTTP
- Modos de Transporte Duplos: Execute o proxy como STDIO (padrão) ou servidor Streamable HTTP
- Pesquisa Unificada de Documentos: Pesquise em todos os servidores conectados com capacidades RAG integradas
- Troca de Documentos de IA (RAG v2): Servidores MCP podem criar e gerenciar documentos em sua biblioteca com atribuição completa
- Notificações de Qualquer Modelo: Receba notificações em tempo real com entrega opcional por e-mail
- Camada Multi-Workspace: Alterne entre diferentes conjuntos de configurações MCP com um clique
- Proxy Orientado por API: Busca capacidades das APIs do plugged.in App em vez de descoberta direta
- Suporte MCP Completo: Lida com ferramentas, recursos, modelos de recursos e prompts
- Instruções Personalizadas: Suporta instruções específicas do servidor formatadas como prompts MCP
🎯 Novo na v1.5.0 (RAG v2 - Troca de Documentos de IA)
- Criação de Documentos de IA: Servidores MCP agora podem criar documentos diretamente em sua biblioteca
- Rastreamento completo de atribuição de modelo (qual IA criou/atualizou o documento)
- Histórico de versões com rastreamento de alterações
- Deduplicação de conteúdo via hash SHA-256
- Suporte a múltiplos formatos: MD, TXT, JSON, HTML, PDF e mais
- Pesquisa Avançada de Documentos: Consultas RAG aprimoradas com filtragem de IA
- Filtre por modelo de IA, provedor, intervalo de datas, tags e tipo de fonte
- Pesquisa semântica com pontuação de relevância
- Geração automática de trechos com destaque de palavras-chave
- Suporte para filtragem de fontes:
ai_generated,uploadouapi
- Gerenciamento de Documentos via MCP:
- Defina a visibilidade do documento: privado, workspace ou público
- Relações pai-filho para versões de documentos
- Organização baseada em perfil juntamente com escopo baseado em projeto
- Rastreamento de progresso em tempo real para processamento de documentos
🎯 Recursos da v1.4.0 (Suporte Registry v2)
- Gerenciamento de Tokens OAuth: Tratamento perfeito de autenticação OAuth para servidores MCP Streamable HTTP
- Recuperação automática de tokens do plugged.in App
- Armazenamento seguro de tokens e mecanismos de atualização
- Nenhuma autenticação necessária no lado do cliente
- Sistema de Notificação Aprimorado: Suporte a notificações bidirecionais
- Envie notificações para o plugged.in App
- Receba notificações de servidores MCP
- Marque notificações como lidas/não lidas
- Exclua notificações programaticamente
- Análises de Tendências: Rastreamento de atividades em tempo real
- Cada chamada de ferramenta é registrada e rastreada
- Contribui para cálculos de servidores em tendência
- Métricas de uso e insights de popularidade
- Integração com Registry: Suporte completo para recursos do Registry v2
- Descoberta automática de servidores a partir do registry
- Rastreamento de instalação e métricas
- Suporte a servidores da comunidade
📦 Recursos da v1.1.0
- Suporte Streamable HTTP: Suporte completo para servidores MCP downstream usando transporte Streamable HTTP
- Modo Servidor HTTP: Execute o proxy como um servidor HTTP com portas configuráveis
- Autenticação Flexível: Autenticação opcional com token Bearer para endpoints HTTP
- Gerenciamento de Sessões: Escolha entre modos de operação stateful (baseado em sessão) ou stateless
🎯 Recursos Principais da v1.0.0
- Notificações em Tempo Real: Rastreie todas as atividades MCP com suporte abrangente a notificações
- Integração RAG: Suporte para consultas aprimoradas por documentos através do plugged.in App
- Scripts de Inspeção: Ferramentas de teste automatizadas para depuração e desenvolvimento
- Monitoramento de Saúde: Endpoint de ping integrado para monitoramento de conexão
🔧 Categorias de Ferramentas
O proxy fornece duas categorias distintas de ferramentas:
🔧 Ferramentas Integradas Estáticas (Sempre Disponíveis)
Estas ferramentas são integradas ao proxy e funcionam sem qualquer configuração de servidor:
pluggedin_discover_tools- Descoberta inteligente com cache para resultados instantâneospluggedin_ask_knowledge_base- Pesquisa RAG em seus documentos com capacidades de filtragem de IApluggedin_send_notification- Envie notificações com entrega opcional por e-mailpluggedin_create_document- Crie documentos gerados por IA em sua bibliotecapluggedin_list_documents- Liste documentos com opções de filtragempluggedin_search_documents- Pesquise documentos específicos por consultapluggedin_get_document- Recupere o conteúdo completo de um documento específico por IDpluggedin_update_document- Atualize ou acrescente a um documento existente
📋 Ferramentas de Clipboard (Sistema de Memória)
pluggedin_clipboard_set- Defina uma entrada de clipboard por nome (chave semântica) ou índicepluggedin_clipboard_get- Obtenha entradas de clipboard por nome, índice ou liste todaspluggedin_clipboard_delete- Exclua entradas de clipboard por nome, índice ou limpe todaspluggedin_clipboard_list- Liste todas as entradas de clipboard com metadadospluggedin_clipboard_push- Empurre um valor com índice de incremento automático (push de pilha)pluggedin_clipboard_pop- Remova a entrada de índice mais alto (comportamento LIFO)
⚡ Ferramentas MCP Dinâmicas (De Servidores Conectados)
Estas ferramentas vêm dos seus servidores MCP configurados e podem ser ativadas/desativadas:
- Ferramentas de banco de dados (PostgreSQL, SQLite, etc.)
- Ferramentas de sistema de arquivos
- Ferramentas de integração de API
- Ferramentas personalizadas de qualquer servidor MCP
A ferramenta de descoberta mostra inteligentemente ambas as categorias, dando aos modelos de IA acesso imediato a todas as capacidades disponíveis.
🚀 Uso da Ferramenta de Descoberta
# 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"})
Exemplo de Resposta:
## 🔧 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
...
📋 Exemplos de Uso do Clipboard
O sistema de clipboard fornece memória persistente para fluxos de trabalho 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})
📚 Exemplos de Uso do RAG v2
O sistema RAG v2 aprimorado permite que servidores MCP criem e pesquisem documentos com atribuição 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"
}
}
})
🚀 Início Rápido
Pré-requisitos
- Node.js 22.12+ (o piso que
engines.nodedeclara; sanitize-html exige isso) - Uma chave de API do plugged.in App (obtenha uma em plugged.in/api-keys)
Instalação
# Install and run with npx (latest v1.0.0)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
🔄 Atualizando para v1.0.0
Para instalações existentes, consulte nosso Guia de Migração para instruções detalhadas de atualização.
# Quick upgrade
npx -y @pluggedin/pluggedin-mcp-proxy@1.0.0 --pluggedin-api-key YOUR_API_KEY
Configuração para Clientes MCP
Claude Desktop
Adicione o seguinte à sua configuração do Claude Desktop:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cline
Adicione o seguinte à sua configuração do Cline:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cursor
Para o Cursor, você pode usar argumentos de linha de comando em vez de variáveis de ambiente:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
⚙️ Opções de Configuração
Variáveis de Ambiente
| Variável | Descrição | Obrigatória | Padrão |
|---|---|---|---|
PLUGGEDIN_API_KEY | Chave de API do plugged.in App | Sim | - |
PLUGGEDIN_API_BASE_URL | URL base do plugged.in App | Não | https://plugged.in |
MCP_ALLOWED_ORIGINS | Streamable HTTP: origens de navegador separadas por vírgula permitidas para chamar o endpoint MCP (solicitações de outras origens recebem 403; solicitações sem cabeçalho Origin não são afetadas). * permite qualquer origem | Não | origens de loopback (http://localhost:*, http://127.0.0.1:*, http://[::1]:*) |
MCP_ALLOWED_HOSTS | Streamable HTTP: nomes extras de Host aceitos no endpoint MCP (proteção contra rebinding de DNS), ex. o nome público de um proxy reverso local. Em um BIND_HOST não-loopback, a verificação se aplica apenas quando isso está definido | Não | nomes de loopback |
Argumentos de Linha de Comando
Argumentos de linha de comando têm precedência sobre variáveis de ambiente:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY --pluggedin-api-base-url https://your-custom-url.com
Opções de Transporte
| Opção | Descrição | Padrão |
|---|---|---|
--transport <type> | Tipo de transporte: stdio ou streamable-http | stdio |
--port <number> | Porta para o servidor Streamable HTTP | 12006 |
--stateless | Ativar modo stateless para Streamable HTTP | false |
--require-api-auth | Exigir chave de API para solicitações Streamable HTTP | false |
Para uma lista completa de opções:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --help
🌐 Modo Streamable HTTP
O proxy pode ser executado como um servidor HTTP em vez de STDIO, permitindo acesso baseado na web e conexões 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 mensagens MCPGET /mcp- Fluxo de eventos enviados pelo servidor (opcional)DELETE /mcp- Encerrar sessãoGET /health- Endpoint de verificação de saúde
Gerenciamento de Sessões
No modo stateful (padrão), use o cabeçalho mcp-session-id para manter sessões:
# 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}'
Autenticação
Ao usar --require-api-auth, inclua sua chave de API como um 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 com Docker
Você também pode construir e executar o servidor proxy usando Docker.
Construindo a Imagem
Certifique-se de ter o Docker instalado e em execução. Navegue até o diretório pluggedin-mcp e execute:
docker build -t pluggedin-mcp-proxy:latest .
Um arquivo .dockerignore está incluído para otimizar o contexto de construção.
Executando o Contêiner
Modo STDIO (Padrão)
Execute o contêiner em modo STDIO para testes com 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 Streamable HTTP
Execute o contêiner como um 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
Substitua YOUR_API_KEY e YOUR_API_BASE_URL (se não estiver usando o https://plugged.in padrão).
Testando com MCP Inspector
Enquanto o contêiner estiver em execução, você pode se conectar a ele usando o MCP Inspector:
npx @modelcontextprotocol/inspector docker://pluggedin-mcp-container
Isso conectará à entrada/saída padrão do contêiner em execução.
Parando o Contêiner
Pressione Ctrl+C no terminal onde docker run está em execução. A flag --rm garante que o contêiner seja removido automaticamente ao parar.
Agentes Autônomos (Prévia)
O hub foi projetado para suportar loops agênticos de ponta a ponta:
MCP Client → plugged.in MCP Hub → (Plan → Act → Reflect)
↘ Knowledge ↘ Memory ↘ Tools
- Planejar — derivar metas e restrições, formar grafos de tarefas.
- Agir — chamar ferramentas do catálogo unificado; rotear com segurança entre servidores STDIO/SSE/HTTP.
- Refletir — persistir resultados na Memória e no Conhecimento (documentos, notas, artefatos) para melhorar etapas subsequentes.
Segurança e Operações
Habilite --require-api-auth no modo HTTP Streamable; use listas de permissões para comandos, argumentos e variáveis de ambiente. Combine validação no nível do servidor com prompts do lado do cliente protegidos contra injeção de prompt. Aproveite o registro/telemetria existente para rastrear o uso de ferramentas e mutações de documentos.
🏗️ Arquitetura do Sistema
O plugged.in MCP Proxy Server atua como uma ponte entre clientes MCP e múltiplos servidores MCP subjacentes:
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
🔄 Fluxo de Trabalho
- Configuração: O proxy busca configurações de servidor no aplicativo plugged.in
- Descoberta Inteligente (
pluggedin_discover_tools):- Verificação de Cache: Primeiro verifica se há dados em cache existentes (< 1 segundo)
- Resposta Instantânea: Retorna ferramentas estáticas + ferramentas dinâmicas em cache imediatamente
- Atualização em Segundo Plano: Para
force_refresh=true, executa a descoberta em segundo plano enquanto mostra as ferramentas atuais - Descoberta Nova: Só executa descoberta completa se não houver dados em cache
- Listagem de Capacidades: O proxy busca capacidades descobertas nas APIs do aplicativo plugged.in
tools/list: Busca de/api/tools(inclui ferramentas estáticas + dinâmicas)resources/list: Busca de/api/resourcesresource-templates/list: Busca de/api/resource-templatesprompts/list: Busca de/api/promptse/api/custom-instructions, mescla resultados
- Resolução de Capacidades: O proxy resolve capacidades para servidores de destino
tools/call: Analisa o prefixo do nome da ferramenta, consulta o servidor no mapa internoresources/read: Chama/api/resolve/resource?uri=...para obter detalhes do servidorprompts/get: Verifica se há prefixo de instrução personalizada ou chama/api/resolve/prompt?name=...
- Roteamento de Solicitações: As solicitações são roteadas para o servidor MCP subjacente apropriado
- Tratamento de Respostas: As respostas dos servidores subjacentes são retornadas ao cliente
🔒 Recursos de Segurança
O plugged.in MCP Proxy implementa medidas de segurança abrangentes para proteger seu sistema e dados:
Validação e Saneamento de Entrada
- Prevenção de Injeção de Comandos: Todos os comandos e argumentos são validados contra listas de permissões antes da execução
- Segurança de Variáveis de Ambiente: Análise segura de arquivos
.envcom tratamento adequado de aspas e valores multilinha - Validação de Tokens: Padrões regex fortes para chaves de API e tokens de autenticação (32-64 caracteres hexadecimais)
Segurança de Rede
- Proteção SSRF: A validação de URL bloqueia acesso a:
- Localhost e endereços de loopback (127.0.0.1, ::1)
- Faixas de IP privadas (10.x, 172.16-31.x, 192.168.x)
- Endereços link-local (169.254.x)
- Faixas multicast e reservadas
- Portas de serviços internos comuns (SSH, bancos de dados, etc.)
- Validação de Cabeçalhos: Proteção contra injeção de cabeçalhos com:
- Bloqueio de cabeçalhos perigosos
- Validação de nomes de cabeçalhos em conformidade com RFC 7230
- Detecção de caracteres de controle
- Limites de tamanho de cabeçalho (máx. 8KB)
- Limitação de Taxa:
- Chamadas de ferramentas: 60 solicitações por minuto
- Chamadas de API: 100 solicitações por minuto
- Saneamento de Erros: Previne divulgação de informações ao sanear mensagens de erro
Segurança de Processos
- Execução Segura de Comandos: Usa
execFile()em vez deexec()para prevenir injeção de shell - Lista de Permissões de Comandos: Só permite a execução de:
node,npx- Comandos Node.jspython,python3- Comandos Pythonuv,uvx,uvenv- Ferramentas Python UV
- Saneamento de Argumentos: Remove metacaracteres de shell e caracteres de controle de todos os argumentos
- Validação de Variáveis de Ambiente: Só permite chaves alfanuméricas com sublinhados
Segurança HTTP Streamable
- Autenticação Preguiçosa: A descoberta de ferramentas não exige autenticação, melhorando a compatibilidade
- Segurança de Sessão: Geração de IDs de sessão criptograficamente seguros
- Proteção CORS: Cabeçalhos CORS configuráveis para acesso web
- Limites de Tamanho de Solicitação: Previne DoS por meio de cargas úteis grandes
Utilitários de Segurança
Um módulo dedicado security-utils.ts fornece:
- Validação de token Bearer
- Validação de URL com proteção SSRF
- Saneamento de argumentos de comando
- Validação de variáveis de ambiente
- Implementação de limitação de taxa
- Saneamento de mensagens de erro
Para implementação detalhada de segurança, consulte SECURITY.md.
🧩 Integração com o aplicativo plugged.in
O plugged.in MCP Proxy Server foi projetado para funcionar perfeitamente com o aplicativo plugged.in, que fornece:
- Uma interface baseada na web para gerenciar configurações de servidor MCP
- Descoberta centralizada de capacidades (Ferramentas, Recursos, Modelos, Prompts)
- Biblioteca de Documentos RAG v2: Envie documentos e habilite conteúdo gerado por IA com atribuição completa
- Gerenciamento de instruções personalizadas
- Suporte a múltiplos espaços de trabalho para diferentes conjuntos de configuração
- Um playground interativo para testar ferramentas MCP com qualquer modelo de IA
- Autenticação de usuário e gerenciamento de chaves de API
- Troca de Documentos com IA: Crie, pesquise e gerencie documentos com rastreamento de atribuição de modelo
📚 Recursos Relacionados
- Repositório do aplicativo plugged.in
- Especificação do Model Context Protocol (MCP)
- Documentação do Claude Desktop
- Documentação do Cline
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
📝 Atualizações Recentes
Versão 1.9.0 (Setembro de 2025) - Aprimoramentos de Segurança
🔒 Saneamento de HTML Aprimorado
- Saneamento Padrão da Indústria: Substituiu o saneamento de HTML baseado em regex personalizado pela biblioteca
sanitize-html - Prevenção de XSS: Proteção abrangente contra ataques de script entre sites
- Segurança de Atributos HTML: Saneamento aprimorado para contextos de atributos HTML (aspas, e comerciais)
- Injeção de String de Formato: Corrigiu vulnerabilidades de injeção de string de formato no registro
- Testes de Segurança: Cobertura de testes abrangente para todas as funções de saneamento
🛡️ Melhorias de Segurança
- Conformidade CodeQL: Resolveu todas as vulnerabilidades de segurança identificadas pela análise do GitHub CodeQL
- Validação de Entrada: Fortaleceu a validação e o saneamento de entrada em todas as funções
- Atualizações de Dependências: Adicionou
sanitize-htmlpara filtragem robusta de conteúdo HTML - Cobertura de Testes: Suíte de testes de segurança aprimorada com verificação de prevenção de ataques XSS
Versão 1.5.0 (Janeiro de 2025) - RAG v2
🤖 Troca de Documentos com IA
- Documentos Gerados por IA: Servidores MCP agora podem criar documentos em sua biblioteca com atribuição completa de IA
- Rastreamento de Atribuição de Modelo: Histórico completo de quais modelos de IA criaram ou atualizaram cada documento
- Pesquisa Avançada de Documentos: Filtre por modelo de IA, provedor, data, tags e tipo de fonte
- Versionamento de Documentos: Acompanhe alterações e mantenha o histórico de versões para conteúdo gerado por IA
- Suporte a Múltiplas Fontes: Documentos de uploads, geração por IA ou integrações de API
🔍 Capacidades RAG Aprimoradas
- Pesquisa Semântica: Pontuação de relevância melhorada com pesquisa de texto completo do PostgreSQL
- Filtragem Inteligente: Filtre resultados por visibilidade, atribuição de modelo e fonte de documento
- Geração de Trechos: Extração automática de trechos com destaque de palavras-chave
- Otimização de Desempenho: Consultas mais rápidas com indexação otimizada
Versão 1.2.0 (Janeiro de 2025)
🔒 Aprimoramentos de Segurança
- Validação de URL: Proteção SSRF abrangente bloqueando IPs privados, localhost e portas perigosas
- Lista de Permissões de Comandos: Apenas comandos aprovados (node, npx, python, etc.) podem ser executados
- Saneamento de Cabeçalhos: Proteção contra ataques de injeção de cabeçalhos
- Autenticação Preguiçosa: Compatibilidade Smithery melhorada com descoberta de ferramentas sem autenticação
🚀 Melhorias de Desempenho
- Builds Docker Otimizados: Builds em múltiplas etapas para pegada mínima do contêiner
- Apenas Dependências de Produção: Arquivos de teste e dependências de desenvolvimento excluídos das imagens Docker
- Eficiência de Recursos: Projetado para implantação em ambientes com recursos limitados
🔧 Melhorias Técnicas
- Tratamento de erros aprimorado no transporte HTTP Streamable
- Melhor limpeza de sessão e gerenciamento de memória
- Tipos TypeScript e organização de código aprimorados
Versão 1.1.0 (Dezembro de 2024)
🚀 Novos Recursos
- Suporte HTTP Streamable: Conecte-se a servidores MCP downstream usando o transporte HTTP Streamable moderno
- Modo Servidor HTTP: Execute o proxy como um servidor HTTP para acesso baseado na web
- Gerenciamento Flexível de Sessão: Escolha entre modos sem estado ou com estado
- Opções de Autenticação: Autenticação opcional com token Bearer para endpoints HTTP
- Monitoramento de Saúde: Endpoint
/healthpara monitoramento de serviço
🔧 Melhorias Técnicas
- SDK MCP atualizado para v1.13.1 para suporte ao protocolo mais recente
- Integração Express.js adicionada para funcionalidade de servidor HTTP
- Tipos TypeScript aprimorados para melhor experiência do desenvolvedor
Versão 1.0.0 (Junho de 2025)
🎯 Principais Recursos
- Sistema de Notificação em Tempo Real: Acompanhe todas as atividades MCP com suporte abrangente a notificações
- Integração RAG: Suporte para consultas aprimoradas por documentos por meio do aplicativo plugged.in
- Scripts de Inspeção: Novas ferramentas de teste automatizadas para depuração e desenvolvimento
- Monitoramento de Saúde: Endpoint de ping integrado para monitoramento de conexão
🔒 Aprimoramentos de Segurança
- Validação de Entrada: Validação e saneamento padrão da indústria para todas as entradas
- Segurança de URL: Validação de URL aprimorada com proteção SSRF
- Segurança de Ambiente: Análise segura de variáveis de ambiente com dotenv
- Saneamento de Erros: Previne divulgação de informações em respostas de erro
🐛 Correções de Bugs
- Corrigida interferência de protocolo JSON-RPC (separação stdout vs stderr)
- Resolvida validação de URL localhost para ambientes de desenvolvimento
- Corrigido tratamento de chaves de API em scripts de inspeção
- Estabilidade de conexão e gerenciamento de memória melhorados
🔧 Ferramentas do Desenvolvedor
- Novos scripts de inspeção para testes automatizados
- Mensagens de erro e capacidades de depuração aprimoradas
- Registro estruturado com uso adequado de stderr
- Segurança de tipos TypeScript aprimorada
Consulte Notas de Lançamento para detalhes completos.
🧪 Testes e Desenvolvimento
Desenvolvimento Local
Testes estão incluídos para fins de desenvolvimento, mas são excluídos dos builds Docker para minimizar a pegada do contêiner.
# 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
Builds Docker Leves
A imagem Docker é otimizada para pegada mínima:
- Processo de build em múltiplas etapas
- Apenas dependências de produção na imagem final
- Arquivos de teste e dependências de desenvolvimento excluídos
- Otimizada para ambientes com recursos limitados
# Build optimized Docker image
docker build -t pluggedin-mcp .
# Check image size
docker images pluggedin-mcp
📄 Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- Inspirado no MCP Proxy Server
- Construído sobre o Model Context Protocol