# Web Request MCP Server
Execute HTTP requests via MCP (Model Context Protocol)
This is a TypeScript-based MCP server that provides a flexible tool to execute HTTP requests with custom methods, headers, and body content. It enables AI assistants to interact with web APIs and endpoints seamlessly.
## Features
### `http_request`
A versatile tool for making HTTP requests with full control over all parameters.
- **Purpose**: Execute HTTP requests with custom configuration
- **Parameters**:
- `url` (required): The target URL (e.g., "https://api.example.com/endpoint")
- `method` (optional): HTTP method - GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS (defaults to GET)
- `headers` (optional): Custom headers as key-value pairs
- `body` (optional): Request body (string or object, automatically JSON stringified for objects)
- `params` (optional): URL query parameters as key-value pairs
- **Behavior**:
- Automatic Content-Type detection for JSON bodies
- Response truncation for large responses (max 50,000 characters)
- Comprehensive error handling with status codes
- Returns full response including status, headers, and data
**Example requests:**
```javascript
// Simple GET request
{ url: "https://api.github.com/users/octocat" }
// POST with JSON body
{
url: "https://api.example.com/data",
method: "POST",
headers: { "Authorization": "Bearer token123" },
body: { name: "John", email: "john@example.com" }
}
// GET with query parameters
{
url: "https://api.example.com/search",
params: { q: "search term", limit: "10" }
}
```
## Development
Install dependencies:
```bash
npm install
```
Build the server:
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
## Installation
### Using with Claude Desktop
To use with Claude Desktop, add the server config:
On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"webrequest": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/webrequest-mcp-server/build/index.js"]
}
}
}
```
### Using with Cursor
Add to your Cursor MCP settings configuration file:
```json
{
"mcpServers": {
"webrequest": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/webrequest-mcp-server/build/index.js"]
}
}
}
```
### Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector):
```bash
npm run inspector
```
The Inspector will provide a URL to access debugging tools in your browser.
## Configuration
The server configuration:
- **Max response size**: 50,000 characters (responses larger than this are truncated)
- **Supported methods**: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
- **Content types**: Automatic JSON handling, supports any content type via headers
## Use Cases
This MCP server is useful for:
- Testing and interacting with REST APIs
- Fetching data from web services
- Automating HTTP requests in AI workflows
- Prototyping API integrations
- Debugging web endpoints
## License
MIT License - see LICENSE file for details