> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omophub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server HTTP and Docker deployment guide

> Deploy the OMOPHub MCP Server as an HTTP service or Docker container for centralized, multi-agent access to OMOP medical vocabularies.

## HTTP Transport Mode

Run the MCP server as an HTTP service that clients connect to via URL. Useful for centralized deployments where multiple AI agents share one server instance.

```bash theme={null}
# Start HTTP server on port 3100
npx -y @omophub/omophub-mcp --transport=http --port=3100 --api-key=oh_your_key_here
```

The server exposes two endpoints:

| Endpoint  | Description                                          |
| :-------- | :--------------------------------------------------- |
| `/mcp`    | MCP protocol endpoint - connect your AI clients here |
| `/health` | Health check endpoint for monitoring                 |

```bash theme={null}
# Verify the server is running
curl http://localhost:3100/health
# → {"status":"ok","version":"1.1.0","uptime_seconds":42}
```

## Docker

The Docker image defaults to HTTP mode on port 3100 with health checks built in.

### Quick Start

```bash theme={null}
# HTTP mode (default in Docker) - serves MCP on port 3100
docker run -e OMOPHUB_API_KEY=oh_your_key_here -p 3100:3100 omophub/omophub-mcp
```

### Stdio Mode

For piping to local MCP clients:

```bash theme={null}
docker run -i -e OMOPHUB_API_KEY=oh_your_key_here omophub/omophub-mcp --transport=stdio
```

### Docker Compose

```yaml theme={null}
services:
  omophub-mcp:
    image: omophub/omophub-mcp
    ports:
      - "3100:3100"
    environment:
      OMOPHUB_API_KEY: ${OMOPHUB_API_KEY}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3100/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
```

Multi-arch support: the Docker image is available for both `amd64` and `arm64` architectures.

## Health Checks

### HTTP Mode

The health endpoint is automatically available at `/health` on the same port as the MCP endpoint:

```bash theme={null}
npx @omophub/omophub-mcp --transport=http --port=3100 --api-key=oh_your_key
curl http://localhost:3100/health
```

### Stdio Mode

Use `--health-port` for a standalone health endpoint when running in stdio mode:

```bash theme={null}
HEALTH_PORT=8080 OMOPHUB_API_KEY=oh_your_key npx @omophub/omophub-mcp
curl http://localhost:8080/health
```

## CLI Arguments

```bash theme={null}
# Stdio mode (default)
npx @omophub/omophub-mcp --api-key=oh_your_key --base-url=https://custom.api.com/v1

# HTTP mode
npx @omophub/omophub-mcp --transport=http --port=3100 --api-key=oh_your_key

# Stdio mode with standalone health endpoint
npx @omophub/omophub-mcp --api-key=oh_your_key --health-port=8080
```
