MCP Bridge API

Um proxy RESTful leve e agnóstico a LLMs que unifica múltiplos servidores MCP sob uma única API.

Documentação

MCP Bridge API

Um Proxy RESTful Leve e Agnóstico de LLM para Servidores Model Context Protocol

MCP Bridge Mobile Interface

Figura: A interface do React Native MCP Agent mostrando a tela de chat com resultados de execução de ferramentas (à esquerda) e a tela de configurações com o status da conexão MCP Bridge e a configuração da API Gemini (à direita)

Autores:
Arash Ahmadi, Sarah S. Sharif e Yaser M. Banad*
Escola de Engenharia Elétrica e de Computação, Universidade de Oklahoma, Oklahoma, Estados Unidos
*Autor correspondente: bana@ou.edu

License: Noncommercial arXiv

Se você quiser referenciar este projeto de pesquisa em seu trabalho, cite nosso artigo:

@article{ahmadi2025mcp,
  title={MCP Bridge: A Lightweight, LLM-Agnostic RESTful Proxy for Model Context Protocol Servers},
  author={Ahmadi, Arash and Sharif, Sarah and Banad, Yaser M},
  journal={arXiv preprint arXiv:2504.08999},
  year={2025}
}

📋 Sumário

📚 Introdução

MCP Bridge é um proxy leve, rápido e agnóstico de LLM que se conecta a múltiplos servidores Model Context Protocol (MCP) e expõe suas capacidades por meio de uma API REST unificada. Ele permite que qualquer cliente em qualquer plataforma aproveite a funcionalidade MCP sem restrições de execução de processos. Diferentemente do SDK MCP oficial da Anthropic, o MCP Bridge é totalmente independente e projetado para funcionar com qualquer backend de LLM, o que o torna adaptável, modular e à prova do futuro para diversas implantações. Com níveis de execução opcionais baseados em risco, ele fornece controles de segurança granulares—desde execução padrão até fluxos de confirmação e isolamento Docker—mantendo compatibilidade retroativa com clientes MCP padrão.

Complementando essa infraestrutura do lado do servidor, há duas implementações distintas de clientes inteligentes:

  1. Agente Python MCP-Gemini - Um cliente Python de linha de comando para ambientes desktop
  2. Agente React Native MCP - Um aplicativo móvel moderno e multiplataforma

Ambos os clientes permitem interação em linguagem natural com ferramentas MCP por meio de interfaces inteligentes alimentadas por LLM, que apresentam raciocínio em múltiplas etapas para operações complexas, tratamento de fluxos de confirmação de segurança e opções de exibição configuráveis para maior usabilidade. Juntos, as capacidades versáteis do lado do servidor do MCP Bridge e essas interfaces de cliente inteligentes criam um ecossistema poderoso para o desenvolvimento de aplicações sofisticadas alimentadas por LLM.

⚠️ O Problema

  • Muitos servidores MCP usam transportes STDIO que exigem execução local de processos
  • Dispositivos de borda, dispositivos móveis, navegadores web e outras plataformas não conseguem executar eficientemente servidores MCP npm ou Python
  • Conexões diretas a servidores MCP são impraticáveis em ambientes com recursos limitados
  • Múltiplos clientes isolados conectando-se aos mesmos servidores causa redundância e aumenta o uso de recursos
  • Interagir diretamente com ferramentas MCP exige conhecimento técnico dos formatos e requisitos específicos das ferramentas

🏗️ Arquitetura

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  React Native   │     │     Python      │     │  Other Clients  │
│   MCP Agent     │     │  Gemini Agent   │     │                 │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         │                       │                       │
         │                       │                       │
         │                       ▼                       │
         │           ┌───────────────────────┐          │
         └──────────►│                       │◄─────────┘
                     │      REST API         │
                     │                       │
                     └───────────┬───────────┘
                                 │
                                 ▼
                     ┌───────────────────────┐
                     │                       │
                     │     MCP Bridge        │
                     │                       │
                     └───────────┬───────────┘
                                 │
                 ┌───────────────┼───────────────┐
                 │               │               │
                 ▼               ▼               ▼
        ┌─────────────┐  ┌─────────────┐  ┌─────────────┐
        │  MCP Server │  │  MCP Server │  │  MCP Server │
        │    (STDIO)  │  │    (STDIO)  │  │    (SSE)    │
        └─────────────┘  └─────────────┘  └─────────────┘

💾 Instalação

📦 Pré-requisitos

  • Node.js 18+ para MCP Bridge
  • Python 3.8+ para o Agente Python MCP-Gemini
  • Ambiente de desenvolvimento React Native para o aplicativo móvel

🚀 Configuração Rápida

MCP Bridge

# Install dependencies
npm install express cors morgan uuid

# Start the server
node mcp-bridge.js

Agente Python MCP-Gemini

# Install dependencies
pip install google-generativeai requests rich

# Start the agent
python llm_test.py

Agente React Native MCP

# Navigate to the React Native app directory
cd reactnative-gamini-mcp-agent

# Install dependencies
npm install

# Start the development server
npx expo start

🐍 Agente Python MCP-Gemini

O Agente Python MCP-Gemini é um cliente de linha de comando que se conecta ao MCP Bridge e usa o LLM Gemini do Google para processar solicitações do usuário e executar comandos de ferramentas MCP. Ele é projetado para ambientes desktop e fluxos de trabalho de desenvolvedores.

Principais Recursos

  1. Raciocínio em múltiplas etapas - Suporta chamadas de ferramentas sequenciadas para operações complexas
  2. Fluxo de confirmação de segurança - Tratamento integrado para operações de risco médio e alto
  3. Exibição JSON flexível - Controle a verbosidade das saídas JSON para melhor legibilidade
  4. Conexão configurável - Conecte-se a qualquer instância do MCP Bridge com URL e porta personalizadas
  5. Descoberta de ferramentas disponíveis - Detecta e usa automaticamente todas as ferramentas dos servidores conectados

Configuração do Agente Python

O Agente Python MCP-Gemini suporta várias opções de linha de comando:

usage: llm_test.py [-h] [--hide-json] [--json-width JSON_WIDTH] [--mcp-url MCP_URL] [--mcp-port MCP_PORT]

MCP-Gemini Agent with configurable settings

options:
  -h, --help            show this help message and exit
  --hide-json           Hide JSON results from tool executions
  --json-width JSON_WIDTH
                        Maximum width for JSON output (default: 100)
  --mcp-url MCP_URL     MCP Bridge URL including protocol and port (default: http://localhost:3000)
  --mcp-port MCP_PORT   Override port in MCP Bridge URL (default: use port from --mcp-url)

Exemplos de Uso do Agente Python

# Basic usage with default settings
python llm_test.py

# Hide JSON results for cleaner output
python llm_test.py --hide-json

# Connect to a custom MCP Bridge server
python llm_test.py --mcp-url http://192.168.1.100:3000

# Connect to a different port
python llm_test.py --mcp-port 4000

# Adjust JSON width display for better formatting
python llm_test.py --json-width 120

📱 Agente React Native MCP

O Agente React Native MCP é um aplicativo móvel moderno e multiplataforma que fornece acesso intuitivo às ferramentas MCP por meio de uma interface limpa e amigável. Construído com Expo e React Native Paper, ele oferece uma interface Material Design 3 com tema escuro, otimizada para plataformas iOS e Android.

Principais Recursos

  • Compatibilidade multiplataforma: Funciona em plataformas iOS, Android e web
  • Interface de chat intuitiva: Interação em linguagem natural com exibição de mensagens segmentadas
  • Execução de ferramentas em tempo real: Feedback visual para chamadas de ferramentas MCP com seções de resultados recolhíveis
  • Gerenciamento de conversas: Histórico de conversas persistente com títulos gerados por IA
  • UI/UX moderna: Tema escuro com efeitos de glassmorphism e animações suaves
  • Configurações abrangentes: Configuração fácil das conexões MCP Bridge e das configurações da API Gemini
  • Integração de segurança: Suporte integrado para fluxos de confirmação de nível de risco do MCP Bridge
  • Suporte a múltiplos modelos: Compatível com vários modelos Gemini, incluindo o mais recente 2.5 Flash Preview

Primeiros Passos com o aplicativo React Native

  1. Configure o MCP Bridge: Defina a URL do seu servidor MCP Bridge na aba Configurações
  2. Adicione a chave da API Gemini: Insira sua chave da API Google Gemini para funcionalidade de IA
  3. Selecione o modelo: Escolha entre os modelos Gemini disponíveis, incluindo os lançamentos mais recentes
  4. Comece a conversar: Inicie conversas em linguagem natural com suas ferramentas MCP

O aplicativo descobre automaticamente as ferramentas MCP disponíveis e fornece assistência contextual para operações complexas de múltiplas etapas.

⚙️ Configuração

Configuração do MCP Bridge

O MCP Bridge é configurado por meio de um arquivo JSON chamado mcp_config.json na raiz do projeto. Este é um exemplo de uma configuração MCP básica:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"],
      "riskLevel": 2
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "your-slack-token",
        "SLACK_TEAM_ID": "your-team-id"
      },
      "riskLevel": 1
    }
  }
}

🧪 Uso da API

O MCP Bridge expõe uma API REST limpa e intuitiva para interagir com servidores conectados. Aqui está um detalhamento dos endpoints disponíveis:

📋 Endpoints Gerais

EndpointMétodoDescrição
/serversGETLista todos os servidores MCP conectados
/serversPOSTInicia um novo servidor MCP
/servers/{serverId}DELETEPara e remove um servidor MCP
/healthGETObtém o status de saúde do MCP Bridge
/confirmations/{confirmationId}POSTConfirma a execução de uma solicitação de nível de risco médio

📌 Endpoints Específicos do Servidor

EndpointMétodoDescrição
/servers/{serverId}/toolsGETLista todas as ferramentas de um servidor específico
/servers/{serverId}/tools/{toolName}POSTExecuta uma ferramenta específica
/servers/{serverId}/resourcesGETLista todos os recursos
/servers/{serverId}/resources/{resourceUri}GETRecupera o conteúdo de um recurso específico
/servers/{serverId}/promptsGETLista todos os prompts
/servers/{serverId}/prompts/{promptName}POSTExecuta um prompt com argumentos

🧪 Exemplos de Solicitações

📂 Ler Diretório (Sistema de Arquivos)

POST /servers/filesystem/tools/list_directory
Content-Type: application/json

{
  "path": "."
}

🧪 Recursos do Cliente

Recursos do Agente Python

O Agente Python MCP-Gemini fornece:

  1. Raciocínio em múltiplas etapas - Suporta chamadas de ferramentas sequenciadas para operações complexas
  2. Fluxo de confirmação de segurança - Tratamento integrado para operações de risco médio e alto
  3. Exibição JSON flexível - Controle a verbosidade das saídas JSON para melhor legibilidade
  4. Conexão configurável - Conecte-se a qualquer instância do MCP Bridge com URL e porta personalizadas
  5. Descoberta de ferramentas disponíveis - Detecta e usa automaticamente todas as ferramentas dos servidores conectados

Recursos do Agente React Native

O Agente React Native MCP fornece:

  1. Gerenciamento de conversas - Histórico de chat persistente com títulos gerados por IA
  2. Exibição de mensagens segmentadas - Separação limpa de respostas de texto e operações de ferramentas
  3. Execução de ferramentas em tempo real - Feedback visual com seções de resultados recolhíveis
  4. Interface de confirmação de segurança - Diálogos de confirmação nativos para operações de risco médio/alto
  5. Suporte a múltiplos modelos - Suporte para vários modelos Gemini com troca fácil
  6. Multiplataforma - Funciona em plataformas iOS, Android e web
  7. Material Design moderno - Tema escuro com animações suaves e feedback tátil

🔐 Níveis de Risco

O MCP Bridge implementa um sistema opcional de níveis de risco que fornece controle sobre os comportamentos de execução do servidor. Os níveis de risco ajudam a gerenciar preocupações de segurança e recursos ao executar operações potencialmente sensíveis do servidor MCP.

Classificação dos Níveis de Risco

NívelNomeDescriçãoComportamento
1BaixoExecução padrãoExecução direta sem confirmação
2MédioRequer confirmaçãoO cliente deve confirmar a execução antes do processamento
3AltoExecução Docker necessáriaO servidor é executado em contêiner Docker isolado

Configurando Níveis de Risco

Os níveis de risco são opcionais para compatibilidade retroativa. Você pode configurar os níveis de risco no seu mcp_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"],
      "riskLevel": 2
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "your-slack-token",
        "SLACK_TEAM_ID": "your-team-id"
      },
      "riskLevel": 1
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your-github-token"
      },
      "riskLevel": 3,
      "docker": {
        "image": "node:18",
        "volumes": ["/tmp:/tmp"],
        "network": "host"
      }
    }
  }
}

Fluxos de Trabalho dos Níveis de Risco

Risco Baixo (Nível 1)

  • Execução padrão sem etapas adicionais
  • Adequado para operações com preocupações mínimas de segurança
  • Este é o comportamento padrão quando nenhum nível de risco é especificado

Risco Médio (Nível 2)

  1. O cliente faz uma solicitação de execução de ferramenta
  2. O servidor responde com uma solicitação de confirmação contendo um ID de confirmação
  3. O cliente deve fazer uma solicitação de confirmação separada para prosseguir
  4. Somente após a confirmação o servidor executa a operação

Tanto o Agente Python MCP-Gemini quanto o Agente React Native lidam com esse fluxo de confirmação automaticamente, solicitando a aprovação do usuário quando necessário.

Risco Alto (Nível 3)

  • O servidor é executado automaticamente em um contêiner Docker isolado
  • Fornece isolamento ambiental para o processo do servidor MCP
  • Requer que o Docker esteja instalado e configurado corretamente

📋 Registro de Alterações

Atualizações Recentes

  • ✅ Suporte ao Gerenciador de Pacotes UV: Corrigido o problema com o carregamento de servidores MCP baseados em UV (Python). O MCP Bridge agora inicializa e se comunica corretamente com servidores MCP Python que usam o gerenciador de pacotes UV, resolvendo problemas anteriores de compatibilidade com toolchains baseados em UV.

  • 📱 Agente React Native MCP: Adicionado um aplicativo móvel abrangente com:

    • Suporte multiplataforma para iOS, Android e web
    • Interface Material Design 3 moderna com tema escuro
    • Gerenciamento inteligente de conversas com títulos gerados por IA
    • Execução de ferramentas em tempo real com feedback visual
    • Fluxos de confirmação de segurança integrados
    • Suporte para vários modelos Gemini, incluindo os lançamentos mais recentes
  • 🔧 Execução de Ferramentas Aprimorada: Melhoradas as capacidades de raciocínio em múltiplas etapas em todos os clientes

  • 🛡️ Melhorias de Segurança: Fluxos de confirmação de nível de risco aprimorados com melhor experiência do usuário

  • 📊 Melhor Tratamento de Erros: Mecanismos de tratamento e recuperação de erros mais robustos

🌟 Impacto na Comunidade e Reconhecimento

O MCP Bridge ganhou reconhecimento nas comunidades de IA e desenvolvimento, sendo apresentado em pesquisas acadêmicas, análises de segurança da indústria, discursos profissionais e publicações técnicas. Esses reconhecimentos destacam o valor prático e o impacto no mundo real da nossa solução de proxy leve e agnóstica de LLM.

arXiv Research Paper Citation

Citado por este artigo: From Prompt Injections to Protocol Exploits: Threats in LLM-Powered AI Agents Workflows - Um artigo de pesquisa discutindo implicações de segurança em fluxos de trabalho de agentes de IA alimentados por LLM

Wiz Security Research Briefing

Briefing de Pesquisa: Segurança MCP - Pesquisa de segurança da Wiz destacando o MCP Bridge como um exemplo de trabalho acadêmico no ecossistema MCP

LinkedIn Professional Discourse *[Publicação no LinkedIn por Vaibhava Lakshmi Ravideshik](https://www.linkedin.com/posts/vaibhava-lakshmi-ravideshik_aiintegration-modelcontextprotocol-llm-activity-7344581233097547777-IktU/) - Discussão de um instrutor do LinkedIn Learning sobre as aplicações práticas do MCP Bridge* Medium Technical Article

Desbloqueando aplicativos agênticos com o Model Context Protocol (MCP) para serviços financeiros - Artigo do Medium apresentando o padrão de design do MCP Bridge para aplicações financeiras

🚧 Considerações de implantação

🔒 Segurança

  • Use HTTPS em produção
  • Adicione autenticação para operações sensíveis
  • Isole em rede os serviços críticos

📊 Escalonamento

  • Use balanceadores de carga
  • Agrupe servidores de alta demanda
  • Monitore métricas e pressão de recursos

📱 Implantação móvel

Para o aplicativo React Native:

  • Compile para produção usando npx expo build
  • Configure a implantação na loja de aplicativos com EAS Build
  • Configure atualizações over-the-air com EAS Update

📊 Comparação com outros repositórios MCP Bridge/Proxy

Recursoivanboring/mcp-restINQUIRELAB/mcp-bridge-api (Este repositório)SecretiveShell/MCP-BridgeJoshuaRileyDev/mcp-apirakesh-eltropy/mcp-clientbartolli/mcp-llm-bridge
⚙️ Linguagem principalNode.jsNode.js (Bridge) + Python (Agente) ✨PythonNode.jsPythonPython
🎯 Objetivo principalWrapper REST simplesBridge REST independente de LLM + Agente GeminiBridge OpenAI e REST rico em recursos + Servidor MCPAPI REST para servidores MCP + Exemplo de UI de chatAgente LangChain com ferramentas MCP (REST/CLI)Bridge LLM MCP <-> (compatível com OpenAI)
🔌 Conexão MCPSomente SSESTDIO (gerenciado) + Docker (baseado em risco) ✔️STDIO, SSE, DockerSTDIOSTDIO (LangChain)STDIO
🚀 Interface de APIREST básicoAPI REST unificada ✔️Compatível com OpenAI, REST, Servidor MCP (SSE)API REST + SwaggerAPI REST (streaming), CLICLI interativo
✨ Recursos principaisLista/chamada básica de ferramentasMultisservidor, níveis de risco, confirmação de segurança, execução Docker, agente Gemini, flexibilidade de configuração ✨Compatível com OpenAI, amostragem, multitransporte, autenticação, Docker/Helm, configuração flexívelMultisservidor, normalização de nomes de ferramentas, Swagger, UI de chatIntegração LangChain, REST/CLI, streamingTradução bidirecional de protocolo, ferramenta de banco de dados
🔧 ConfiguraçãoArgumentos de CLIArquivo JSON + variáveis de ambiente ✔️Arquivo JSON, URL HTTP, variáveis de ambienteArquivo JSON (busca em vários caminhos), variáveis de ambienteArquivo JSONObjeto Python, variáveis de ambiente
🧩 Integração com LLMNenhumaSim (agente Gemini dedicado com raciocínio em várias etapas) ✨Sim (endpoint OpenAI)Nenhuma (somente API)Sim (LangChain)Sim (cliente OpenAI)
🏗️ ComplexidadeBaixaBaixa ✔️AltaModeradaModerada-altaModerada
🛡️ Recursos de segurançaNenhumNíveis de risco (médio/alto) + fluxo de confirmação + isolamento Docker ✨Autenticação básica (chaves de API), CORSNenhumNenhumNenhum
📦 Dependências principaisexpress, mcp-clientexpress, uuid (Bridge, dependência mínima); requests, google-genai, rich (Agente)fastapi, mcp, mcpxexpress, @mcp/sdk, socket.iofastapi, `

Escopo da licença

O código original do INQUIRE Lab é licenciado sob a PolyForm Noncommercial License 1.0.0. Os conjuntos de dados, figuras e documentação originais do INQUIRE Lab são licenciados sob CC BY-NC 4.0. Consulte LICENSE para o escopo e os textos completos das licenças. Materiais de outros detentores de direitos mantêm seus termos originais.