MCP Bridge API

Un proxy RESTful ligero y agnóstico al LLM que unifica múltiples servidores MCP bajo una sola API.

Documentación

MCP Bridge API

Un Proxy RESTful Ligero y Agnóstico de LLM para Servidores del Protocolo de Contexto de Modelo (MCP)

MCP Bridge Mobile Interface

Figura: La interfaz del Agente MCP de React Native mostrando la pantalla de chat con resultados de ejecución de herramientas (izquierda) y la pantalla de configuración con el estado de conexión de MCP Bridge y la configuración de la API de Gemini (derecha)

Autores:
Arash Ahmadi, Sarah S. Sharif, y Yaser M. Banad*
Escuela de Ingeniería Eléctrica y de Computación, Universidad de Oklahoma, Oklahoma, Estados Unidos
*Autor de correspondencia: bana@ou.edu

License: Noncommercial arXiv

Si deseas referenciar este proyecto de investigación en tu trabajo, por favor cita nuestro artículo:

@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}
}

📋 Tabla de Contenidos

📚 Introducción

MCP Bridge es un proxy ligero, rápido y agnóstico de LLM que se conecta a múltiples servidores del Protocolo de Contexto de Modelo (MCP) y expone sus capacidades a través de una API REST unificada. Permite que cualquier cliente en cualquier plataforma aproveche la funcionalidad de MCP sin restricciones de ejecución de procesos. A diferencia del SDK oficial de MCP de Anthropic, MCP Bridge es completamente independiente y está diseñado para funcionar con cualquier backend de LLM, lo que lo hace adaptable, modular y a prueba de futuro para diversos despliegues. Con niveles de ejecución basados en riesgo opcionales, proporciona controles de seguridad granulares—desde ejecución estándar hasta flujos de confirmación y aislamiento con Docker—mientras mantiene compatibilidad hacia atrás con clientes MCP estándar.

Complementando esta infraestructura del lado del servidor, hay dos implementaciones de clientes inteligentes distintas:

  1. Agente MCP-Gemini en Python - Un cliente Python de línea de comandos para entornos de escritorio
  2. Agente MCP de React Native - Una aplicación móvil moderna multiplataforma

Ambos clientes permiten la interacción en lenguaje natural con herramientas MCP a través de interfaces inteligentes impulsadas por LLM que cuentan con razonamiento de múltiples pasos para operaciones complejas, manejo de flujos de confirmación de seguridad y opciones de visualización configurables para una mayor usabilidad. Juntos, las capacidades versátiles del lado del servidor de MCP Bridge y estas interfaces de cliente inteligentes crean un ecosistema poderoso para desarrollar aplicaciones sofisticadas impulsadas por LLM.

⚠️ El Problema

  • Muchos servidores MCP utilizan transportes STDIO que requieren ejecución de procesos locales
  • Dispositivos periféricos, dispositivos móviles, navegadores web y otras plataformas no pueden ejecutar eficientemente servidores MCP de npm o Python
  • Las conexiones directas a servidores MCP son poco prácticas en entornos con recursos limitados
  • Múltiples clientes aislados conectándose a los mismos servidores causa redundancia y aumenta el uso de recursos
  • Interactuar directamente con herramientas MCP requiere conocimiento técnico de formatos y requisitos específicos de las herramientas

🏗️ Arquitectura

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

💾 Instalación

📦 Requisitos Previos

  • Node.js 18+ para MCP Bridge
  • Python 3.8+ para el Agente MCP-Gemini en Python
  • Entorno de desarrollo de React Native para la aplicación móvil

🚀 Configuración Rápida

MCP Bridge

# Install dependencies
npm install express cors morgan uuid

# Start the server
node mcp-bridge.js

Agente MCP-Gemini en Python

# Install dependencies
pip install google-generativeai requests rich

# Start the agent
python llm_test.py

Agente MCP de React Native

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

# Install dependencies
npm install

# Start the development server
npx expo start

🐍 Agente MCP-Gemini en Python

El Agente MCP-Gemini en Python es un cliente de línea de comandos que se conecta a MCP Bridge y utiliza el LLM Gemini de Google para procesar solicitudes de usuario y ejecutar comandos de herramientas MCP. Está diseñado para entornos de escritorio y flujos de trabajo de desarrolladores.

Características Clave

  1. Razonamiento de múltiples pasos - Soporta llamadas de herramientas secuenciadas para operaciones complejas
  2. Flujo de confirmación de seguridad - Manejo integrado para operaciones de riesgo medio y alto
  3. Visualización JSON flexible - Controla la verbosidad de las salidas JSON para una mejor legibilidad
  4. Conexión configurable - Conéctate a cualquier instancia de MCP Bridge con URL y puerto personalizados
  5. Descubrimiento de herramientas disponibles - Detecta y utiliza automáticamente todas las herramientas de los servidores conectados

Configuración del Agente Python

El Agente MCP-Gemini en Python soporta varias opciones de línea de comandos:

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)

Ejemplos de Uso del 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 MCP de React Native

El Agente MCP de React Native es una aplicación móvil moderna y multiplataforma que proporciona acceso intuitivo a herramientas MCP a través de una interfaz limpia y fácil de usar. Construido con Expo y React Native Paper, ofrece una interfaz de Material Design 3 con tema oscuro optimizada para plataformas iOS y Android.

Características Clave

  • Compatibilidad Multiplataforma: Funciona en plataformas iOS, Android y web
  • Interfaz de Chat Intuitiva: Interacción en lenguaje natural con visualización de mensajes segmentados
  • Ejecución de Herramientas en Tiempo Real: Retroalimentación visual para llamadas de herramientas MCP con secciones de resultados plegables
  • Gestión de Conversaciones: Historial de conversaciones persistente con títulos generados por IA
  • UI/UX Moderna: Tema oscuro con efectos de glassmorphism y animaciones suaves
  • Configuración Integral: Configuración fácil de conexiones de MCP Bridge y ajustes de la API de Gemini
  • Integración de Seguridad: Soporte integrado para los flujos de confirmación de niveles de riesgo de MCP Bridge
  • Soporte Multi-Modelo: Compatible con varios modelos de Gemini, incluido el último 2.5 Flash Preview

Comenzando con la aplicación React Native

  1. Configura MCP Bridge: Establece la URL de tu servidor MCP Bridge en la pestaña de Configuración
  2. Agrega la Clave de API de Gemini: Ingresa tu clave de API de Google Gemini para la funcionalidad de IA
  3. Selecciona el Modelo: Elige entre los modelos de Gemini disponibles, incluidos los últimos lanzamientos
  4. Comienza a Chatear: Inicia conversaciones en lenguaje natural con tus herramientas MCP

La aplicación descubre automáticamente las herramientas MCP disponibles y proporciona asistencia contextual para operaciones complejas de múltiples pasos.

⚙️ Configuración

Configuración de MCP Bridge

MCP Bridge se configura a través de un archivo JSON llamado mcp_config.json en la raíz del proyecto. Este es un ejemplo de una configuración 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 de la API

MCP Bridge expone una API REST limpia e intuitiva para interactuar con servidores conectados. Aquí hay un desglose de los endpoints disponibles:

📋 Endpoints Generales

EndpointMétodoDescripción
/serversGETLista todos los servidores MCP conectados
/serversPOSTInicia un nuevo servidor MCP
/servers/{serverId}DELETEDetiene y elimina un servidor MCP
/healthGETObtiene el estado de salud de MCP Bridge
/confirmations/{confirmationId}POSTConfirma la ejecución de una solicitud de nivel de riesgo medio

📌 Endpoints Específicos del Servidor

EndpointMétodoDescripción
/servers/{serverId}/toolsGETLista todas las herramientas de un servidor específico
/servers/{serverId}/tools/{toolName}POSTEjecuta una herramienta específica
/servers/{serverId}/resourcesGETLista todos los recursos
/servers/{serverId}/resources/{resourceUri}GETRecupera el contenido de un recurso específico
/servers/{serverId}/promptsGETLista todos los prompts
/servers/{serverId}/prompts/{promptName}POSTEjecuta un prompt con argumentos

🧪 Ejemplos de Solicitudes

📂 Leer Directorio (Sistema de Archivos)

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

{
  "path": "."
}

🧪 Características del Cliente

Características del Agente Python

El Agente MCP-Gemini en Python proporciona:

  1. Razonamiento de múltiples pasos - Soporta llamadas de herramientas secuenciadas para operaciones complejas
  2. Flujo de confirmación de seguridad - Manejo integrado para operaciones de riesgo medio y alto
  3. Visualización JSON flexible - Controla la verbosidad de las salidas JSON para una mejor legibilidad
  4. Conexión configurable - Conéctate a cualquier instancia de MCP Bridge con URL y puerto personalizados
  5. Descubrimiento de herramientas disponibles - Detecta y utiliza automáticamente todas las herramientas de los servidores conectados

Características del Agente React Native

El Agente MCP de React Native proporciona:

  1. Gestión de Conversaciones - Historial de chat persistente con títulos generados por IA
  2. Visualización de Mensajes Segmentados - Separación limpia de respuestas de texto y operaciones de herramientas
  3. Ejecución de Herramientas en Tiempo Real - Retroalimentación visual con secciones de resultados plegables
  4. Interfaz de Confirmación de Seguridad - Diálogos de confirmación nativos para operaciones de riesgo medio/alto
  5. Soporte Multi-Modelo - Soporte para varios modelos de Gemini con cambio fácil
  6. Multiplataforma - Funciona en plataformas iOS, Android y web
  7. Material Design Moderno - Tema oscuro con animaciones suaves y retroalimentación háptica

🔐 Niveles de Riesgo

MCP Bridge implementa un sistema de niveles de riesgo opcional que proporciona control sobre los comportamientos de ejecución del servidor. Los niveles de riesgo ayudan a gestionar preocupaciones de seguridad y recursos al ejecutar operaciones potencialmente sensibles del servidor MCP.

Clasificación de Niveles de Riesgo

NivelNombreDescripciónComportamiento
1BajoEjecución estándarEjecución directa sin confirmación
2MedioRequiere confirmaciónEl cliente debe confirmar la ejecución antes de procesar
3AltoEjecución con Docker requeridaEl servidor se ejecuta en un contenedor Docker aislado

Configuración de Niveles de Riesgo

Los niveles de riesgo son opcionales para compatibilidad hacia atrás. Puedes configurar los niveles de riesgo en tu 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"
      }
    }
  }
}

Flujos de Trabajo de Niveles de Riesgo

Riesgo Bajo (Nivel 1)

  • Ejecución estándar sin pasos adicionales
  • Adecuado para operaciones con preocupaciones mínimas de seguridad
  • Este es el comportamiento predeterminado cuando no se especifica un nivel de riesgo

Riesgo Medio (Nivel 2)

  1. El cliente realiza una solicitud de ejecución de herramienta
  2. El servidor responde con una solicitud de confirmación que contiene un ID de confirmación
  3. El cliente debe realizar una solicitud de confirmación separada para continuar
  4. Solo después de la confirmación, el servidor ejecuta la operación

Tanto el Agente MCP-Gemini en Python como el Agente de React Native manejan este flujo de confirmación automáticamente, solicitando la aprobación del usuario cuando sea necesario.

Riesgo Alto (Nivel 3)

  • El servidor se ejecuta automáticamente en un contenedor Docker aislado
  • Proporciona aislamiento ambiental para el proceso del servidor MCP
  • Requiere que Docker esté instalado y configurado correctamente

📋 Registro de Cambios

Últimas Actualizaciones

  • ✅ Soporte del Administrador de Paquetes UV: Se corrigió el problema con la carga de servidores MCP basados en UV (Python). MCP Bridge ahora inicializa y se comunica correctamente con servidores MCP de Python que utilizan el administrador de paquetes UV, resolviendo problemas de compatibilidad anteriores con cadenas de herramientas basadas en UV.

  • 📱 Agente MCP de React Native: Se agregó una aplicación móvil integral con:

    • Soporte multiplataforma para iOS, Android y web
    • Interfaz moderna de Material Design 3 con tema oscuro
    • Gestión inteligente de conversaciones con títulos generados por IA
    • Ejecución de herramientas en tiempo real con retroalimentación visual
    • Flujos de confirmación de seguridad integrados
    • Soporte para múltiples modelos de Gemini, incluidos los últimos lanzamientos
  • 🔧 Ejecución de Herramientas Mejorada: Se mejoraron las capacidades de razonamiento de múltiples pasos en todos los clientes

  • 🛡️ Mejoras de Seguridad: Se mejoraron los flujos de confirmación de niveles de riesgo con mejor experiencia de usuario

  • 📊 Mejor Manejo de Errores: Mecanismos de manejo y recuperación de errores más robustos

🌟 Impacto Comunitario y Reconocimiento

MCP Bridge ha ganado reconocimiento dentro de las comunidades de IA y desarrollo, siendo destacado en investigación académica, análisis de seguridad de la industria, discurso profesional y publicaciones técnicas. Estos reconocimientos resaltan el valor práctico y el impacto en el mundo real de nuestra solución de proxy ligera y agnóstica de LLM.

arXiv Research Paper Citation

Citado por este artículo: De Inyecciones de Prompts a Explotaciones de Protocolo: Amenazas en Flujos de Trabajo de Agentes de IA Impulsados por LLM - Un artículo de investigación que discute las implicaciones de seguridad en flujos de trabajo de agentes de IA impulsados por LLM

Wiz Security Research Briefing

Informe de Investigación: Seguridad de MCP - Investigación de seguridad de Wiz que destaca a MCP Bridge como un ejemplo de trabajo académico en el ecosistema MCP

LinkedIn Professional Discourse *[Publicación de LinkedIn por Vaibhava Lakshmi Ravideshik](https://www.linkedin.com/posts/vaibhava-lakshmi-ravideshik_aiintegration-modelcontextprotocol-llm-activity-7344581233097547777-IktU/) - Discusión de un instructor de LinkedIn Learning sobre las aplicaciones prácticas de MCP Bridge* Medium Technical Article

Desbloqueando aplicaciones agénticas con el Protocolo de Contexto de Modelo (MCP) para servicios financieros - Artículo de Medium que presenta el patrón de diseño de MCP Bridge para aplicaciones financieras

🚧 Consideraciones de implementación

🔒 Seguridad

  • Usa HTTPS en producción
  • Añade autenticación para operaciones sensibles
  • Aísla por red los servicios críticos

📊 Escalado

  • Usa balanceadores de carga
  • Agrupa servidores de alta demanda
  • Realiza seguimiento de métricas y presión de recursos

📱 Implementación móvil

Para la aplicación React Native:

  • Compila para producción usando npx expo build
  • Configura la implementación en la tienda de aplicaciones con EAS Build
  • Configura actualizaciones por aire con EAS Update

📊 Comparación con otros repositorios de MCP Bridge/Proxy

Característicaivanboring/mcp-restINQUIRELAB/mcp-bridge-api (Este repositorio)SecretiveShell/MCP-BridgeJoshuaRileyDev/mcp-apirakesh-eltropy/mcp-clientbartolli/mcp-llm-bridge
⚙️ Lenguaje principalNode.jsNode.js (Bridge) + Python (Agente) ✨PythonNode.jsPythonPython
🎯 Propósito principalEnvoltorio REST simpleBridge REST independiente del LLM + Agente GeminiBridge OpenAI y REST con muchas funciones + Servidor MCPAPI REST para servidores MCP + Ejemplo de interfaz de chatAgente LangChain con herramientas MCP (REST/CLI)Bridge LLM MCP <-> (compatible con OpenAI)
🔌 Conexión MCPSolo SSESTDIO (gestionado) + Docker (basado en riesgo) ✔️STDIO, SSE, DockerSTDIOSTDIO (LangChain)STDIO
🚀 Interfaz de APIREST básicoAPI REST unificada ✔️Compatible con OpenAI, REST, Servidor MCP (SSE)API REST + SwaggerAPI REST (streaming), CLICLI interactivo
✨ Características claveLista/llamada básica de herramientasMulti-servidor, niveles de riesgo, confirmación de seguridad, ejecución Docker, agente Gemini, flexibilidad de configuración ✨Compatible con OpenAI, muestreo, multi-transporte, autenticación, Docker/Helm, configuración flexibleMulti-servidor, normalización de nombres de herramientas, Swagger, interfaz de chatIntegración LangChain, REST/CLI, streamingTraducción de protocolo bidireccional, herramienta de base de datos
🔧 ConfiguraciónArgumentos de CLIArchivo JSON + variables de entorno ✔️Archivo JSON, URL HTTP, variables de entornoArchivo JSON (búsqueda multi-ruta), variables de entornoArchivo JSONObjeto Python, variables de entorno
🧩 Integración LLMNingunaSí (agente Gemini dedicado con razonamiento multi-paso) ✨Sí (punto final OpenAI)Ninguna (solo API)Sí (LangChain)Sí (cliente OpenAI)
🏗️ ComplejidadBajaBaja ✔️AltaModeradaModerada-altaModerada
🛡️ Características de seguridadNingunaNiveles de riesgo (medio/alto) + flujo de confirmación + aislamiento Docker ✨Autenticación básica (claves API), CORSNingunaNingunaNinguna
📦 Dependencias claveexpress, mcp-clientexpress, uuid (Bridge, dependencia mínima); requests, google-genai, rich (Agente)fastapi, mcp, mcpxexpress, @mcp/sdk, socket.iofastapi, `

Alcance de la licencia

El código original del laboratorio INQUIRE está licenciado bajo la Licencia No Comercial PolyForm 1.0.0. Los conjuntos de datos, figuras y documentación originales del laboratorio INQUIRE están licenciados bajo CC BY-NC 4.0. Consulta LICENCIA para conocer el alcance y los textos completos de las licencias. Los materiales de otros titulares de derechos conservan sus términos originales.