MCP Test Client について
MCP Test Clientは、MCPサーバーをテストするTypeScriptユーティリティです。サーバーへの接続、ツール呼び出し、結果の検証に対応し、モックの計算機サーバー例も含みます。
主な機能
- 01MCPサーバーへの接続
- 02利用可能なツールの一覧表示
- 03指定したツールの呼び出し
- 04応答結果のアサーション検証
- 05モック計算機サーバーの同梱
活用シーン
- 01MCPサーバーのツール呼び出しテスト
- 02ツール応答の結果検証
- 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 以上)
セットアップ
- リポジトリをクローンします
git clone <repository-url>
cd mcp-test-client
- 依存関係をインストールします
bun install
- テストを実行します
bun test
ライセンス
MIT
貢献
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - Pull Request を作成します
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。