README
🚀 mcp-api-client
大语言模型的Postman。这是一个专门为快速进行REST API测试和探索而设计的MCP服务器,资源使用效率高。现在,你的大语言模型助手无需编写样板测试代码,就可以直接与端点进行交互、调试并实时验证。
🚀 快速开始
本项目旨在将API测试的强大功能直接融入你的AI辅助开发工作流程中,避免传统API测试时编写脚本或切换到Postman等GUI工具的繁琐操作。
✨ 主要特性
- 大语言模型原生测试:无需编写测试代码,使用自然语言即可快速测试端点。
- 资源高效利用:最小化响应格式,减少令牌消耗,默认仅返回状态和响应体。
- 零样板代码原型开发:可立即与新的API进行交互,了解其行为。
- 本地开发好帮手:非常适合在构建阶段测试本地开发服务器(
localhost)。
📦 安装指南
要求:Python 3.10+
git clone https://github.com/etaaa/mcp-api-client.git
cd mcp-api-client
pip install .
📚 详细文档
配置步骤
- 查找安装路径:
which mcp-api-client - 将服务器添加到你的MCP客户端配置(例如Claude Desktop):
{ "mcpServers": { "api-client": { "command": "/full/path/to/mcp-api-client" } } }
工具介绍
http_request
发起单个HTTP请求,返回最少的响应数据。
| 参数 | 类型 | 是否必需 | 描述 |
|-----------|------|----------|-------------|
| method | 字符串 | 是 | HTTP方法(GET、POST、PUT等) |
| url | 字符串 | 是 | 目标端点URL |
| body | 任意类型 | 否 | 请求体(如果是字典或列表,将自动序列化为JSON) |
| headers | 字典 | 否 | 自定义请求头 |
| params | 字典 | 否 | 查询参数 |
| timeout | 浮点数 | 否 | 请求超时时间(默认:30秒) |
| include_headers | 布尔值 | 否 | 是否包含响应头(默认:false) |
响应格式:
{
"status": 200,
"body": {"key": "value"}
}
http_batch_request
在一次调用中高效执行多个HTTP请求。强烈推荐用于测试多个端点,以最小化令牌使用。
| 参数 | 类型 | 是否必需 | 描述 |
|-----------|------|----------|-------------|
| requests | 列表 | 是 | 请求对象列表(每个对象包含方法、URL、请求体、请求头、查询参数) |
| timeout | 浮点数 | 否 | 每个请求的超时时间(默认:30秒) |
| include_headers | 布尔值 | 否 | 是否包含响应头(默认:false) |
示例:
{
"requests": [
{"method": "GET", "url": "http://localhost:8000/health"},
{"method": "POST", "url": "http://localhost:8000/users", "body": {"name": "Test"}},
{"method": "GET", "url": "http://localhost:8000/users/1"}
]
}
返回值:按请求顺序返回响应数组。
💻 使用示例
基础用法
单个请求:
method: GET
url: http://localhost:8000/health
高级用法
批量测试(推荐用于多个端点):
requests:
- method: GET
url: http://localhost:3000/api/health
- method: POST
url: http://localhost:3000/api/users
body: {"name": "Test User", "role": "admin"}
- method: GET
url: http://localhost:3000/api/users
🔧 技术细节
本项目包含一个预编写的“技能”,用于指导大语言模型代理如何最佳使用此工具。 使用方法:
- 将
skills/mcp-api.client.md复制到你的项目代理配置目录(例如.cursor/skills/或类似目录)。 - 你的代理现在将了解何时使用此服务器(例如,用于验证API更改)。
🧪 测试与贡献
pip install pytest pytest-asyncio
pytest
欢迎贡献代码!如果你发现了bug或有功能请求,请提交一个issue或PR。
📄 许可证
本项目采用MIT许可证。详情请参阅 LICENSE 文件。
微信扫一扫