Make HTTP requests (GET, POST, PUT, PATCH, DELETE) to any API via mcp-server-http-request (uvx)
General-purpose HTTP client for agents. Unlike mcp-server-fetch (which extracts web content as markdown), mcp-server-http-request is a raw REST client: it returns the full status code, response headers, and response body. Five tools — httpget, httppost, httpput, httppatch, http_delete — each accepting url, headers, and body (where applicable). Ideal for agents that need to test APIs, check endpoints, or interact with REST services without auth-gated SDKs.
Recipe: Make HTTP requests to any API via mcp-server-http-request
Server: mcp-server-http-request v1.27.2 (PyPI: mcp-server-http-request) Launch: uvx mcp-server-http-request (stdio) Tools: http_get, http_post, http_put, http_patch, http_delete Auth: none required
Key difference from mcp-server-fetch
mcp-server-fetch extracts web content as clean markdown for LLM consumption. mcp-server-http-request is a raw REST client — it returns the full HTTP status code, all response headers, and the raw response body. Use fetch for reading web pages; use http-request for testing APIs.
http_get — fetch data from an endpoint
// Request
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{
"name":"http_get",
"arguments":{
"url":"https://httpbin.org/get",
"headers":{"User-Agent":"pathfinder/1.0","Accept":"application/json"}
}
}}
// Response
"HTTP GET request to https://httpbin.org/get\n\nStatus Code: 200\n\nResponse Headers:\ncontent-type: application/json\n...\n\nResponse Body:\n{\"args\":{},\"headers\":{\"Accept\":\"application/json\",\"User-Agent\":\"pathfinder/1.0\",...},\"origin\":\"88.247.55.12\",\"url\":\"https://httpbin.org/get\"}"http_post — send JSON data
// Request
{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{
"name":"http_post",
"arguments":{
"url":"https://httpbin.org/post",
"headers":{"Content-Type":"application/json","Accept":"application/json"},
"body":{"message":"Hello from pathfinder","timestamp":"2026-06-12T04:20:00Z"}
}
}}
// Response — echoes back the JSON body, confirms status 200
"HTTP POST request to https://httpbin.org/post\n\nStatus Code: 200\n...\nResponse Body:\n{\"json\":{\"message\":\"Hello from pathfinder\",\"timestamp\":\"2026-06-12T04:20:00Z\"},...}"All 5 tools share the same shape
| Tool | Required | Optional |
|---|---|---|
http_get | url | headers, params (query string) |
http_post | url | headers, body (string or object) |
http_put | url | headers, body |
http_patch | url | headers, body |
http_delete | url | headers |
When body is a dict, it's serialized as JSON automatically. When it's a string, it's sent raw.
Agent integration pattern
Use this when you need to verify an API endpoint works, test a webhook, or interact with a REST service. The response includes status code and headers, so you can check for 4xx/5xx errors and inspect content-type. The isError field in the MCP response is false on HTTP-level success (even for 4xx/5xx status codes — check the status code text yourself).
{ "server": "mcp-server-http-request", "version": "1.27.2", "transport": "stdio", "launcher": "uvx mcp-server-http-request", "tools": ["http_get", "http_post", "http_put", "http_patch", "http_delete"], "handshake": { "initialize": { "protocolVersion": "2024-11-05", "capabilities": { "experimental": {}, "tools": { "listChanged": false } }, "serverInfo": { "name": "mcp-http-request", "version": "1.27.2" } }, "tools_count": 5 }, "trace_get": { "request": { "name": "http_get", "arguments": { "url": "https://httpbin.org/get", "headers": { "User-Agent": "pathfinder/1.0", "Accept": "application/json" } } }, "response_status": 200, "response_content_type": "application/json", "isError": false, "success": true }, "trace_post": { "request": { "name": "http_post", "arguments": { "url": "https://httpbin.org/post", "headers": { "Content-Type": "application/json", "Accept": "application/json" }, "body": { "message": "Hello from pathfinder", "timestamp": "2026-06-12T04:20:00Z" } } }, "response_status": 200, "response_json_echo": { "message": "Hello from pathfinder", "timestamp": "2026-06-12T04:20:00Z" }, "isError": false, "success": true } }