关于 MCP Test Client
MCP Test Client 是面向 TypeScript 开发者的 MCP 服务测试工具,可连接服务、调用工具并验证响应。它还附带模拟计算器服务示例。
主要功能
- 01连接 MCP 服务
- 02列出可用工具
- 03调用指定工具
- 04断言验证响应
- 05附带模拟计算器服务
适用场景
- 01测试 MCP 服务的工具调用
- 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
贡献
- Fork 仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 创建 Pull Request
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。