mcpField
M
mcp-z-client

mcp-z-client

github.com/mcp-z開発1110 回インストール3 週間前に更新
リポジトリ

mcp-z-client について

MCP サーバーの設定、起動、接続、機能の探索、呼び出し、終了処理を管理する JavaScript クライアントライブラリです。ツール、プロンプト、リソースの応答を型付きデータとして扱えます。

主な機能

  1. 01MCP サーバー設定の管理
  2. 02HTTP・stdio 接続と起動
  3. 03ツール・プロンプト・リソースの探索と呼び出し
  4. 04応答データの変換ヘルパー
  5. 05接続とプロセスの終了処理

活用シーン

  1. 01複数の MCP サーバーへの接続
  2. 02ローカルサーバーの起動と利用
  3. 03MCP サーバーの機能確認とテスト

MCP 対応

MCP サーバーの設定や接続を管理し、ツール、プロンプト、リソースを探索・呼び出します。管理対象のクライアントや起動プロセスを終了できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mcp-z/client --skill mcp-z-client

インストール後、Claude Code で/mcp-z-clientを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

resources/
automated-testing.md
connect-public-server.md
discover-capabilities.md
embedded-cluster.md
multiple-servers.md
spawn-local-server.md

詳細

@mcp-z/client

@mcp-z/client は、MCP サーバーの設定、プロセスの起動、接続、検出、呼び出し、クリーンアップを管理します。ツール、プロンプト、リソースの呼び出しは、型付きの MCP データと表現ヘルパーを含む通常のレスポンスを返します。

インストール

npm install @mcp-z/client

設定を新たに作成する前に、利用するプロジェクトの既存の MCP 設定を確認してください。標準の .mcp.json では、mcpServers の下にエントリーを格納します。

クライアントを使用する

HTTP エントリーには type: 'http' を指定します。stdio エントリーには command と、任意の args および env を指定します。

registry.close() は、管理対象のすべてのクライアントと起動したプロセスを終了します。finally 内で呼び出すか、利用するランタイムとプロジェクトの規約が明示的なリソース管理に対応している場合は、await using registry = createServerRegistry(config) を使用してください。

ツール名とスキーマは、このスキルではなく接続先のサーバーに属します。使い慣れていない呼び出しを組み立てる前に client.listTools() を呼び出し、返された入力スキーマを使用してください。検出は読み取り専用です。ツールの呼び出しは外部の状態を変更する可能性があるため、ユーザーが要求した操作の範囲内にとどめてください。

簡易メソッドでは、単純な引数を受け付けます。

  • client.callTool(name, args)
  • client.getPrompt(name, args)
  • client.readResource(uri)

ツールのレスポンスには content、structuredContent、isError、_meta が含まれます。プロンプトのレスポンスには description、messages、_meta が含まれます。リソースのレスポンスには contents と _meta が含まれます。json() と text() ヘルパーは、変換時のセマンティクスを維持します。ツールの場合、json() は structuredContent があればそれを返し、なければ最初のテキストブロックを解析します。拡張を含む MCP の完全な結果をシリアライズするには、JSON.stringify(response) を使用してください。

callTool() を await すると、MCP の isError 結果に対して ToolResponseError が発生します。その response には MCP のエラー結果全体が保持されます。プロトコルおよびトランスポートの拒否は、そのまま伝播します。解析エラーや互換性のないコンテンツによるエラーは、json() または text() の呼び出し時に発生します。

例

接続オプション

createServerRegistry(config, { cwd, env, dialects }) は、起動するプロセスを制御します。env を指定すると、process.env とマージするのではなく、ベース環境が置き換えられます。

デフォルトの dialects: ['servers'] は、stdio の command エントリーを起動します。start ブロックを持つ HTTP エントリーを起動するには、dialects: ['start'] を指定します。両方の形式を起動する場合は、['servers', 'start'] を指定します。

registry.connect(name, { versionNegotiation: { mode: 'auto' } }) は、現在のプロトコルリビジョンを確認し、従来のシーケンスにフォールバックします。呼び出し元が特定のプロトコルを必要とする場合に限り、リビジョンを固定してください。

コメント