Plugged.in MCP Server
oficialUm proxy abrangente que combina múltiplos servidores MCP em um único MCP. Ele fornece descoberta e gerenciamento de ferramentas, prompts, recursos e modelos entre servidores, além de um playground para depuração ao construir servidores MCP.
Documentação
plugged.in MCP Hub — Proxy · Conhecimento · Memória · Ferramentas
A Encruzilhada para Trocas de Dados de IA
Um hub MCP unificado que fornece à sua IA Conhecimento, Memória e Ferramentas — 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 entre clientes.
📋 Visão Geral
O Servidor Proxy MCP plugged.in é 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 aplicativo plugged.in 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.), ao mesmo tempo que fornece capacidades avançadas de gerenciamento através do ecossistema plugged.in.
Pilares do Hub: Conhecimento · Memória · Ferramentas · Proxy
Conhecimento (RAG v2 / Troca de Documentos de IA)
Pesquise e fundamente as saídas do modelo com recuperação unificada de documentos com reconhecimento de 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 relevantes e metadados.
Memória (Memória Persistente de IA)
Memória de longa duração, com escopo de espaço de trabalho/perfil, que sobrevive às sessões. O hub integra-se com a memória persistente do aplicativo plugged.in para que ações e insights do agente possam ser armazenados e recuperados entre tarefas. Ferramentas de memória integradas estão no roteiro para expor padrões get/put/search de baixo atrito sob o mesmo modelo de autenticação.
Ferramentas
Agregue capacidades integradas com servidores MCP downstream (STDIO, SSE, HTTP Transmissível). 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 HTTP Transmissível com autenticação de API opcional e modo sem estado. 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 Funcionalidades
🚀 Capacidades Centrais
- Playground de IA 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 HTTP Transmissível
- Modos de Transporte Duplos: Execute o proxy como servidor STDIO (padrão) ou HTTP Transmissível
- 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-Espaço de Trabalho: Alterne entre diferentes conjuntos de configurações MCP com um clique
- Proxy Orientado por API: Busca capacidades das APIs do aplicativo plugged.in 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
🎯 Novidades na v1.5.0 (RAG v2 - Troca de Documentos de IA)
- Criação de Documentos por 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 para múltiplos formatos: MD, TXT, JSON, HTML, PDF e mais
- Pesquisa Avançada de Documentos: Consultas RAG aprimoradas com filtragem de IA
- Filtrar 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: fontes
ai_generated,uploadouapi
- Gerenciamento de Documentos via MCP:
- Definir visibilidade do documento: privado, espaço de trabalho ou público
- Relacionamentos 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
🎯 Funcionalidades da v1.4.0 (Suporte ao Registro v2)
- Gerenciamento de Token OAuth: Tratamento contínuo de autenticação OAuth para servidores MCP HTTP Transmissível
- Recuperação automática de token do aplicativo plugged.in
- Armazenamento seguro de token e mecanismos de atualização
- Sem necessidade de autenticação do lado do cliente
- Sistema de Notificação Aprimorado: Suporte a notificações bidirecionais
- Enviar notificações para o aplicativo plugged.in
- Receber notificações de servidores MCP
- Marcar notificações como lidas/não lidas
- Excluir notificações programaticamente
- Análise 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 Registro: Suporte completo para funcionalidades do Registro v2
- Descoberta automática de servidores do registro
- Rastreamento de instalação e métricas
- Suporte a servidores da comunidade
📦 Funcionalidades da v1.1.0
- Suporte a HTTP Transmissível: Suporte completo para servidores MCP downstream usando transporte HTTP Transmissível
- Modo Servidor HTTP: Execute o proxy como um servidor HTTP com portas configuráveis
- Autenticação Flexível: Autenticação opcional por token Bearer para endpoints HTTP
- Gerenciamento de Sessão: Escolha entre modos de operação com estado (baseado em sessão) ou sem estado
🎯 Funcionalidades Centrais da v1.0.0
- Notificações em Tempo Real: Acompanhe todas as atividades MCP com suporte abrangente a notificações
- Integração RAG: Suporte para consultas aprimoradas por documentos através do aplicativo plugged.in
- Scripts Inspetores: 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 Estáticas Integradas (Sempre Disponíveis)
Essas ferramentas são incorporadas 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- Enviar notificações com entrega opcional por e-mailpluggedin_create_document- Criar documentos gerados por IA em sua bibliotecapluggedin_list_documents- Listar documentos com opções de filtragempluggedin_search_documents- Pesquisar documentos específicos por consultapluggedin_get_document- Recuperar o conteúdo completo de um documento específico por IDpluggedin_update_document- Atualizar ou anexar a um documento existente
📋 Ferramentas de Área de Transferência (Sistema de Memória)
pluggedin_clipboard_set- Definir uma entrada na área de transferência por nome (chave semântica) ou índicepluggedin_clipboard_get- Obter entradas da área de transferência por nome, índice ou listar todaspluggedin_clipboard_delete- Excluir entradas da área de transferência por nome, índice ou limpar todaspluggedin_clipboard_list- Listar todas as entradas da área de transferência com metadadospluggedin_clipboard_push- Empilhar um valor com índice de incremento automático (push de pilha)pluggedin_clipboard_pop- Desempilhar a entrada de índice mais alto (comportamento LIFO)
⚡ Ferramentas MCP Dinâmicas (De Servidores Conectados)
Essas ferramentas vêm de 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 da Área de Transferência
O sistema de área de transferência 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 18+ (recomendado v20+)
- Uma chave de API do aplicativo plugged.in (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/[email protected] --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 aplicativo plugged.in | Sim | - |
PLUGGEDIN_API_BASE_URL | URL base para o aplicativo plugged.in | Não | https://plugged.in |
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 servidor HTTP Transmissível | 12006 |
--stateless | Habilitar modo sem estado para HTTP Transmissível | false |
--require-api-auth | Exigir chave de API para solicitações HTTP Transmissível | false |
Para uma lista completa de opções:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --help
🌐 Modo HTTP Transmissível
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ão
No modo com estado (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 no modo STDIO para teste 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 HTTP Transmissível
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 padrão https://plugged.in).
Testando com MCP Inspector
Enquanto o contêiner estiver em execução, você pode conectar-se a ele usando o MCP Inspector:
npx @modelcontextprotocol/inspector docker://pluggedin-mcp-container
Isso se 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á sendo executado. O sinalizador --rm garante que o contêiner seja removido automaticamente ao parar.
☁️ Implantação na Nuvem Smithery
Implante o Proxy MCP plugged.in na Smithery Cloud para acesso hospedado e sempre disponível aos seus servidores MCP.
Início Rápido
- Visite smithery.ai e faça login
- Conecte sua conta do GitHub e selecione o repositório
pluggedin-mcp - Configure sua chave de API do Plugged.in na interface do Smithery
- Implante e obtenha seu endpoint HTTPS
Benefícios
- Disponibilidade 24/7: Seu proxy está sempre em execução
- Configuração Zero: O Smithery detecta automaticamente as configurações de
smithery.yaml - Escalonamento Automático: Lida com múltiplas conexões simultâneas
- Acesso Web: Perfeito para aplicações web e clientes remotos
Documentação
Para instruções completas de implantação, opções de configuração, solução de problemas e detalhes técnicos, consulte:
📖 Guia de Implantação do Smithery
Agentes Autônomos (Prévia)
O hub foi projetado para suportar ciclos agentivos de ponta a ponta:
MCP Client → plugged.in MCP Hub → (Plan → Act → Reflect)
↘ Knowledge ↘ Memory ↘ Tools
- Planejar — derivar objetivos 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 em Memória e Conhecimento (documentos, notas, artefatos) para melhorar as etapas subsequentes.
Segurança & Operações
Habilite --require-api-auth no modo HTTP Transmissível; use listas de permissão 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 os registros/telemetria existentes para rastrear o uso de ferramentas e mutações em documentos.
🏗️ Arquitetura do Sistema
O Servidor Proxy MCP do plugged.in atua como uma ponte entre clientes MCP e vários 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 as configurações do 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 Completa: Só executa a descoberta completa se não houver dados em cache
- Listagem de Capacidades: O proxy busca as 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 os resultados
- Resolução de Capacidades: O proxy resolve as capacidades para os servidores de destino
tools/call: Analisa o prefixo do nome da ferramenta, busca o servidor no mapa internoresources/read: Chama/api/resolve/resource?uri=...para obter detalhes do servidorprompts/get: Verifica o prefixo de instrução personalizada ou chama/api/resolve/prompt?name=...
- Roteamento de Requisições: As requisiçõ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 Proxy MCP do plugged.in implementa medidas de segurança abrangentes para proteger seu sistema e dados:
Validação e Sanitização de Entrada
- Prevenção de Injeção de Comando: Todos os comandos e argumentos são validados contra listas de permissão 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 Token: Padrões regex fortes para chaves de API e tokens de autenticação (32-64 caracteres hexadecimais)
Segurança de Rede
- Proteção contra SSRF: A validação de URL bloqueia o acesso a:
- Endereços de localhost e 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 de multicast e reservadas
- Portas comuns de serviços internos (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 nome de cabeçalho em conformidade com RFC 7230
- Detecção de caracteres de controle
- Limites de tamanho de cabeçalho (máx. 8 KB)
- Limitação de Taxa:
- Chamadas de ferramenta: 60 requisições por minuto
- Chamadas de API: 100 requisições por minuto
- Sanitização de Erros: Previne a divulgação de informações sanitizando mensagens de erro
Segurança de Processo
- Execução Segura de Comandos: Usa
execFile()em vez deexec()para prevenir injeção de shell - Lista de Permissão de Comandos: Só permite a execução de:
node,npx- Comandos Node.jspython,python3- Comandos Pythonuv,uvx,uvenv- Ferramentas UV Python
- Sanitização 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 Transmissível
- Autenticação Sob Demanda: A descoberta de ferramentas não requer autenticação, melhorando a compatibilidade
- Segurança de Sessão: Geração de ID de sessão criptograficamente segura
- Proteção CORS: Cabeçalhos CORS configuráveis para acesso web
- Limites de Tamanho de Requisição: Previne DoS através de cargas úteis grandes
Utilitários de Segurança
Um módulo security-utils.ts dedicado fornece:
- Validação de token Bearer
- Validação de URL com proteção SSRF
- Sanitização de argumentos de comando
- Validação de variáveis de ambiente
- Implementação de limitação de taxa
- Sanitização de mensagens de erro
Para detalhes de implementação de segurança, veja SECURITY.md.
🧩 Integração com o Aplicativo plugged.in
O Servidor Proxy MCP do plugged.in foi projetado para funcionar perfeitamente com o Aplicativo plugged.in, que fornece:
- Uma interface baseada na web para gerenciar configurações de servidores MCP
- Descoberta centralizada de capacidades (Ferramentas, Recursos, Modelos, Prompts)
- Biblioteca de Documentos RAG v2: Faça upload de 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
- Intercâmbio 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) - Melhorias de Segurança
🔒 Sanitização de HTML Aprimorada
- Sanitização Padrão da Indústria: Substituiu a sanitização de HTML baseada em regex personalizada pela biblioteca
sanitize-html - Prevenção de XSS: Proteção abrangente contra ataques de cross-site scripting
- Segurança de Atributos HTML: Sanitização aprimorada para contextos de atributos HTML (aspas, e comercial)
- Injeção de String de Formato: Corrigidas vulnerabilidades de injeção de string de formato no registro
- Testes de Segurança: Cobertura de teste abrangente para todas as funções de sanitização
🛡️ Melhorias de Segurança
- Conformidade com CodeQL: Resolvidas todas as vulnerabilidades de segurança identificadas pela análise CodeQL do GitHub
- Validação de Entrada: Validação e sanitização de entrada reforçadas em todas as funções
- Atualizações de Dependências: Adicionado
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
🤖 Intercâmbio 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 origem
- Versionamento de Documentos: Rastreie mudanças e mantenha histórico de versões para conteúdo gerado por IA
- Suporte a Múltiplas Fontes: Documentos de uploads, geração de IA ou integrações de API
🔍 Capacidades RAG Aprimoradas
- Pesquisa Semântica: Pontuação de relevância aprimorada com pesquisa de texto completo do PostgreSQL
- Filtragem Inteligente: Filtre resultados por visibilidade, atribuição de modelo e origem do documento
- Geração de Snippets: Extração automática de snippets 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)
🔒 Melhorias de Segurança
- Validação de URL: Proteção SSRF abrangente bloqueando IPs privados, localhost e portas perigosas
- Lista de Permissão de Comandos: Apenas comandos aprovados (node, npx, python, etc.) podem ser executados
- Sanitização de Cabeçalhos: Proteção contra ataques de injeção de cabeçalho
- Autenticação Sob Demanda: Compatibilidade aprimorada com Smithery com descoberta de ferramentas sem autenticação
🚀 Melhorias de Desempenho
- Builds Docker Otimizados: Builds multi-estágio 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 Transmissível
- 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 a HTTP Transmissível: Conecte-se a servidores MCP downstream usando o transporte HTTP Transmissível 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 por 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
- Adicionada integração com Express.js 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 através do Aplicativo plugged.in
- Scripts Inspetores: Novas ferramentas de teste automatizado para depuração e desenvolvimento
- Monitoramento de Saúde: Endpoint de ping integrado para monitoramento de conexão
🔒 Melhorias de Segurança
- Validação de Entrada: Validação e sanitização 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
- Sanitização 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 chave de API em scripts inspetores
- Melhorada estabilidade de conexão e gerenciamento de memória
🔧 Ferramentas de Desenvolvedor
- Novos scripts inspetores para testes automatizados
- Mensagens de erro e capacidades de depuração aprimoradas
- Registro estruturado com uso adequado de stderr
- Segurança de tipo TypeScript aprimorada
Veja Notas de Lançamento para detalhes completos.
🧪 Testes e Desenvolvimento
Desenvolvimento Local
Testes são incluídos para fins de desenvolvimento, mas são excluídos das 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 multi-estágio
- Apenas dependências de produção na imagem final
- Arquivos de teste e dependências de desenvolvimento excluídos
- Otimizado 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 está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- Inspirado pelo Servidor Proxy MCP
- Construído sobre o Model Context Protocol