disasm.dev MCP server
Official# 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
Scored across 6 tools
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.
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.
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.
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.