Bruno API MCP Server

by djkz
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Exposes Bruno API collections as MCP tools, allowing interaction with APIs defined in Bruno collections through automatic conversion of requests to tools. Supports environment management, variable replacements, and custom request parameters.

Servidor MCP de la API de Bruno

Un servidor de Protocolo de Contexto de Modelo (MCP) que expone las colecciones de API de Bruno como herramientas MCP. Este servidor le permite interactuar con sus colecciones de API de Bruno mediante el protocolo MCP, lo que permite que agentes de IA y otros clientes MCP puedan acceder a ellas.

Por qué es importante: el código fuente y los datos trabajan juntos

Cuando los desarrolladores necesitan integrar API, generalmente enfrentan tres desafíos principales:

  1. Depuración a través de los límites del sistema : diagnosticar problemas en entornos de datos y códigos separados requiere un cambio de contexto constante, lo que hace que la resolución de problemas sea ineficiente.
  2. Creación de herramientas personalizadas : cada integración de API de terceros requiere la creación y el mantenimiento de herramientas personalizadas, lo que genera sobrecarga de desarrollo y deuda técnica.
  3. Creación de interfaces de usuario de servicios : desarrollar interfaces de usuario para cada servicio backend agrega una complejidad y costos de mantenimiento significativos.

Este servidor resuelve estos problemas específicos integrando el código fuente con los datos. Transforma las colecciones de la API de Bruno en herramientas del Protocolo de Contexto de Modelo, lo que permite:

  • Depuración en entornos previamente separados con contexto completo
  • Convierta cualquier API en una herramienta lista para agentes sin desarrollo personalizado adicional
  • Cree servicios sin cabeza que puedan controlarse mediante interfaces de IA

Para los equipos de desarrollo que necesitan acelerar la integración de API y al mismo tiempo reducir los costos de mantenimiento, este enfoque cambia fundamentalmente lo que es posible, haciendo que las integraciones que antes eran complejas sean sencillas y accesibles.

Características

  • Conversión automática de colecciones de API de Bruno a herramientas MCP
  • Gestión del entorno para diferentes configuraciones de API
  • HTTP con transporte SSE
  • Soporte entre orígenes
  • Herramientas integradas para la gestión de recopilaciones de API

Uso

  1. Instalar dependencias:
    npm install
  2. Inicie el servidor con su colección de API de Bruno:
    node --loader ts-node/esm src/index.ts --bruno-path /path/to/bruno/collection [--environment env_name] [--include-tools tool1,tool2,tool3] [--exclude-tools tool4,tool5]
    Opciones:
    • --bruno-path o -b : Ruta al directorio de colección de API de Bruno (obligatorio)
    • --environment o -e : Nombre del entorno a utilizar (opcional)
    • --include-tools : Lista separada por comas de nombres de herramientas para incluir, filtrando todos los demás (opcional)
    • --exclude-tools : Lista separada por comas de nombres de herramientas para excluir (opcional)

    Ambos formatos son compatibles con las opciones de filtrado de herramientas:

    --include-tools tool1,tool2,tool3 # Space-separated format --include-tools=tool1,tool2,tool3 # Equals-sign format
  3. Conectarse desde los clientes:
    • Conexión local: http://localhost:8000/sse
    • De Windows a WSL: http://<WSL_IP>:8000/sse
    • Obtenga su IP WSL con: hostname -I | awk '{print $1}'

Scripts predefinidos

El repositorio incluye varios scripts npm predefinidos para casos de uso comunes:

# Start the server with default settings npm start # Start with CFI API path npm run start:cfi # Start with local environment npm run start:local # Start with only specific tools included npm run start:include-tools # Start with specific tools excluded npm run start:exclude-tools

Desarrollo

Ejecución de pruebas

Ejecutar todas las pruebas:

npm test

Ejecutar archivo de prueba específico:

npm test test/bruno-parser-auth.test.ts

Depuración

El servidor utiliza la biblioteca debug para el registro detallado. Puede habilitar diferentes espacios de nombres de depuración configurando la variable de entorno DEBUG :

# Debug everything DEBUG=* npm start # Debug specific components DEBUG=bruno-parser npm start # Debug Bruno parser operations DEBUG=bruno-request npm start # Debug request execution DEBUG=bruno-tools npm start # Debug tool creation and registration # Debug multiple specific components DEBUG=bruno-parser,bruno-request npm start # On Windows CMD: set DEBUG=bruno-parser,bruno-request && npm start # On Windows PowerShell: $env:DEBUG='bruno-parser,bruno-request'; npm start

Espacios de nombres de depuración disponibles:

  • bruno-parser : análisis de colecciones de API de Bruno y gestión del entorno
  • bruno-request : Ejecución de solicitudes y manejo de respuestas
  • bruno-tools : Creación y registro de herramientas con el servidor MCP

Herramientas

Entornos de lista

Enumera todos los entornos disponibles en su colección de API de Bruno:

  • No se requieren parámetros
  • Devoluciones:
    • Lista de entornos disponibles
    • Entorno actualmente activo

Eco

Hace eco de un mensaje que envías (útil para realizar pruebas):

  • Parámetro: message (cadena)

Estructura de la colección de API de Bruno

Su colección de API de Bruno debe seguir la estructura estándar de Bruno:

collection/ ├── collection.bru # Collection settings ├── environments/ # Environment configurations │ ├── local.bru │ └── remote.bru └── requests/ # API requests ├── request1.bru └── request2.bru

Cada solicitud de su colección se convertirá automáticamente en una herramienta MCP, lo que la hará disponible para su uso a través del protocolo MCP.

Uso de parámetros personalizados con herramientas

Al llamar a herramientas generadas desde su colección de API de Bruno, puede personalizar la solicitud proporcionando:

Anulación del entorno

Puede especificar un entorno diferente para una solicitud específica:

{ "environment": "us-dev" }

Esto utilizará las variables del entorno especificado en lugar del predeterminado.

Reemplazos de variables

Puede anular variables específicas para una sola solicitud:

{ "variables": { "dealId": "abc123", "customerId": "xyz789", "apiKey": "your-api-key" } }

Estas variables se sustituirán en la URL, los encabezados y el cuerpo de la solicitud. Por ejemplo, si la URL de la solicitud es:

{{baseUrl}}/api/deal/{{dealId}}

Y si proporciona { "variables": { "dealId": "abc123" } } , la URL real utilizada será:

https://api.example.com/api/deal/abc123

Parámetros de consulta

Puede agregar o anular parámetros de consulta directamente:

{ "query": { "limit": "10", "offset": "20", "search": "keyword" } }

Esto añadirá estos parámetros de consulta a la URL, independientemente de si están definidos en la solicitud original. Por ejemplo, si la URL de la solicitud es:

{{baseUrl}}/api/deals

Y si proporciona { "query": { "limit": "10", "search": "keyword" } } , la URL real utilizada será:

https://api.example.com/api/deals?limit=10&search=keyword

Este enfoque es más limpio y explícito que usar variables para anular los parámetros de consulta.

Parámetros corporales personalizados

También puede proporcionar parámetros personalizados en el cuerpo de la solicitud:

{ "body": { "name": "John Doe", "email": "john@example.com" } }

Ejemplo completo

A continuación se muestra un ejemplo completo que combina los cuatro tipos de personalización:

{ "environment": "staging", "variables": { "dealId": "abc123", "apiKey": "test-key-staging" }, "query": { "limit": "5", "sort": "created_at" }, "body": { "status": "approved", "amount": 5000 } }

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
F
license - not found
-
quality - not tested

Expone las colecciones de API de Bruno como herramientas del Protocolo de contexto de modelo (MCP), lo que permite que los agentes de IA y los clientes de MCP interactúen con sus colecciones de API.

  1. Why This Matters: Source Code and Data Working Together
    1. Features
      1. Usage
        1. Predefined Scripts
          1. Development
            1. Running Tests
            2. Debugging
          2. Tools
            1. List Environments
            2. Echo
          3. Bruno API Collection Structure
            1. Using Custom Parameters with Tools
              1. Environment Override
              2. Variable Replacements
              3. Query Parameters
              4. Custom Body Parameters
              5. Complete Example
            2. License
              ID: ethgvmsqqz