通用API调用工具

一个提供通用HTTP API请求工具的MCP服务器,支持GET和POST请求,具有灵活的认证和配置选项,适用于API测试、数据集成和多API工作流等场景。

  • by techwithashish1
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 techwithashish1/mcp-server-api-call

使用说明

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终结点的完整URL
  • api_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终结点的完整URL
  • body_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

设置

  1. 克隆存储库:
git clone <repository-url>
cd mcp-server-deployment-local-ops
  1. 安装依赖项:
uv sync

用法

MCP检验员测试

使用MCP检查器在本地测试服务器:

npx @modelcontextprotocol/inspector uv run mcp-server

这将:

  1. 启动MCP服务器
  2. 启动检查器web界面
  3. 打开浏览器以交互方式测试工具

与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输入
  • 超时 -请求超时以防止挂起连接

许可证

[在此处添加您的许可证信息]

贡献

[在此处添加贡献指南]

支持

[在此处添加支持联系信息]