使用说明
MCP服务器-通用API调用工具
一种模型上下文协议(MCP)服务器,提供通用的HTTP API请求工具,用于通过灵活的身份验证和配置选项进行GET和POST API调用。
概述
此MCP服务器公开了两个功能强大的工具,允许您使用运行时配置向任何端点发出HTTP API请求。非常适合将外部API集成到启用MCP的应用程序中,而无需硬编码端点或凭据。
特性
- 通用GET和POST请求 -调用任何REST API端点
- 灵活的API密钥验证 -可选API密钥支持
- 自定义头 -通过JSON动态添加任何标头
- 运行时配置 -所有参数在运行时传递,无需硬编码
- 综合应对措施 -返回状态代码、标头和响应数据
- 错误处理 -使用信息性消息进行适当的异常处理
工具
1. api_get_request
对任何终结点进行通用的GET API调用。
参数:
url(必需):API终结点的完整URLapi_key(可选):用于身份验证的API密钥(添加为“x-API-key”标头)headers_json(可选):附加标头的JSON字符串timeout(可选):请求超时时间(秒)(默认值:30)
例子:
{
"url": "https://api.example.com/v1/users/123",
"api_key": "your-api-key-here",
"headers_json": "{\"x-FormId\": \"TestForm\", \"Accept\": \"application/json\"}",
"timeout": 30
}
2. api_post_request
对任何端点进行通用POST API调用。
参数:
url(必需):API终结点的完整URLbody_json(必填):请求体的JSON字符串api_key(可选):用于身份验证的API密钥(添加为“x-API-key”标头)headers_json(可选):附加标头的JSON字符串timeout(可选):请求超时时间(秒)(默认值:30)
例子:
{
"url": "https://api.example.com/v1/users",
"body_json": "{\"name\": \"John Doe\", \"email\": \"john@example.com\"}",
"api_key": "your-api-key-here",
"headers_json": "{\"x-FormId\": \"CreateUser\"}",
"timeout": 30
}
安装
先决条件
- Python 3.11或更高版本
- 紫外线 包管理器
安装uv
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
替代方案(使用pip):
pip install uv
安装后,验证是否安装了uv:
uv --version
设置
- 克隆存储库:
git clone <repository-url>
cd mcp-server-deployment-local-ops
- 安装依赖项:
uv sync
用法
MCP检验员测试
使用MCP检查器在本地测试服务器:
npx @modelcontextprotocol/inspector uv run mcp-server
这将:
- 启动MCP服务器
- 启动检查器web界面
- 打开浏览器以交互方式测试工具
与Claude Desktop集成
添加到您的Claude Desktop配置文件中:
窗户: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"generic-api-tools": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\mcp-server-deployment-local-ops",
"run",
"mcp-server"
]
}
}
}
替换 C:\\path\\to\\mcp-server-deployment-local-ops 使用您的实际安装路径。
直接通过GitHub运行
{
"mcpServers": {
"generic-api-tools": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/techwithashish1/mcp-server-api-call.git",
"mcp-server"
]
}
}
}
与其他MCP客户端一起使用
此服务器可以与任何兼容MCP的客户端集成。配置客户端以运行:
uv run mcp-server
从项目目录中。
响应格式
这两个工具都返回结构化响应:
{
"status_code": 200,
"headers": {
"content-type": "application/json",
"...": "..."
},
"data": {
"...": "actual API response data"
}
}
用例
- API测试 -在不编写代码的情况下测试任何REST API
- 数据集成 -从外部服务中提取数据
- Webhook交互 -向webhooks发送POST请求
- 多API工作流 -将多个API调用链接在一起
- API动态勘探 -无需硬编码凭据即可探索API
发展
项目结构
mcp-server-deployment-local-ops/
├── src/
│ └── mcp_server/
│ ├── __init__.py
│ ├── __main__.py # Entry point
│ └── api_call.py # API tools implementation
├── pyproject.toml # Project configuration
└── README.md # This file
依赖项
mcp[cli]>=1.22.0-模型上下文协议框架requests>=2.32.5-用于进行API调用的HTTP库
错误处理
这些工具可以处理各种错误情况:
- 无效的JSON -如果headers_json或body_json格式错误,则返回错误
- HTTP错误 -引发非2xx状态代码的异常
- 超时 -可配置超时,默认为30秒
- 网络问题 -连接失败的正确错误消息
安全考虑
- API密钥 -在运行时传递API密钥,从不将它们提交给代码
- 超文本传输安全协议 -使用HTTPS URL进行安全通信
- 验证 -服务器在发出请求之前验证JSON输入
- 超时 -请求超时以防止挂起连接
许可证
[在此处添加您的许可证信息]
贡献
[在此处添加贡献指南]
支持
[在此处添加支持联系信息]
