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.

ブルーノ API MCP サーバー

Bruno APIコレクションをMCPツールとして公開するモデルコンテキストプロトコル(MCP)サーバー。このサーバーを使用すると、MCPプロトコルを介してBruno APIコレクションとやり取りし、AIエージェントや他のMCPクライアントからAPIコレクションにアクセスできるようになります。

これが重要な理由: ソースコードとデータの連携

開発者が API を統合する必要がある場合、通常、次の 3 つの主要な課題に直面します。

  1. システム境界を越えたデバッグ: 別々のコードおよびデータ環境にわたる問題の診断には、継続的なコンテキストの切り替えが必要となり、トラブルシューティングが非効率的になります。
  2. カスタム ツールの作成: サードパーティ API 統合ごとにカスタム ツールの構築と保守が必要となり、開発のオーバーヘッドと技術的負債が発生します。
  3. サービス UI の構築: すべてのバックエンド サービスのユーザー インターフェイスを開発すると、複雑さが増し、メンテナンス コストも大幅に増加します。

このサーバーは、ソースコードとデータを共存させることで、まさにこれらの問題を解決します。Bruno APIコレクションをモデルコンテキストプロトコルツールに変換することで、以下のことが可能になります。

  • 完全なコンテキストで以前は別々だった環境をデバッグ
  • 追加のカスタム開発なしで、あらゆるAPIをエージェント対応ツールに変換します
  • AIインターフェースを介して制御できるヘッドレスサービスを構築する

メンテナンスのオーバーヘッドを削減しながら API 統合を加速する必要がある開発チームにとって、このアプローチは、これまで複雑だった統合を簡単かつアクセスしやすいものにすることで、可能性を根本的に変えます。

特徴

  • Bruno API コレクションを MCP ツールに自動変換
  • さまざまなAPI構成の環境管理
  • SSEトランスポートを使用したHTTP
  • クロスオリジンサポート
  • APIコレクション管理用の組み込みツール

使用法

  1. 依存関係をインストールします:
    npm install
  2. Bruno API コレクションを使用してサーバーを起動します。
    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]
    オプション:
    • --bruno-pathまたは-b : Bruno API コレクション ディレクトリへのパス (必須)
    • --environmentまたは-e : 使用する環境の名前(オプション)
    • --include-tools : 含めるツール名のカンマ区切りリスト。他のツールは除外されます(オプション)
    • --exclude-tools : 除外するツール名のカンマ区切りリスト(オプション)

    ツールのフィルタリング オプションでは、両方の形式がサポートされています。

    --include-tools tool1,tool2,tool3 # Space-separated format --include-tools=tool1,tool2,tool3 # Equals-sign format
  3. クライアントから接続:
    • ローカル接続: http://localhost:8000/sse
    • Windows から WSL へ: http://<WSL_IP>:8000/sse
    • WSL IP を取得するには、次のコマンドを実行します: hostname -I | awk '{print $1}'

定義済みスクリプト

リポジトリには、一般的なユースケース向けに事前定義された npm スクリプトがいくつか含まれています。

# 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

発達

テストの実行

すべてのテストを実行します。

npm test

特定のテスト ファイルを実行します。

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

デバッグ

サーバーは詳細なログ出力のためにdebugライブラリを使用します。DEBUG環境変数を設定することで、異なる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

利用可能なデバッグ名前空間:

  • bruno-parser : Bruno API コレクション解析と環境処理
  • bruno-request : リクエストの実行とレスポンスの処理
  • bruno-tools : ツールの作成とMCPサーバーへの登録

ツール

環境の一覧

Bruno API コレクションで利用可能なすべての環境を一覧表示します。

  • パラメータは必要ありません
  • 戻り値:
    • 利用可能な環境のリスト
    • 現在アクティブな環境

エコー

送信したメッセージをエコーバックします (テストに便利です):

  • パラメータ: message (文字列)

ブルーノ API コレクション構造

Bruno API コレクションは、標準の Bruno 構造に従う必要があります。

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

コレクション内の各リクエストは自動的に MCP ツールに変換され、MCP プロトコルを通じて使用できるようになります。

ツールでカスタムパラメータを使用する

Bruno API コレクションから生成されたツールを呼び出すときは、以下を指定してリクエストをカスタマイズできます。

環境オーバーライド

特定のリクエストに対して異なる環境を指定できます。

{ "environment": "us-dev" }

これにより、デフォルトの環境ではなく、指定された環境の変数が使用されます。

変数の置き換え

単一のリクエストに対して特定の変数をオーバーライドできます。

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

これらの変数は、URL、ヘッダー、リクエスト本文で置換されます。例えば、リクエストURLが以下の場合:

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

そして、 { "variables": { "dealId": "abc123" } }を指定すると、実際に使用される URL は次のようになります。

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

クエリパラメータ

クエリ パラメータを直接追加または上書きできます。

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

これにより、元のリクエストで定義されているかどうかに関係なく、これらのクエリパラメータがURLに追加されます。例えば、リクエストURLが以下の場合:

{{baseUrl}}/api/deals

そして{ "query": { "limit": "10", "search": "keyword" } }を指定すると、実際に使用される URL は次のようになります。

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

このアプローチは、変数を使用してクエリ パラメータをオーバーライドするよりも簡潔で明示的です。

カスタムボディパラメータ

リクエスト本文にカスタム パラメータを指定することもできます。

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

完全な例

以下は、4 種類のカスタマイズをすべて組み合わせた完全な例です。

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

ライセンス

マサチューセッツ工科大学

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

Bruno API コレクションをモデル コンテキスト プロトコル (MCP) ツールとして公開し、AI エージェントと MCP クライアントが 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