Skip to main content
Glama
disasm-dev

disasm.dev MCP server

Official
by disasm-dev
README.md
# disasm.dev MCP server

A [Model Context Protocol](https://modelcontextprotocol.io) server for [disasm.dev](https://disasm.dev). It lets an AI assistant (Claude, Cursor, and any MCP client) generate valid DataDome and Incapsula clearance tokens, without a headless browser.

It is built for development and prototyping: solve a challenge inline and have your assistant wire the result into your scraper. Production traffic should call the [HTTP API](https://docs.disasm.dev) directly.

## Tools

| Tool | What it does |
| --- | --- |
| `solve_datadome` | Solve a DataDome `interstitial`, `captcha`, or `tags` challenge. Returns the payload and client-hint headers to replay. |
| `solve_incapsula` | Solve an Incapsula (Imperva) `reese84` or `utmvc` challenge. |
| `get_account` | Your account profile. |
| `get_balance` | Subscription balance and PAYG wallet. |
| `get_usage` | Recent solve usage. |
| `list_api_keys` | Your API keys (metadata only). |

Every tool uses one disasm.dev API key. Create one in the [dashboard](https://dashboard.disasm.dev).

## Install (local, stdio)

Add it to your MCP client. For Claude Desktop, edit `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "disasm": {
      "command": "npx",
      "args": ["-y", "disasm-mcp"],
      "env": { "DISASM_API_KEY": "your_api_key" }
    }
  }
}
```

The same `command` / `args` / `env` shape works for Cursor and other clients.

## Use (remote, HTTP)

The server also runs as a remote Streamable HTTP endpoint. Point your client at the URL and pass your key as a Bearer token:

```json
{
  "mcpServers": {
    "disasm": {
      "url": "https://mcp.disasm.dev/mcp",
      "headers": { "Authorization": "Bearer your_api_key" }
    }
  }
}
```

The hosted endpoint is stateless: each request carries its own key and no key is stored server-side.

## Run it yourself

```sh
npm install
npm run build

# stdio (what npx runs)
DISASM_API_KEY=your_api_key npm start

# remote HTTP on :8787 (override with PORT)
npm run start:http
```

## Configuration

| Variable | Default | Purpose |
| --- | --- | --- |
| `DISASM_API_KEY` | (required, stdio) | Your disasm.dev API key. |
| `PORT` | `8787` | HTTP server port. |
| `DISASM_DATADOME_URL` | `https://dd.antibotapi.com` | DataDome solve host. |
| `DISASM_INCAPSULA_URL` | `https://incap.antibotapi.com` | Incapsula solve host. |
| `DISASM_API_URL` | `https://api.disasm.dev` | Management API host. |

## Notes

- Treat your API key like a password. Anyone with it can spend your balance.

## License

MIT. See [LICENSE](LICENSE).

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a distinct and clear purpose: account info, balance, usage, API key listing, and two different captcha-solving tools (DataDome and Incapsula). No overlap in functionality.

Naming Consistency4/5

Most tools follow a verb_noun pattern with snake_case (e.g., get_account, solve_datadome). The only minor inconsistency is using both 'get_' and 'list_' for retrieval operations, but they are still clearly distinguished.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose—managing an account and solving captchas. Each tool earns its place without redundancy or excessive complexity.

Completeness4/5

The tool set covers core account operations (profile, balance, usage, API keys) and two major captcha-solving challenges. Missing features like creating/deleting API keys or additional captcha types are minor gaps for the stated domain.

Maintenance

ActivityInactive
ResponsivenessNo issues