关于 mcp-api-tester Tools & Interfaces
mcp-api-tester Tools & Interfaces 描述了用于 LLM 辅助 API 测试的 MCP 工具,面向希望让 LLM 阅读 API 文档、发送 HTTP 请求并检查响应的开发者。
主要功能
- 01从 API 文档列出端点
- 02获取端点参数和结构
- 03发送 HTTP 请求并检查结果
- 04建议提供结构校验和测试日志
适用场景
- 01选择端点执行自动化测试
- 02根据文档结构检查响应
- 03记录结果并查看端点历史
MCP 相关
文档介绍了用于读取 OpenAPI 文档、列出和查询端点详情以及发送 HTTP 请求的 MCP 工具,并提供 JSON-RPC tools/call 请求示例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-api-tester 工具与接口
本文档概述了可让大模型(大型语言模型)执行自动化 API 测试的工具或接口。借助这些工具,大模型可以读取 API 文档,使用 net/http 选择并测试特定端点,并帮助开发者快速发现潜在问题。
核心工具(最小可行工具)
以下三个工具是最基础、最必要的接口,可让大模型执行最小可行的自动化测试:
-
listAllAPIFromDocument
- 用途:从文档中列出所有可用的 API(名称、URL、HTTP 方法等)。
- 示例:返回值示例如下:
[ { "name": "getUser", "method": "GET", "url": "/users/{id}" }, { "name": "createUser", "method": "POST", "url": "/users" } ... ] - 大模型使用场景:浏览可用的 API,并选择要测试的 API。
-
getSingleAPIDetail
- 用途:按名称或路径获取特定 API 的详细文档,例如:
- 请求参数(查询参数、路径参数、请求体等)
- 响应结构(架构)
- 可能的状态码和错误定义
- 示例:返回值示例如下:
{ "name": "getUser", "method": "GET", "url": "/users/{id}", "parameters": [ { "in": "path", "name": "id", "type": "string", "required": true } ], "responses": { "200": { "description": "成功时返回用户数据", "schema": { ... } }, "404": { "description": "未找到用户" } } } - 大模型使用场景:为特定端点生成测试参数和预期响应。
- 用途:按名称或路径获取特定 API 的详细文档,例如:
-
callNetHTTP
- 用途:让大模型发送真实的 HTTP 请求并接收结果(状态码、标头、请求体)。
- 示例:
{ "request": { "method": "POST", "url": "/users", "headers": { "Content-Type": "application/json" }, "body": { "name": "NewUser", "age": 30 } }, "response": { "status": 201, "headers": { ... }, "body": { "id": "123", "name": "NewUser", "age": 30 } } } - 大模型使用场景:执行测试调用,并将实际结果与预期结果进行比较。
进阶推荐工具(增强工具)
这些工具并非必需,但可以显著改善自动化测试、报告生成、环境设置等工作。
1. 响应验证/解析工具
-
架构验证
validateResponseWithSchema(responseBody, schemaInfo) -> (isValid, errorList)- 将返回的 JSON 请求体与文档中记录的架构进行比较,以检查字段一致性、数据类型和必填字段。
-
JSON 解析
parseJSON(responseBody) -> (parsedObject)- 让大模型能够方便地读取和检查响应中的特定字段(例如,确认某些字段不为空)。
2. 测试执行上下文/日志工具
-
测试结果记录/存储
storeTestResult(testCase, response, passOrFail, errorMessage)- 让大模型记录每个测试用例的执行详情、错误和结果,便于汇总报告。
-
历史测试结果
getTestHistory(apiName or endpoint) -> (historyData)- 让大模型(或其他系统)查询同一端点的历史测试结果,并了解随时间推移出现的回归或变化。
3. 环境设置 / 管理工具
-
身份验证 / 凭据设置
getAuthToken(username, password) -> token- 有些 API 需要使用令牌或 cookie 进行身份验证。大模型可能需要先调用此工具来获取正确的凭据。
-
重置 / 初始化测试数据
resetTestData()或seedTestData()- 确保数据库或系统状态在测试开始前处于已知的默认状态。
4. 模糊 / 边界情况测试工具
- generateFuzzyInput(fieldType, constraints)
- 返回极端或异常的输入(例如负值、极大值、随机字符、特殊符号),用于压力测试和安全检查。
推荐的开发流程
-
集成最小可行工具
- 在系统中实现
listAllAPIFromDocument、getSingleAPIDetail和callNetHTTP,以便大模型可以:- 获取可用端点列表
- 获取指定 API 的详细规范
- 发起真实的 HTTP 请求
- 在系统中实现
-
连接大模型
- 允许大模型使用上述三个工具。它可以列出可能的端点,获取每个端点的详细信息,生成测试场景,最后通过
callNetHTTP执行测试。
- 允许大模型使用上述三个工具。它可以列出可能的端点,获取每个端点的详细信息,生成测试场景,最后通过
-
添加验证工具(响应 / 架构)
- 提供实用工具,让大模型验证返回的数据是否符合文档中规定的架构和预期。
-
扩展测试日志记录和环境管理
- 提供用于存储测试结果、查询历史测试、重置环境和获取身份验证令牌的接口。
- 大模型可以调用这些工具,以维护一致的状态和测试过程文档。
-
模糊 / 边界情况测试
- 集成用于生成恶意或极端值的工具,或让大模型自动生成这些值,以进行深入的压力测试或安全测试。
重要说明
-
安全与权限
- 大模型发起 API 调用时,请确保这些测试在安全环境(开发环境或沙箱)中运行,且不会危及敏感数据。
-
大模型生成内容的准确性
- 大模型可能会生成无效或不正确的参数。接口中可能需要额外的验证或错误处理。
-
无法完全替代传统测试
- 大模型虽然可以快速生成边界和异常测试用例,但传统单元测试对于全面覆盖仍然不可或缺。
测试
读取 OpenAPI 文档
curl -X POST --data '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ReadOpenAPIDocument",
"arguments": {
"openAPIPath": "/absolute/path/to/your/openAPI/file"
}
}
}' http://localhost:8000/message?sessionId=9fa4fc8c-1799-4955-a0bb-4881258f13f9
列出文档中的所有 API
curl -X POST --data '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ListAllAPIFromDocument"
}
}' http://localhost:8000/message?sessionId=9fa4fc8c-1799-4955-a0bb-4881258f13f9
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。