使用说明
MCP测试仪
一个功能齐全的VSCode扩展,用于测试和调试模型上下文协议(MCP)服务器。此扩展提供与官方MCP Inspector相同的功能,支持多种传输协议,并具有用于MCP服务器管理和交互的直观界面。
🚀 核心功能
📡 多协议支持
- STDIO传输:支持本地命令行MCP服务器
- SSE(服务器发送事件):基于HTTP流式传输事件的连接
- 可流式传输的HTTP:HTTP流传输协议
- 自定义头:支持身份验证和自定义HTTP标头
🛠️ 完整的MCP功能
- 工具管理:列出、查看和调用MCP工具
- 资源管理:浏览、阅读和订阅MCP资源
- 提示管理:管理和使用MCP提示模板
- 根管理:查看和管理服务器根目录
- 实时通知:接收服务器通知和状态更新
🎯 高级功能
- 视觉界面:使用Vue.js构建的现代WebView UI
- 配置管理:保存和管理多个服务器配置
- 请求历史:完成请求/响应历史跟踪
- 错误处理:全面的错误处理和用户反馈
- 状态监控:实时连接状态和服务器功能显示
- 采样支持:MCP采样请求和响应支持
- 完工支持:参数自动补全支持
🔧 开发者工具
- 命令面板集成:所有功能均可通过VSCode命令面板访问
- 状态栏显示:实时连接状态显示
- 配置导入/导出:MCP服务器配置导入/导出支持
- 日志管理:支持设置日志级别和查看日志
- Ping测试:测试服务器连接和响应
📦 安装
从源代码构建
- 克隆存储库:
git clone https://github.com/echo-ai100/mcp-tester.git
cd mcp-tester
- 安装主要项目依赖项:
npm install
- 安装Vue webview依赖项:
npm run install-webview
- 构建项目:
cd ./src/vue-webview && npm run build
cd ../../ && npm run build
- 构建.vsix文件:
npx vsce package
从VSIX安装
- 下载最新
.vsix文件来自发布 - 打开VSCode
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 键入“扩展:从VSIX安装…”
- 选择已下载的
.vsix文件 - 出现提示时重新加载VSCode
🎮 用法
1.启动MCP测试仪
通过命令面板:
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P) - 类型“MCP:打开MCP测试仪”
通过活动栏:
- 单击左侧活动栏中的MCP Tester图标
通过状态栏:
- 单击底部状态栏中的MCP连接状态
2.连接到MCP服务器
STDIO交通(建议用于当地发展)
对于本地命令行MCP服务器:
{
"type": "stdio",
"command": "node",
"args": ["path/to/your/mcp-server.js"],
"env": {
"API_KEY": "your-api-key",
"DEBUG": "true"
}
}
配置示例:
{
"type": "stdio",
"command": "npx",
"args": ["@modelcontextprotocol/server-everything"],
"env": {
"NODE_ENV": "development"
}
}
SSE(服务器发送事件)传输
对于HTTP流传输:
{
"type": "sse",
"url": "http://localhost:3000/sse",
"customHeaders": {
"Authorization": "Bearer your-token",
"X-API-Key": "your-api-key"
}
}
可流式HTTP传输
对于HTTP流传输:
{
"type": "streamable-http",
"url": "http://localhost:3000/mcp",
"customHeaders": {
"Authorization": "Bearer your-token"
}
}
3.使用MCP功能
连接后,您可以:
🛠️ 工具
- 列出工具:查看服务器提供的所有工具
- 查看工具详细信息:检查工具输入/输出模式
- 调用工具:使用表单或JSON格式调用工具
- 查看结果:查看工具执行结果和错误消息
📄 资源
- 浏览资源:查看可用资源列表
- 阅读资源:获取资源内容
- 订阅资源:订阅资源更改通知
- 资源模板:使用参数化资源模板
💬 提示词
- 管理提示:查看和使用预定义的提示
- 参数填写:为提示提供参数
- 获取结果:检索生成的提示内容
📁 根
- 查看根目录:列出服务器根目录
- 目录管理:管理服务器文件系统访问
🔔 实时功能
- 服务器通知:接收实时服务器通知
- 连接状态:监视连接状态更改
- 请求历史:查看完整的请求/响应历史记录
⚙️ 配置选项
VSCode设置
配置 mcp-tester VSCode设置中的选项:
| 配置 | 类型 | 默认值 | 描述 |
|---|---|---|---|
mcp-tester.autoStart |
boolean | true | VSCode启动时自动启动 |
mcp-tester.defaultTransport |
string | “stdio” | 默认传输协议 |
mcp-tester.timeout |
number | 30000 | 请求超时(毫秒) |
mcp-tester.maxHistory |
number | 100 | 最大历史条目数 |
mcp-tester.enableLogging |
boolean | false | 启用日志记录 |
mcp-tester.maxRetryAttempts |
number | 3 | 最大重试次数 |
mcp-tester.retryDelay |
number | 1000 | 重试延迟(毫秒) |
服务器配置
配置 mcp-tester.servers 设置中的数组以预定义服务器:
{
"mcp-tester.servers": [
{
"name": "Everything Server",
"type": "stdio",
"command": "npx",
"args": ["@modelcontextprotocol/server-everything"],
"env": {
"NODE_ENV": "development"
}
},
{
"name": "Remote API Server",
"type": "sse",
"url": "https://api.example.com/mcp/sse",
"customHeaders": {
"Authorization": "Bearer your-token"
}
},
{
"name": "Local HTTP Server",
"type": "streamable-http",
"url": "http://localhost:8080/mcp"
}
]
}
🎛️ 命令面板命令
| 命令 | 描述 |
|---|---|
MCP: Open MCP Tester |
打开MCP测试仪主界面 |
MCP: Connect to MCP Server |
连接到MCP服务器 |
MCP: Disconnect from MCP Server |
断开与服务器的连接 |
MCP: List Tools |
在编辑器中显示工具列表 |
MCP: List Resources |
在编辑器中显示资源列表 |
MCP: List Prompts |
在编辑器中显示提示列表 |
MCP: Ping Server |
测试服务器连接 |
MCP: Show Connection Status |
显示连接状态信息 |
MCP: Clear Request History |
清除请求历史记录 |
MCP: Export Server Configuration |
导出服务器配置 |
MCP: Import Server Configuration |
导入服务器配置 |
🏗️ 项目架构
mcp-tester/
├── src/
│ ├── extension.ts # VSCode extension entry point
│ ├── mcp-tester-provider.ts # WebView provider for UI interaction
│ ├── server/
│ │ └── mcp-server-manager.ts # MCP server manager for protocol communication
│ └── vue-webview/ # Vue.js frontend interface
│ ├── src/
│ │ ├── components/ # Vue components
│ │ │ ├── MainApp.vue # Main application component
│ │ │ ├── Sidebar.vue # Sidebar component
│ │ │ ├── ToolsPanel.vue # Tools panel component
│ │ │ └── ... # Other feature components
│ │ ├── assets/styles/ # Style files
│ │ └── main.ts # Vue application entry
│ ├── package.json
│ └── vite.config.ts
├── package.json # Extension configuration and dependencies
├── webpack.config.js # Webpack build configuration
└── tsconfig.json # TypeScript configuration
架构特点
-
分层架构:
- 扩展层:VSCode扩展API集成
- 业务层:MCP协议处理和状态管理
- 表示层:Vue.js WebView界面
-
事件驱动:
- 使用EventEmitter进行组件间通信
- 支持实时状态更新和通知
-
模块化设计:
- 独立服务器管理器模块
- 可重用的Vue组件
- 明确职责分工
🔧 开发指南
开发环境要求
- Node.js:>=16.x
- npm:>=7.x
- VSCode: >= 1.74.0
- TypeScript:>=4.9.x
开发脚本
| 命令 | 描述 |
|---|---|
npm run compile |
编译TypeScript并构建Vue应用程序 |
npm run watch |
观看模式编译 |
npm run build |
完成项目构建 |
npm run dev-webview |
在开发模式下运行Vue应用程序 |
npm run build-webview |
构建Vue应用程序 |
npm run install-webview |
安装Vue应用程序依赖项 |
npm run lint |
代码linting |
npm run package |
生产建设 |
Vue WebView开发
Vue前端接口位于 src/vue-webview/ 目录:
# Navigate to Vue project directory
cd src/vue-webview
# Install dependencies
npm install
# Development mode
npm run dev
# Build production version
npm run build
添加新功能
-
添加新的MCP协议功能:
- 在中添加新方法
MCPServerManager - 在中添加消息处理
MCPTesterProvider - 在Vue组件中添加UI交互
- 在中添加新方法
-
添加新的Vue组件:
- 在中创建组件
src/vue-webview/src/components/ - 进口和使用
MainApp.vue - 添加相应的样式和交互逻辑
- 在中创建组件
-
添加新的VSCode命令:
- 申报
package.jsonscontributes.commands - 在中注册命令处理程序
extension.ts
- 申报
🧪 测试
单元测试
# Run tests
npm test
# Watch mode testing
npm run test:watch
集成测试
- 测试STDIO传输:
# Use official example server
npx @modelcontextprotocol/server-everything
- 测试HTTP传输:
# Start HTTP MCP server
# Then connect to the corresponding URL in the extension
调试提示
-
启用详细日志记录:
- 启用
mcp-tester.enableLogging在设置中 - 检查VSCode开发人员控制台输出
- 启用
-
DevTools视图:
- 可以在开发模式下使用Vue DevTools
- WebView调试需要启用开发人员模式
-
网络调试:
- 使用浏览器开发工具监视HTTP请求
- 检查WebSocket连接状态
🤝 贡献
代码提交
- 分叉项目
- 创建特征分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开拉取请求
代码规范
- TypeScript:使用具有完整类型注释的严格模式
- Vue:使用成分API和
<script setup>语法 - 风格:使用VSCode主题变量以保持一致性
- 评论:为重要逻辑提供清晰的评论
提交消息格式
type(scope): description
[optional body]
[optional footer]
类型包括:
feat:新功能fix:Bug修复docs:文件更新style:代码格式refactor:代码重构test:测试相关chore:构建或工具更改
📝 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙏 致谢
- 协议规范的模型上下文协议(MCP)团队
- API卓越扩展的VSCode团队
- Vue.js团队为响应式框架
- 所有帮助改进此项目的贡献者
📞 支持
开发者:Echo AI
版本: 0.0.2
最后更新2024年11月