ローカルプロセス (stdio) 接続 (Local Process stdio Connection)
stdio 接続タイプを使用すると、Griptape Nodes は標準入出力ストリーム(stdin/stdout)を利用して、ローカルプロセスとして実行されている MCP サーバーと直接通信できます。
stdio を使用する場面 (When to Use stdio)
- ローカルアプリケーション: 同じマシン上で MCP サーバーを実行する場合
- コマンドラインツール: CLI ベースの MCP サーバーと対話する場合
- 開発・デバッグ: テストやローカル開発シナリオ
- シンプルなセットアップ: 最小限の設定オーバーヘッドで済ませたい場合
stdio MCP サーバーの例 (Example stdio MCP Servers)
設定可能な MCP サーバーは多数存在しますが、代表的な例を以下に挙げます:
- Fetch - Web コンテンツの取得と処理
- Filesystem - ファイルおよびディレクトリの操作
設定項目 (Configuration)
必須フィールド (Required Fields)
| フィールド | 型 | 説明 | 例 |
|---|---|---|---|
command |
string | MCP サーバーを起動するコマンド | "npx", "python", "uvx" |
args |
array | コマンドに渡す引数のリスト | ["-y", "@modelcontextprotocol/server-memory"] |
任意フィールド (Optional Fields)
| フィールド | 型 | 説明 | デフォルト値 |
|---|---|---|---|
env |
object | 環境変数 | {} |
cwd |
string | 作業ディレクトリ | 現在のディレクトリ |
encoding |
string | テキストエンコーディング | "utf-8" |
encoding_error_handler |
string | エラー処理戦略 | "strict" |
設定例 (Example Configurations)
Memory サーバー (Node.js)
{
"name": "memory",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"description": "会話間で持続するメモリストレージ"
}
Filesystem サーバー
{
"name": "filesystem",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"],
"env": {
"NODE_ENV": "production"
},
"cwd": "/home/user/projects"
}
セットアップ手順 (Setup Steps)
1. MCP サーバーのインストール
# Node.js サーバーの場合
npm install -g @modelcontextprotocol/server-memory
# Python サーバーの場合
pip install mcp-server-git
# または
uvx mcp-server-git
2. Griptape Nodes での設定
- Griptape Nodes の設定を開きます
- MCP Server 設定画面に移動します
- stdio トランスポートを選択して新しいサーバーを追加します
- コマンドと引数を入力します
- 接続を保存します
3. ワークフローでの使用
- フローに MCPTask ノードを追加します
- 設定した stdio サーバーを選択します
- プロンプトを入力します
- ワークフローを実行します
利点 (Advantages)
- 超低レイテンシ: プロセス間の直接パイプ通信
- シンプルなセットアップ: 最小限の設定のみで動作
- ローカル完結の制御: サーバープロセスのライフサイクルを直接管理可能
- リソース効率: ネットワークオーバーヘッドなし
制限事項 (Limitations)
- ローカル専用: リモートサーバーには接続不可
- プロセス管理の必要性: サーバーのライフサイクルを適切に管理する必要がある
- プラットフォーム依存: OS によってコマンド構文やパスが異なる場合がある
- 単一接続: サーバーインスタンスごとに 1 つの接続
トラブルシューティング (Troubleshooting)
サーバーが起動しない
- コマンドがシステムの
PATHに存在するか確認してください - ファイルの実行権限を確認してください
- すべての依存関係がインストールされているか確認してください
- ターミナルで手動でコマンドを実行してテストしてください
接続タイムアウト
- サーバーが stdio に応答しているか確認してください
- エンコーディング設定を確認してください
- サーバーのエラーログ出力を確認してください
- 作業ディレクトリのアクセス権限を確認してください
権限エラー (Permission Errors)
- 適切なファイルシステム権限があるか確認してください
- ユーザーが必要なディレクトリへのアクセス権を持っているか確認してください
- 環境変数のアクセス権限を確認してください
ベストプラクティス (Best Practices)
- 絶対パスを使用する: コマンドおよび作業ディレクトリには可能な限り絶対パスを指定する
- 環境変数を適切に設定する: 設定やシークレットキーに環境変数を活用する
- エラーを適切に処理する: 堅牢なエラーハンドリングを意識する
- リソースを監視する: メモリリークや過剰な CPU 使用率がないか注意する
- 事前にコマンドをテストする: 設定画面に入力する前にターミナル上で動作確認を行う
次のステップ
- SSE 接続 - HTTP ベースのストリーミング
- Streamable HTTP - ストリーミング対応の HTTP 接続
- WebSocket 接続 - 全二重通信