Truto MCP Stdio Proxy について
Truto MCP Stdio Proxyは、stdioベースのMCPクライアントとHTTP Streamable MCPエンドポイントをつなぐコマンドラインブリッジです。セッション管理、プロトコル交渉、SSEメッセージ、終了時の後処理に対応します。
主な機能
- 01stdioからHTTPへのメッセージ転送
- 02JSONとSSEレスポンスの処理
- 03セッションの自動追跡
- 04プロトコルバージョン交渉
- 05サーバー発のSSEメッセージ受信
- 06終了時のセッションクリーンアップ
活用シーン
- 01stdio MCPクライアントからHTTPエンドポイントへの接続
- 02サーバー発の通知やリクエストの受信
MCP 対応
stdioベースのMCPクライアントをHTTP Streamable MCPサーバーに接続し、JSON-RPCメッセージを転送してセッションとプロトコルヘッダーを管理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Truto MCP Stdio Proxy
stdio ベースの MCP クライアントと HTTP Streamable MCP サーバーを接続する CLI プログラムです。stdin から改行区切りの JSON-RPC メッセージを読み取り、HTTP POST 経由で指定された MCP サーバーのエンドポイントに転送し、SSE ストリーミング応答を処理して、応答を stdout に書き込みます。
MCP Streamable HTTP transportを実装しています(プロトコルのバージョンは 2025-11-25)。
機能
- Streamable HTTP トランスポート --
application/jsonとtext/event-streamの両方の応答を完全にサポートします - セッション管理 -- リクエスト間で
MCP-Session-Idを自動的に追跡します - プロトコルバージョンのネゴシエーション -- initialize ハンドシェイクから
protocolVersionを抽出し、以降のリクエストでMCP-Protocol-Versionを送信します - サーバー起点のメッセージ -- サーバーからクライアントへの通知やリクエストを受け取るため、バックグラウンドで GET SSE ストリームを開き、自動で再接続します
- セッションのクリーンアップ -- シャットダウン時に HTTP DELETE を送信して、セッションを正常に終了します
必要条件
- Go 1.24.2 以降(ソースからビルドする場合)
インストール
ビルド済みバイナリのダウンロード
GitHub のリリースページから最新のリリースをダウンロードします。お使いのプラットフォームに対応するバイナリを選択してください。
- Linux(amd64):
truto-mcp-stdio-linux-amd64-v<version> - macOS(Intel):
truto-mcp-stdio-darwin-amd64-v<version> - macOS(Apple Silicon):
truto-mcp-stdio-darwin-arm64-v<version> - Windows(amd64):
truto-mcp-stdio-windows-amd64-v<version>.exe
ダウンロード後、バイナリに実行権限を付与します(Unix 系システムの場合)。
chmod +x truto-mcp-stdio-<platform>-v<version>
ソースからのビルド
go build -o truto-mcp-stdio
使い方
./truto-mcp-stdio <API_URL>
引数
<API_URL>:MCP サーバーの HTTP エンドポイント URL(必須)
例
echo '{"jsonrpc": "2.0", "method": "initialize", "params": {"protocolVersion": "2025-11-25", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}, "id": 1}' | ./truto-mcp-stdio https://api.truto.one/mcp/<your-mcp-id>
クライアントの設定
以下に、主要な MCP クライアントすべての設定手順を示します。/path/to/truto-mcp-stdio をバイナリの実際のパスに、<your-mcp-id> を Truto MCP エンドポイント ID に置き換えてください。
Cursor
設定ファイル:~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト単位)
{
"mcpServers": {
"truto": {
"command": "/path/to/truto-mcp-stdio",
"args": ["https://api.truto.one/mcp/<your-mcp-id>"]
}
}
}
Cursor は設定の変更を自動的に再読み込みするため、再起動は不要です。
Claude Desktop
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"truto": {
"command": "/path/to/truto-mcp-stdio",
"args": ["https://api.truto.one/mcp/<your-mcp-id>"]
}
}
}
編集後、Claude Desktop を完全に再起動する必要があります。
Claude Code(CLI)
CLI から追加します。
claude mcp add truto -- /path/to/truto-mcp-stdio https://api.truto.one/mcp/<your-mcp-id>
または、プロジェクトのルートに .mcp.json を作成します。
{
"mcpServers": {
"truto": {
"type": "stdio",
"command": "/path/to/truto-mcp-stdio",
"args": ["https://api.truto.one/mcp/<your-mcp-id>"]
}
}
}
VS Code(GitHub Copilot)
プロジェクト内に .vscode/mcp.json を作成します。
{
"servers": {
"truto": {
"type": "stdio",
"command": "/path/to/truto-mcp-stdio",
"args": ["https://api.truto.one/mcp/<your-mcp-id>"]
}
}
}
注: VS Code では、ルートキーに
"mcpServers"ではなく"servers"を使用します。
Windsurf
設定ファイルの場所:
- macOS/Linux:
~/.codeium/windsurf/mcp_config.json - Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
"mcpServers": {
"truto": {
"command": "/path/to/truto-mcp-stdio",
"args": ["https://api.truto.one/mcp/<your-mcp-id>"]
}
}
}
編集後、Windsurf を再起動する必要があります。
Cline(VS Code 拡張機能)
Cline サイドバーの MCP Servers パネルから追加するか、設定ファイルを直接編集します。
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
{
"mcpServers": {
"truto": {
"command": "/path/to/truto-mcp-stdio",
"args": ["https://api.truto.one/mcp/<your-mcp-id>"]
}
}
}
開発
go run truto-mcp-stdio.go <API_URL>
動作の仕組み
- stdin から JSON-RPC メッセージを 1 行ずつ読み取ります
- 必須の
Accept、MCP-Session-Id、MCP-Protocol-Versionヘッダーを付けて、各メッセージを MCP エンドポイントに HTTP POST で送信します application/jsonとtext/event-stream(SSE)の両方の形式でレスポンスを処理します- サーバーの初期化レスポンスから
MCP-Session-Idを取得し、以降のすべてのリクエストに含めます - ネゴシエートされた
protocolVersionを取得し、MCP-Protocol-Versionヘッダーとして送信します - 初期化後、サーバーが開始するメッセージを受信するためにバックグラウンドで GET SSE ストリームを開き、自動的に再接続します
- シャットダウン時(stdin のクローズまたはシグナル受信時)に HTTP DELETE を送信し、セッションを正常に終了します
- エラーと診断情報は stderr に書き込みます
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。