空手道MCP服务器
一个模型上下文协议(MCP)服务器,为AI代理提供全面的知识 空手道DSL框架 用于API测试、UI自动化和性能测试。
概述
此MCP服务器使Claude、GitHub Copilot和Roo Code等AI助手能够访问有关Karate DSL的深入、结构化的知识,包括:
- HTTP方法 -URL、路径、请求、标头、参数、Cookie、多部分上传
- 响应处理 -状态代码、响应正文、标头、Cookie、计时
- 断言 -匹配运算符和18+模糊匹配器(#string、#number、#regex等)
- 数据结构 -变量、JSON、XML、YAML、CSV、表格
- 应用程序编程接口 -13+数据操作实用函数
- 数据驱动测试 -场景大纲、动态示例、CSV/JSON数据
- 代码重用 -调用、一次调用、JavaScript函数
- 配置 -超时、SSL、代理、标头、日志记录
- 并行执行 -多线程测试执行
- UI自动化 -跨浏览器web测试
- 性能测试 -Gatling集成
- API模拟 -测试双打和消费者合同
- 最佳实践 -15+推荐图案
特性
可用工具
MCP服务器公开了5个工具:
list_karate_categories-列出所有14个空手道DSL类别search_karate_features-在类别中搜索功能get_karate_feature-获取特定功能的详细信息generate_karate_example-生成完整的测试示例get_karate_best_practices-获取最佳实践和建议
知识库
- 14个类别 空手道特色
- 100+特性和功能 记录在案的
- 语法示例 对于每个功能
- 6个测试模板 (GET、POST、Auth、数据驱动、并行、UI)
- 15+最佳实践 用于可维护测试
安装
先决条件
- Node.js 18或更高版本
- npm或纱线
来源
git clone https://github.com/vspaswin/karate-mcp-server.git
cd karate-mcp-server
npm install
npm run build用法
使用克劳德桌面
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"karate": {
"command": "node",
"args": ["/absolute/path/to/karate-mcp-server/dist/index.js"]
}
}
}重新启动Claude Desktop以进行连接。
使用VS代码(GitHub Copilot)
快速开始
- 打开命令选项板(
Cmd+Shift+P/Ctrl+Shift+P) - 运行:
MCP: Add Server - 选择
Local (stdio) - 姓名:
karate-dsl - 命令:
node - Args:
/absolute/path/to/karate-mcp-server/dist/index.js - 范围:
Global或Workspace
或创建 .vscode/mcp.json:
{
"servers": {
"karate-dsl": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/karate-mcp-server/dist/index.js"]
}
}
}测试:询问GitHub Copilot: @karate-dsl List all categories
使用Roo代码(VS代码扩展)
快速开始
- 在VS Code中安装Roo Code扩展
- 打开Roo Code面板→ 点击MCP图标(🔌)
- 点击 “编辑全局MCP”
- 添加配置:
{
"mcpServers": {
"karate-dsl": {
"command": "node",
"args": ["/absolute/path/to/karate-mcp-server/dist/index.js"]
}
}
}- 保存并验证MCP面板中的连接
测试问Roo: List all Karate DSL categories
查询示例
学习空手道
List all Karate DSL categories
What are all the assertion operators in Karate?
Show me how to use fuzzy matchers like #string and #regex
How do I configure HTTP timeouts?
Explain callonce vs call in Karate生成测试
Generate a complete POST API test example
Show me how to implement authentication with callonce
Create a data-driven test with CSV data
Generate a parallel execution example
Create a UI automation test for login构建真实测试
Help me write a Karate test for my REST API at https://api.example.com
I need to test a POST /users endpoint that creates users
How do I assert response time is under 2 seconds?
Show me how to extract and reuse values from responses最佳实践
What are the best practices for Karate test organization?
How should I structure my Karate project?
Show me patterns for reusing authentication logic工具示例
列出所有类别
查询: “列出所有空手道类别”
答复: 显示所有14个类别及其描述和项目计数
搜索功能
查询: “显示所有断言功能”
工具:
{"name": "search_karate_features", "arguments": {"category": "assertions"}}答复: 18个断言特征及其语法示例
获取特定功能
查询: “火柴是如何包含功的?”
工具:
{"name": "get_karate_feature", "arguments": {"featureName": "match contains"}}答复: 详细的功能文档
生成示例
查询: “生成POST API示例”
工具:
{"name": "generate_karate_example", "arguments": {"useCase": "api_post"}}答复: 完整、可运行的测试代码
可用测试模板
api_get-带有断言和模糊匹配的GET请求api_post-带有JSON正文的POST请求api_auth-使用callonce进行身份验证流,以实现令牌重用data_driven-使用场景大纲和示例进行数据驱动测试parallel_test-使用JUnit运行器并行执行ui_test-带驱动程序的Web UI自动化
发展
构建
npm run build观看模式
npm run dev项目结构
karate-mcp-server/
├── src/
│ ├── index.ts # MCP server with 5 tools
│ └── karate-knowledge.ts # Karate DSL knowledge base
├── docs/
│ ├── vscode-setup.md # VS Code/Copilot setup guide
│ └── roocode-setup.md # Roo Code setup guide
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
├── .gitignore
└── README.md涵盖的类别
- http_方法 (11个功能)-URL、路径、方法、请求、参数、标头、Cookie、表单、多部分、SOAP、重试
- 响应_处理 (6个功能)-状态、响应、字节、标头、Cookie、计时
- 断言 (18个功能)-匹配运算符、模糊匹配器(#string、#number、#regex等)
- 变量 (8个功能)-def、文本、表格、YAML、CSV、JSON、XML、复制
- 行动 (10个功能)-断言、打印、获取、设置、删除、配置、调用、评估、读取
- javascript_api (13个函数)-日志、获取、设置、jsonPath、映射、过滤、合并等。
- 数据驱动 (4个功能)-场景大纲、动态示例、CSV/JSON数据
- 可重用性 (4个特性)-调用、一次调用、JavaScript函数、参数
- 配置 (5个设置)-超时、SSL、代理、标头
- 并行执行 (3个功能)-运行器、线程配置、@parallel标记
- ui_自动化 (4个功能)-驱动程序、输入、点击、截图
- 性能测试 (2个功能)-收集集成、负载配置文件
- 嘲弄 (2个功能)-模拟服务器,有状态模拟
- 最佳实践 (15个提示)-组织、命名、性能、可维护性
支持的AI助手
- 克劳德桌面 -原生MCP支持
- GitHub Copilot (VS代码)-MCP集成在VS代码1.102中+
- Roo代码 (VS Code)-支持MCP的AI编码助手
- 任何MCP客户端 -与任何基于stdio的MCP客户端兼容
技术细节
- 内置 @模型上下文协议/sdk v1.0+
- 用途 标准 交通促进地方融合
- 类型安全 黄道 架构验证
- 具有100多个功能的综合知识库
- 6个即用型测试模板
- 与Claude、Copilot、Roo Code和其他MCP客户端配合使用
故障排除
服务器未连接
- 验证路径
dist/index.js绝对正确 - 跑
npm run build确保服务器已编译 - 检查Node.js版本:
node --version(应该是18+) - 重新启动AI助手/IDE
工具不可用
- 验证服务器在MCP面板中显示为“已连接”
- 检查配置文件语法是否为有效的JSON
- 在输出/控制台日志中查找错误消息
- 试着直接问:“列出空手道类别”
权限问题
- 制造
dist/index.js可执行文件:chmod +x dist/index.js - 确保Node.js具有执行权限
- 在Windows上,使用完整路径:
C:/Program Files/nodejs/node.exe
贡献
欢迎投稿!需要改进的地方:
- 其他测试示例和模板
- 更详细的功能说明
- CI/CD集成示例
- 视频教程和演示
- 支持更多AI助手
资源
许可证
麻省理工学院
作者
vspaswin\ 首席软件工程师|测试自动化专家
致谢
- 空手道DSL团队 优秀的测试自动化框架
- Anthropic 用于模型上下文协议规范
- 微软和GitHub 用于VS Code和Copilot MCP集成
- Roo Code团队 优秀的AI编码助手
- MCP社区 用于工具和示例
______________________________________________________________________
备注这是一个独立的社区项目,与Karate Labs、Intuit、微软、GitHub或Anthropic没有正式关联。
