lunge について
lungeは、AIエージェントからREST、GraphQL、WebSocket、SSEのリクエストを実行・テストできるMCPサーバーです。単発のリクエストと再利用可能なYAML・JSONコレクションに対応し、モデルのコンテキスト向けに応答を圧縮します。
主な機能
- 01REST、GraphQL、WebSocket、SSEのリクエスト
- 02アサーションと値の抽出
- 03再利用可能なYAML・JSONコレクション
- 04コンテキストを抑える応答要約
- 05ハンドルによる完全なペイロード取得
活用シーン
- 01AIエージェントからAPIリクエストを実行
- 02アサーションによるエンドポイントテスト
- 03リクエストコレクションの保存と再実行
MCP 対応
互換性のあるAIエージェント向けに、APIの実行とテストをMCPツールとして提供します。READMEにはローカルのstdioサーバーと記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
22掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| env | string | いいえ | 変数解決に使用する環境名。 |
| url | string | はい | 完全な URL。{{variables}} を含めることができます。 |
| auth | object | いいえ | |
| auth.in | enum | いいえ | header | query |
| auth.key | string | いいえ | |
| auth.type | enum | はい | bearer | basic | apikey |
| auth.token | string | いいえ | |
| auth.value | string | いいえ | |
| auth.password | string | いいえ | |
| auth.username | string | いいえ | |
| body | any | いいえ | リクエスト本文(オブジェクトは JSON、文字列はテキスト)。 |
| query | object | いいえ | |
| assert | array | いいえ | 例:[{status:200},{jsonpath:'$.x',equals:1},{timeMs:{lt:500}}]。 |
| method | string | いいえ | HTTP メソッド(デフォルトは GET)。 |
| extract | object | いいえ | 変数を取得します:{ token: '$.token' }。後で {{token}} を使って参照します。 |
| headers | object | いいえ | |
| bodyType | enum | いいえ | デフォルトは json です。json | form | text | raw |
| timeoutMs | integer | いいえ | |
| verbosity | enum | いいえ | summary(デフォルト、トークン効率重視)、headers、または full。extract が設定されている場合は、自動的に summary に切り替わります。summary | headers | full |
| followRedirects | boolean | いいえ |
詳細
lunge
エージェントネイティブな高度な API クライアントです。MCP 対応のあらゆる AI エージェントから、REST、GraphQL、WebSocket、SSE、(将来的には)gRPC リクエストを実行してテストできます。GUI も手動クリックも、大規模なデスクトップアプリも不要です。エージェント向けにネイティブ対応した、高度な curl と考えてください。
AI コーディングエージェントの時代に向けた、Postman/Bruno に代わる軽量でトークン効率のよいツールです。エージェントがツールを直接呼び出すため、人間が介在する必要はなく、使わない機能に対価を払う必要もありません。
これが必要な理由
| Postman/Bruno の課題 | lunge のアプローチ |
|---|---|
| GUI で人間がクリックする必要がある | エージェントネイティブ:すべて MCP ツール呼び出しで実行 |
| Postman は重く、エンタープライズ向け機能は有料 | 小型でオープンな単一のローカルバイナリ+薄い MCP レイヤー |
| 冗長なレスポンスで LLM のコンテキストウィンドウが圧迫される | Rust コアが出力を要約・圧縮してからエージェントに渡す |
| コレクションが独自形式にロックされる | プレーンな YAML/JSON ファイルで、Git と親和性が高い |
| プロトコルごとに別々のツールが必要 | REST/GraphQL/WS/SSE/gRPC に対応する単一サーバー |
設計の柱
- エージェントネイティブ - 人間向けの UI ではなく、LLM のツール呼び出し向けに設計されています。
- トークン効率 - すべてのレスポンスをフィルタリング、切り詰め、要約します。コンテキストを小さく保てるよう、完全なペイロードはディスクに保存し、ハンドルで参照します。
- 高速でポータブル - 実行、プロトコル、要約を担う Rust コアを、napi-rs を介して薄い TypeScript MCP レイヤーに公開します。
- 単発利用にも再利用にも対応 - エージェントは単発のリクエストを実行することも、ファイルとして保存された宣言的なコレクションを作成、保存、再実行することもできます。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| architecture.md | システム設計、Rust/TS の分担、モジュール構成、ストリーミング戦略、FFI 境界 |
| features.md | プロトコル別の全機能と、横断的な機能(認証、変数、アサーション、トークンオプティマイザー) |
| mcp-tools.md | MCP ツールの一覧:名前、入力、出力、使用例 |
| collection-format.md | 宣言的な YAML/JSON テスト/コレクション形式 |
| roadmap.md | 足場づくりから gRPC、CI までの段階的な提供計画 |
確定済みの決定事項
- スタック:napi-rs 経由の Rust コア+TypeScript MCP レイヤー(
@modelcontextprotocol/sdk)。 - 配布:stdio トランスポートを使用するローカル開発ツール(Cursor/Windsurf/Claude Desktop で使用)。
- テスト定義:エージェントによる単発の呼び出しと、永続化された宣言的なコレクションの両方に対応。
- MVP プロトコル:REST、GraphQL、WebSocket、SSE。gRPC は後のフェーズで対応します。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。