Skip to main content
Glama
capsolver-ai

CapSolver MCP Server

Official
by capsolver-ai
README.md
# capsolver-mcp

MCP Server for [CapSolver](https://capsolver.com) — expose captcha-solving capabilities to AI agents via the [Model Context Protocol](https://modelcontextprotocol.io).

See the [capsolver-ai-hub](https://github.com/capsolver-ai/capsolver-ai-hub) repo for integration examples and the full documentation.

For detailed MCP client setup (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, and more), see [docs/mcp-integration.md](docs/mcp-integration.md).

## Install

```bash
pip install capsolver-mcp
pip install capsolver-mcp[browser]   # with Playwright support (for detect/solve_on_page)
```

All tools read the API key from the environment:

```bash
# bash / zsh
export CAPSOLVER_API_KEY="your-capsolver-api-key"

# PowerShell
$env:CAPSOLVER_API_KEY = "your-capsolver-api-key"

# cmd
set CAPSOLVER_API_KEY=your-capsolver-api-key
```

## Usage

### CLI

```bash
# stdio (default — for local MCP clients like Claude Desktop)
capsolver-mcp

# SSE (for remote / HTTP access)
capsolver-mcp --transport sse --host 0.0.0.0 --port 8000

# Streamable HTTP (MCP 2025-03-26 spec)
capsolver-mcp --transport streamable-http --host 0.0.0.0 --port 8000
```

#### CLI options

```
capsolver-mcp [OPTIONS]

  --transport {stdio,sse,streamable-http}
                              Transport protocol (default: stdio)
  --host HOST                 Bind host for SSE/HTTP transports (default: 127.0.0.1)
  --port PORT                 Bind port for SSE/HTTP transports (default: 8000)
  --api-key KEY               API key (fallback: CAPSOLVER_API_KEY env)
  --name NAME                 Server name (default: capsolver)
```

### Programmatic

```python
from capsolver_mcp.server import create_server

server = create_server(
    api_key="your-key",       # or set CAPSOLVER_API_KEY env var
    server_name="capsolver",  # name advertised to MCP clients
    host="127.0.0.1",         # bind host for SSE / HTTP transports
    port=8000,                # bind port for SSE / HTTP transports
)
server.run(transport="sse")   # or "stdio" or "streamable-http"
```

> **Note:** `host` and `port` are constructor parameters on `create_server()`
> (forwarded to `FastMCP`), matching the MCP Python SDK 1.x API.

## Configure in Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "capsolver": {
      "command": "capsolver-mcp",
      "env": {
        "CAPSOLVER_API_KEY": "your-key"
      }
    }
  }
}
```

## Available tools

| Tool                     | Browser? | Description                                        |
|--------------------------|----------|----------------------------------------------------|
| `solve_captcha`          | No       | Solve a captcha by type + site params (token mode) |
| `detect_captchas`        | Yes      | Scan a page URL and list present captcha types     |
| `solve_on_page`          | Yes      | Detect + solve + autofill all captchas on a page   |
| `get_balance`            | No       | Check account balance and packages                 |
| `get_supported_captchas` | No       | List all supported captcha types and handlers      |

Browser-based tools (`detect_captchas`, `solve_on_page`) require the `browser` extra:

```bash
pip install capsolver-mcp[browser]
playwright install chromium
```

## Development

```bash
git clone https://github.com/capsolver-ai/capsolver-mcp.git
cd capsolver-mcp
uv sync --all-extras          # or: pip install -r requirements-dev.txt
uv run pytest                 # run tests
uv run ruff check src tests   # lint
```

## License

MIT

TDQS

A4.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: solve_captcha is token-only solving from provided parameters, detect_captchas only inspects a page, solve_on_page combines detection/solving/autofill, get_balance and get_supported_captchas are utility queries. There is no meaningful overlap that would cause misselection.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (solve_captcha, detect_captchas, solve_on_page, get_balance, get_supported_captchas). The pattern is predictable and uniform, with no mixed conventions or vague verbs.

Tool Count5/5

Five tools is well-scoped for a captcha-solving server: one core solving tool, one detection tool, one combined page-solving tool, and two informational tools. Each tool earns its place and the count fits comfortably within the ideal 3-15 range.

Completeness5/5

The tool surface covers the full user-facing workflow: checking balance, listing supported captcha types, detecting captchas on a page, solving a captcha for a token, and solving+autofilling on a page. There are no obvious dead ends or missing operations for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues