API调用服务

MCP服务器是一个支持调用外部RESTful API的服务,为LLM如Claude提供工具,支持多种HTTP方法、可配置的请求参数和错误处理。

  • by g2developer
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 g2developer/api_caller_mcp_server

使用说明

API呼叫者MCP服务器

MCP(模型上下文协议)服务器:一种能够调用外部RESTful API的服务。

特性

此MCP服务器为Claude等LLM提供了调用外部RESTful API的工具。它包括以下功能:

  • 支持各种HTTP方法(GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS)
  • 可配置的标头、查询参数和请求正文数据
  • 可配置的超时设置
  • 错误处理和响应格式

安装和执行

需求

  • Node.js 16.x或更高版本
  • npm或纱线

安装

# Install dependencies
npm install

构建

# Compile TypeScript
npm run build

执行

# Run StdIO version (integrated with MCP clients like Claude Desktop)
npm start

# Run HTTP server version (exposed as API)
npm run start:http

# Run in development mode (direct TypeScript execution)
npm run dev

# Run HTTP server in development mode
npm run dev:http

# Run in watch mode (useful during development)
npm run watch

# Run test client
npm run test

将MCP服务器添加到Claude桌面

1.配置claude_desktop_config json

配置 claude_desktop_config.json 文件如下。使用 npx 要与依赖项安装一起运行,请执行以下操作:

{
  "name": "API Caller",
  "version": "1.0.0",
  "description": "MCP service for calling external RESTful APIs",
  "command": "npx",
  "args": ["--yes", "--package=dotenv", "--package=axios", "--package=@modelcontextprotocol/sdk", "node", "{your_mcp_path}/api_caller/index.js"],
  "env": {
    "NODE_ENV": "production"
  }
}

替代配置选项:

  1. 使用批处理文件(推荐):
{
  "name": "API Caller",
  "version": "1.0.0",
  "description": "MCP service for calling external RESTful APIs",
  "command": "{your_mcp_path}/api_caller/run_with_npx.bat",
  "args": [],
  "env": {
    "NODE_ENV": "production"
  }
}
  1. 使用npm脚本:
{
  "name": "API Caller",
  "version": "1.0.0",
  "description": "MCP service for calling external RESTful APIs",
  "command": "npx",
  "args": ["--yes", "npm", "run", "start"],
  "env": {
    "NODE_ENV": "production"
  }
}

重要:确保文件路径与项目文件夹的绝对路径匹配。

2.将MCP提供程序添加到克劳德桌面

  1. 启动克劳德桌面:启动Claude Desktop应用程序。

  2. 打开设置菜单:

    • 单击Claude Desktop窗口左下角的配置文件图标或设置图标。
    • 从菜单中选择“设置”。
  3. 导航到MCP提供商选项卡:

    • 在设置菜单中找到并单击“MCP提供者”或“工具”选项卡。
  4. 添加新的MCP提供程序:

    • 单击“添加新MCP提供程序”或“+”按钮。
  5. 选择配置文件:

    • 在文件选择对话框中,导航到 claude_desktop_config.json 文件。
    • 路径: {your_mcp_path}/api_caller/claude_desktop_config.json
    • 选择此文件并单击“打开”。
  6. 启用MCP提供程序:

    • 将API调用方添加到列表后,切换其旁边的开关以启用。

3.故障排除

如果您遇到连接问题:

  1. 检查相关性:

    npm install
    
  2. 验证路径设置:

    • 确保所有文件路径都已正确配置。
    • 使用批处理文件方法时,请验证 run_with_npx.bat 存在。
  3. 权限问题:

    • 以管理员身份运行命令提示符。
  4. 检查日志:

    • 检查Claude Desktop日志中的错误消息。
    • 直接运行批处理文件以检查错误消息。
  5. 验证npx安装:

    npm install -g npx
    
  6. 模块格式问题:

    • 如果出现模块格式问题(CommonJS与ES模块),请检查 "type": "module" 设置 package.json.

用法

首先,克隆存储库:

git clone https://github.com/g2developer/api_caller_mcp_server.git
cd api_caller_mcp_server

此MCP服务器可以与支持模型上下文协议的LLM客户端一起使用。

标准IO接口

在像Claude Desktop这样的客户端中将此服务器注册为MCP提供商。

HTTP接口

HTTP服务器版本提供以下端点:

  • POST /mcp:处理从MCP客户端到服务器的请求。
  • GET /mcp:通过SSE(服务器发送事件)从服务器向客户端发送通知。
  • DELETE /mcp:终止会话。
  • GET /health:检查服务器状态。

使用 mcp-session-id 用于会话管理的标头。

call_api工具

调用外部RESTful API。

参数:

  • url (必需):要调用的API的URL
  • method (可选,默认:GET):HTTP方法(GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS)
  • headers (可选):请求头(API密钥、身份验证令牌等)
  • params (可选):URL查询参数
  • data (可选):请求正文数据(用于POST、PUT、PATCH)
  • timeout (可选,默认值:30000):请求超时(毫秒)

返回值:

成功:

{
  "status": "success",
  "statusCode": 200,
  "headers": { ... },
  "data": { ... }
}

失败:

{
  "status": "error",
  "message": "Error message",
  "statusCode": 404,
  "headers": { ... },
  "data": { ... }
}

例子

基本GET请求

{
  "url": "https://jsonplaceholder.typicode.com/posts/1"
}

带查询参数的GET请求

{
  "url": "https://jsonplaceholder.typicode.com/posts",
  "params": {
    "userId": 1
  }
}

带数据的POST请求

{
  "url": "https://jsonplaceholder.typicode.com/posts",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json"
  },
  "data": {
    "title": "foo",
    "body": "bar",
    "userId": 1
  }
}

带有身份验证标头的请求

{
  "url": "https://api.example.com/data",
  "headers": {
    "Authorization": "Bearer your_token_here"
  }
}

环境变量

在中配置以下环境变量 .env 文件:

  • PORT:HTTP服务器的端口号(默认值:3071)
  • NODE_ENV:执行环境(开发、生产、测试)
  • DEFAULT_TIMEOUT:默认API调用超时(以毫秒为单位)
  • LOG_LEVEL:日志记录级别(调试、信息、警告、错误)
  • DEFAULT_API_KEY:默认API密钥(如果需要)
  • DEFAULT_AUTH_TOKEN:默认身份验证令牌(如果需要)
  • ALLOW_ORIGINCORS 设置 (默认值: *)

许可证

MIT许可证