mcpField
M
MCP Test Client

MCP Test Client

本地服务
github.com/crazyrabbitLTC开发工具1395 周前更新

关于 MCP Test Client

MCP Test Client 是面向 TypeScript 开发者的 MCP 服务测试工具,可连接服务、调用工具并验证响应。它还附带模拟计算器服务示例。

主要功能

  1. 01连接 MCP 服务
  2. 02列出可用工具
  3. 03调用指定工具
  4. 04断言验证响应
  5. 05附带模拟计算器服务

适用场景

  1. 01测试 MCP 服务的工具调用
  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. Fork 仓库
  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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。