Skip to main content
Glama
Nicolas-One

API Request MCP Server

by Nicolas-One

API请求MCP服务器

一个用于自动发送 HTTP 请求并验证 JSON 响应的 MCP (Model Context Protocol) 服务器。支持多种 HTTP 方法、代理配置,以及 multipart/form-data 文件上传。

功能特性

  • 自动发送 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS 请求

  • 支持 HTTP 和 HTTPS

  • 支持 HTTP/HTTPS 代理

  • 自动校验响应是否为 JSON

  • 支持原始文本请求体

  • 支持 multipart/form-data

  • 支持普通表单字段和本地文件同时上传

Related MCP server: cURL MCP Server

安装

git clone https://github.com/your-username/api-request-server.git
cd api-request-server
npm install
npm run build

配置

可选环境变量

HTTP_PROXY=http://127.0.0.1:8080
HTTPS_PROXY=http://127.0.0.1:8080
NO_PROXY=localhost,127.0.0.1,.local
  • HTTP_PROXY: HTTP 请求代理

  • HTTPS_PROXY: HTTPS 请求代理

  • NO_PROXY: 不走代理的主机列表

Claude Code

配置文件位置:项目根目录 .claude/mcp.json

{
  "mcpServers": {
    "api-request-server": {
      "command": "node",
      "args": [
        "./api-request-server/build/index.js"
      ]
    }
  }
}

如果你是直接在本仓库本地开发和调试,推荐使用绝对路径或与你当前项目结构一致的相对路径,并在修改后重启客户端以重新加载 MCP 配置。

Cline

Windows 配置文件位置: %APPDATA%\\Code\\User\\globalStorage\\saoudrizwan.claude-dev\\settings\\cline_mcp_settings.json

{
  "mcpServers": {
    "api-request-server": {
      "autoApprove": [
        "send_api_request"
      ],
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "node",
      "args": [
        "C:\\path\\to\\api-request-server\\build\\index.js"
      ]
    }
  }
}

本地开发时,也可以直接改成你自己的实际路径,例如:

{
  "mcpServers": {
    "api-request-server": {
      "autoApprove": [
        "send_api_request"
      ],
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "node",
      "args": [
        "C:\\Users\\gml\\Documents\\Cline\\MCP\\api-request-server\\build\\index.js"
      ]
    }
  }
}

使用示例

GET

send_api_request({
  "url": "https://api.example.com/data"
})

JSON POST

send_api_request({
  "url": "https://api.example.com/submit",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-token"
  },
  "body": "{\"key\": \"value\"}"
})

使用代理

send_api_request({
  "url": "https://api.example.com/data",
  "proxy": "http://proxy-server:8080"
})

multipart/form-data 上传

send_api_request({
  "url": "https://api.example.com/upload",
  "method": "POST",
  "headers": {
    "Authorization": "Bearer your-token"
  },
  "formFields": {
    "folder": "invoices",
    "public": true,
    "userId": 123
  },
  "files": [
    {
      "fieldName": "file",
      "filePath": "C:\\data\\invoice.pdf",
      "contentType": "application/pdf"
    },
    {
      "fieldName": "attachment",
      "filePath": "C:\\data\\note.txt",
      "filename": "note.txt",
      "contentType": "text/plain"
    }
  ]
})

API参数说明

send_api_request

参数

类型

必需

说明

url

string

请求 URL,支持 http://https://

method

string

HTTP 方法,默认 GET

headers

object

请求头,键值对形式

body

string

原始请求体,适用于 JSON 或其他文本载荷

formFields

object

multipart/form-data 普通表单字段,值支持 stringnumberboolean

files

array

上传文件列表,每项为 { fieldName, filePath, filename?, contentType? }

proxy

string

代理地址,格式如 http://host:port

约束:

  • body 不能和 formFieldsfiles 同时使用

  • files[].filePath 必须是本地真实存在的文件路径

  • 上传文件时会自动生成 multipart/form-data 请求头

响应格式

成功时返回:

{
  "data": {
    "key": "value"
  },
  "status": 200,
  "statusText": "OK",
  "headers": {
    "content-type": "application/json"
  }
}

失败时返回:

{
  "content": [
    {
      "type": "text",
      "text": "Request failed: ..."
    }
  ],
  "isError": true
}

代理优先级

  1. proxy 参数

  2. 环境变量 HTTP_PROXY / HTTPS_PROXY

  3. NO_PROXY 命中时不使用代理

注意事项

  • 当前实现要求响应可解析为 JSON,否则返回错误

  • 目前仅支持 HTTP 和 HTTPS 代理

  • .env 不应提交到版本控制系统

开发

npm install
npm run build
npm run watch
npm start

许可证

本项目采用 MIT 许可证,详见 LICENSE

Available Tools

1 tool
send_api_requestC

发送API请求并返回JSON响应,支持多种协议和代理

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes请求的URL,支持http和https协议
methodNoHTTP方法,如GET, POST, PUT, DELETE等GET
headersNo请求头对象,键值对
bodyNo请求体内容,对于POST等方法
proxyNo代理服务器地址,格式如 http://proxy.example.com:8080

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions returning JSON responses and supporting multiple protocols/proxies, but doesn't disclose critical behaviors like error handling, timeout settings, authentication requirements, rate limits, or what happens with non-JSON responses. For a general-purpose API tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Chinese that conveys the core functionality without waste. It's appropriately sized and front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a general API request tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain return values, error conditions, or behavioral constraints. The agent lacks sufficient context to use this tool effectively beyond basic parameter filling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional parameter semantics beyond mentioning protocol and proxy support, which is already implied by the schema. Baseline 3 is appropriate when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '发送API请求并返回JSON响应' (send API request and return JSON response). It specifies the action (send request) and outcome (return JSON response), and mentions support for multiple protocols and proxies. However, it doesn't differentiate from siblings since there are none, so it's not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions support for multiple protocols and proxies, but doesn't specify use cases, prerequisites, or limitations. With no siblings, this is less critical, but the description lacks any usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • First observedsend_api_request

TDQS

B3.1/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap with other tools, making disambiguation perfect. The tool has a clear and distinct purpose of sending API requests, so an agent cannot misselect between non-existent alternatives.

Naming Consistency5/5

The single tool name 'send_api_request' follows a consistent verb_noun pattern, and with no other tools to compare, there is no inconsistency. The naming is clear and predictable for the server's scope.

Tool Count2/5

A single tool is too few for a server named 'API Request MCP Server', which implies a broader scope for handling API interactions. This minimal set feels thin and incomplete for the apparent purpose, as it lacks operations like request configuration, error handling, or batch processing.

Completeness2/5

The tool surface is severely incomplete for an API request server. While 'send_api_request' covers the core action, there are obvious gaps such as no tools for managing request headers, authentication, retries, or parsing responses beyond JSON. This will likely cause agent failures in complex API workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables sending HTTP requests to webhooks with dynamic parameters, supporting all HTTP methods (GET, POST, PUT, PATCH, DELETE), custom headers, and configurable timeouts with detailed error handling and validation.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables LLMs to make HTTP requests using structured cURL commands with support for multiple authentication methods, custom headers, and comprehensive request/response control.
    2
    16
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables LLMs to make HTTP requests with OAuth2, session cookies, retry logic, and cURL command generation, while providing security features like SSRF protection and TLS enforcement.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to send HTTP requests to any endpoint with full control over methods, headers, query parameters, and request bodies.
    1
    17
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nicolas-One/api-request-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server