mcpField
M
MCP Test Client

MCP Test Client

ローカル
github.com/crazyrabbitLTC開発ツール1395 週間前に更新

MCP Test Client について

MCP Test Clientは、MCPサーバーをテストするTypeScriptユーティリティです。サーバーへの接続、ツール呼び出し、結果の検証に対応し、モックの計算機サーバー例も含みます。

主な機能

  1. 01MCPサーバーへの接続
  2. 02利用可能なツールの一覧表示
  3. 03指定したツールの呼び出し
  4. 04応答結果のアサーション検証
  5. 05モック計算機サーバーの同梱

活用シーン

  1. 01MCPサーバーのツール呼び出しテスト
  2. 02ツール応答の結果検証
  3. 03計算機の例を使ったテスト学習

MCP 対応

MCPクライアントとしてサーバーに接続し、ツール一覧の取得、呼び出し、応答の検証を行います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP テストクライアント

Model Context Protocol(MCP)サーバー向けのテストユーティリティです。このクライアントは、ツール呼び出しと応答の検証を行うシンプルなインターフェースを提供し、MCP サーバーの実装をテストするのに役立ちます。

特長

  • MCP サーバー向けの使いやすいテストインターフェース
  • ツールの一覧表示と呼び出しを標準でサポート
  • TypeScript による型安全な実装
  • サーバー応答の検証に使えるアサーションユーティリティ
  • サンプル用のモック計算サーバー実装

インストール

bun install mcp-test-client

使用方法

基本的な例
import { MCPTestClient } from 'mcp-test-client';

describe('MCP Server Tests', () => {
  let client: MCPTestClient;

  beforeAll(async () => {
    client = new MCPTestClient({
      serverCommand: 'bun',
      serverArgs: ['./path/to/your/server.ts'],
    });
    await client.init();
  });

  afterAll(async () => {
    await client.cleanup();
  });

  test('should list available tools', async () => {
    const tools = await client.listTools();
    expect(tools).toContainEqual(
      expect.objectContaining({
        name: 'your-tool-name',
        description: 'Your tool description',
      })
    );
  });

  test('should call a tool', async () => {
    await client.assertToolCall(
      'your-tool-name',
      { arg1: 'value1', arg2: 'value2' },
      (result) => {
        expect(result.content[0].text).toBe('expected result');
      }
    );
  });
});
計算サーバーの例

このパッケージには、テストと学習用のモック計算サーバーが含まれています。

import { MCPTestClient } from 'mcp-test-client';

describe('Calculator Server Tests', () => {
  let client: MCPTestClient;

  beforeAll(async () => {
    client = new MCPTestClient({
      serverCommand: 'bun',
      serverArgs: ['./tests/mocks/calculator.ts'],
    });
    await client.init();
  });

  afterAll(async () => {
    await client.cleanup();
  });

  test('should perform addition', async () => {
    await client.assertToolCall(
      'calculate',
      { operation: 'add', a: 5, b: 3 },
      (result) => {
        expect(result.content[0].text).toBe('8');
      }
    );
  });
});

API リファレンス

MCPTestClient
コンストラクター
constructor(config: { serverCommand: string; serverArgs: string[] })
メソッド
  • init(): Promise<void> - クライアントを初期化し、サーバーに接続します
  • listTools(): Promise<Tool[]> - サーバーで利用できるツールの一覧を取得します
  • callTool(toolName: string, args: Record<string, unknown>): Promise<ToolResult> - 指定したツールを呼び出します
  • assertToolCall(toolName: string, args: Record<string, unknown>, assertion: (result: ToolResult) => void | Promise<void>): Promise<void> - ツールを呼び出し、結果に対してアサーションを実行します
  • cleanup(): Promise<void> - リソースをクリーンアップし、接続を切断します

開発

前提条件
  • Bun(v1.0.0 以上)
セットアップ
  1. リポジトリをクローンします
git clone <repository-url>
cd mcp-test-client
  1. 依存関係をインストールします
bun install
  1. テストを実行します
bun test

ライセンス

MIT

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. Pull Request を作成します

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。