Plugged.in MCP Server

oficial

Um 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

plugged.in Logo

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.

smithery badge Version GitHub Stars License TypeScript MCP MCP Badge

📋 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, upload ou api
  • 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âneos
  • pluggedin_ask_knowledge_base - Pesquisa RAG em seus documentos com capacidades de filtragem de IA
  • pluggedin_send_notification - Enviar notificações com entrega opcional por e-mail
  • pluggedin_create_document - Criar documentos gerados por IA em sua biblioteca
  • pluggedin_list_documents - Listar documentos com opções de filtragem
  • pluggedin_search_documents - Pesquisar documentos específicos por consulta
  • pluggedin_get_document - Recuperar o conteúdo completo de um documento específico por ID
  • pluggedin_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 índice
  • pluggedin_clipboard_get - Obter entradas da área de transferência por nome, índice ou listar todas
  • pluggedin_clipboard_delete - Excluir entradas da área de transferência por nome, índice ou limpar todas
  • pluggedin_clipboard_list - Listar todas as entradas da área de transferência com metadados
  • pluggedin_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ávelDescriçãoObrigatóriaPadrão
PLUGGEDIN_API_KEYChave de API do aplicativo plugged.inSim-
PLUGGEDIN_API_BASE_URLURL base para o aplicativo plugged.inNãohttps://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çãoDescriçãoPadrão
--transport <type>Tipo de transporte: stdio ou streamable-httpstdio
--port <number>Porta para servidor HTTP Transmissível12006
--statelessHabilitar modo sem estado para HTTP Transmissívelfalse
--require-api-authExigir chave de API para solicitações HTTP Transmissívelfalse

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 MCP
  • GET /mcp - Fluxo de eventos enviados pelo servidor (opcional)
  • DELETE /mcp - Encerrar sessão
  • GET /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

  1. Visite smithery.ai e faça login
  2. Conecte sua conta do GitHub e selecione o repositório pluggedin-mcp
  3. Configure sua chave de API do Plugged.in na interface do Smithery
  4. 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

  1. Configuração: O proxy busca as configurações do servidor no Aplicativo plugged.in
  2. 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
  3. 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/resources
    • resource-templates/list: Busca de /api/resource-templates
    • prompts/list: Busca de /api/prompts e /api/custom-instructions, mescla os resultados
  4. 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 interno
    • resources/read: Chama /api/resolve/resource?uri=... para obter detalhes do servidor
    • prompts/get: Verifica o prefixo de instrução personalizada ou chama /api/resolve/prompt?name=...
  5. Roteamento de Requisições: As requisições são roteadas para o servidor MCP subjacente apropriado
  6. 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 .env com 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 de exec() para prevenir injeção de shell
  • Lista de Permissão de Comandos: Só permite a execução de:
    • node, npx - Comandos Node.js
    • python, python3 - Comandos Python
    • uv, 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

🤝 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-html para 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 /health para 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