name: mcp-inspector-integration description: 设置MCP检查器,用于调试和测试MCP服务器,包括请求日志记录、响应检查和协议验证。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep
MCP检查器集成
设置MCP检查器用于调试和测试MCP服务器。
功能
- 配置MCP检查器连接
- 设置请求/响应日志记录
- 实现协议调试
- 创建测试场景
- 生成检查报告
- 配置开发工作流
使用场景
在以下情况下调用此技能:
- 调试MCP服务器通信
- 测试工具和资源处理器
- 检查协议消息
- 验证MCP实现
输入参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| serverPath | 字符串 | 是 | MCP服务器入口路径 |
| transport | 字符串 | 否 | 传输类型(stdio, sse) |
| logging | 布尔值 | 否 | 启用详细日志记录 |
生成模式
检查器配置
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"DEBUG": "mcp:*",
"NODE_ENV": "development"
}
}
}
}
调试包装脚本
#!/usr/bin/env node
import { createServer } from './server';
// 启用调试日志记录
process.env.DEBUG = 'mcp:*';
// 记录所有stdin/stdout用于调试
const originalWrite = process.stdout.write.bind(process.stdout);
process.stdout.write = (chunk: any, ...args: any[]) => {
if (process.env.MCP_DEBUG_LOG) {
const fs = require('fs');
fs.appendFileSync(
process.env.MCP_DEBUG_LOG,
`[OUT] ${new Date().toISOString()} ${chunk}
`
);
}
return originalWrite(chunk, ...args);
};
process.stdin.on('data', (chunk) => {
if (process.env.MCP_DEBUG_LOG) {
const fs = require('fs');
fs.appendFileSync(
process.env.MCP_DEBUG_LOG,
`[IN] ${new Date().toISOString()} ${chunk}
`
);
}
});
// 启动服务器
createServer();
开发用NPM脚本
{
"scripts": {
"dev": "tsx watch src/index.ts",
"debug": "MCP_DEBUG_LOG=./debug.log tsx src/index.ts",
"inspect": "npx @anthropic/mcp-inspector node dist/index.js",
"test:mcp": "npx @anthropic/mcp-inspector --test node dist/index.js"
}
}
测试场景
// tests/mcp-scenarios.ts
export const testScenarios = [
{
name: '列出工具',
request: {
jsonrpc: '2.0',
method: 'tools/list',
id: 1,
},
validate: (response: any) => {
return response.result?.tools?.length > 0;
},
},
{
name: '调用工具 - search_files',
request: {
jsonrpc: '2.0',
method: 'tools/call',
params: {
name: 'search_files',
arguments: { pattern: '*.ts', path: './src' },
},
id: 2,
},
validate: (response: any) => {
return !response.error && response.result?.content;
},
},
{
name: '列出资源',
request: {
jsonrpc: '2.0',
method: 'resources/list',
id: 3,
},
validate: (response: any) => {
return Array.isArray(response.result?.resources);
},
},
];
// 运行测试场景
export async function runScenarios(
send: (msg: any) => Promise<any>
): Promise<void> {
for (const scenario of testScenarios) {
console.log(`测试: ${scenario.name}`);
const response = await send(scenario.request);
const passed = scenario.validate(response);
console.log(` ${passed ? '✓ 通过' : '✗ 失败'}`);
if (!passed) {
console.log(' 响应:', JSON.stringify(response, null, 2));
}
}
}
工作流程
- 安装检查器 - 设置MCP检查器
- 配置连接 - 服务器路径和参数
- 启用日志记录 - 调试输出
- 创建场景 - 测试用例
- 运行检查 - 调试会话
- 生成报告 - 检查结果
目标流程
- mcp服务器监控调试
- mcp服务器测试套件
- mcp工具实现