Introduction
mcp-anything is a stateless Go proxy that converts REST APIs, shell commands, and JavaScript scripts into MCP tools — no code, no plugins, just a YAML config file.
What it does
Point it at an OpenAPI spec, a CLI tool, or a JavaScript file. The proxy generates MCP tools automatically and handles the full request lifecycle: auth, schema validation, request/response transforms, error mapping, and observability.
Any MCP-compatible client (Claude, Cursor, etc.) connects to http://localhost:8080/mcp and immediately has access to all configured tools.
Quick start — Kraken Market Data
The Kraken cryptocurrency exchange offers a public REST API with no authentication required. Download the example config files and start the proxy:
1. Download config, spec, and overlay
mkdir -p kraken && cd kraken
curl -sLO https://raw.githubusercontent.com/gaarutyunov/mcp-anything/main/examples/kraken/config.yaml
curl -sLO https://raw.githubusercontent.com/gaarutyunov/mcp-anything/main/examples/kraken/spec.yaml
curl -sLO https://raw.githubusercontent.com/gaarutyunov/mcp-anything/main/examples/kraken/overlay.yaml 2. Install and run
go install github.com/gaarutyunov/mcp-anything/cmd/proxy@latest
CONFIG_PATH=config.yaml proxy Your MCP client now has five tools:
| Tool | Description |
|---|---|
kraken__get_system_status | Exchange status and server time |
kraken__get_ticker | Real-time prices for any trading pair |
kraken__get_ohlc | OHLC candlestick data |
kraken__get_order_book | Live order book depth |
kraken__get_recent_trades | Most recent public trades |
Three types of tools
The proxy supports three upstream types that can be mixed in the same config:
- HTTP — connect to any REST API with an OpenAPI 3.0 spec. Tools are auto-generated from operations. See HTTP APIs.
- Command — wrap any CLI tool with typed arguments. See Shell Commands.
- Script — custom logic in a sandboxed JavaScript runtime. See JavaScript Scripts.
Key concepts
- Stateless — no shared mutable state; every pod is identical
- Tool prefix — each upstream has a
tool_prefix; tools are named{prefix}__{operation} - Overlays — customize any OpenAPI operation via RFC 9535 JSONPath without touching the original spec
- Groups — serve different tool subsets at different endpoints from the same upstreams
- Hot-reload — config and spec changes are applied atomically without restarting
Docker
docker run -p 8080:8080 \
-v $(pwd):/etc/mcp-anything \
-w /etc/mcp-anything \
ghcr.io/gaarutyunov/mcp-anything:latest What's next
- HTTP APIs (OpenAPI) — how tool generation works
- OpenAPI Overlays — customize tools without modifying specs
- Authentication — inbound and outbound auth strategies
- Config Reference — all configuration fields