Skip to main content
Glama
wujtruj
by wujtruj
README.md
# Curl MCP Server for Docker

This is a Model Context Protocol (MCP) server that provides curl functionality with full network access.

## Features

- Execute curl commands with all options and flags
- Host network mode for accessing local network devices (like your FortiGate at 192.168.1.1)
- Supports HTTPS with self-signed certificates (-k flag)
- Custom headers and authentication
- 5-minute timeout for long-running requests

## Installation

### Option 1: Using Docker Compose (Recommended)

1. Navigate to this directory:
   ```bash
   cd curl-mcp-server
   ```

2. Build and start the container:
   ```bash
   docker-compose up -d --build
   ```

3. Check if it's running:
   ```bash
   docker-compose ps
   ```

### Option 2: Using Docker CLI

1. Build the image:
   ```bash
   docker build -t curl-mcp-server .
   ```

2. Run the container with host networking:
   ```bash
   docker run -d --name curl-mcp-server --network host curl-mcp-server
   ```

## Configuration with Claude Desktop

To use this MCP server with Claude Desktop, add the following to your MCP settings configuration file:

**On macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**On Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "curl": {
      "command": "docker",
      "args": ["exec", "-i", "curl-mcp-server", "python", "/app/server.py"]
    }
  }
}
```

After adding this configuration:
1. Restart Claude Desktop
2. The curl tool should now be available

## Usage Examples

Once configured, you can use curl commands in Claude:

```
curl -k https://192.168.1.1
```

```
curl -k -H "Authorization: Bearer YOUR_API_KEY" https://192.168.1.1/api/v2/monitor/system/status
```

```
curl -X POST https://api.example.com/endpoint -d '{"key":"value"}'
```

## Network Access

This container uses `network_mode: host` which gives it direct access to:
- Your local network (192.168.x.x addresses)
- The internet
- All network interfaces on your host machine

## Troubleshooting

### Container not starting
```bash
docker-compose logs
```

### Test the container manually
```bash
docker exec -it curl-mcp-server curl -k https://192.168.1.1
```

### Rebuild after changes
```bash
docker-compose down
docker-compose up -d --build
```

### Check if container has network access
```bash
docker exec -it curl-mcp-server curl https://google.com
docker exec -it curl-mcp-server curl -k https://192.168.1.1
```

## Stopping the Server

```bash
docker-compose down
```

## Security Notes

- This server has full network access due to host networking mode
- Be careful with the commands you execute
- The container can access all devices on your local network
- Consider firewall rules if you're concerned about security