MCP Server
Run Anakin as a Model Context Protocol server so Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed, Windsurf, and VS Code can call scrape, search, crawl, map, agentic research, and Wire actions natively — no glue code required.
The @anakin-io/mcp package is an MCP server that exposes six Anakin tools — scrape, search, map, crawl, agentic_search, wire_action — to any MCP-compatible agent client. With it installed, Claude Desktop, Cursor, etc. can fetch web pages, run AI search, crawl sites, and execute Wire actions directly from a chat or coding session.
Status: alpha (v0.1.x). Tool surface and arguments may change between minor versions until v1.0. Package:
@anakin-io/mcpon npm · Source: github.com/Anakin-Inc/anakin-mcp.
Quick install (recommended)
One command auto-configures every detected agent client on your machine:
npx -y @anakin-io/mcp init --allYou'll be prompted for your API key (or set ANAKIN_API_KEY first to skip the prompt). Get one free at the Dashboard — 500 credits, no card required.
After it finishes, restart your agent client(s). The anakin MCP server appears in the tool list, exposing six tools.
If you'd rather configure one specific client:
npx -y @anakin-io/mcp init --client=cursorAvailable client names: claude-desktop, claude-code, cursor, cline, continue, zed, windsurf, vscode.
What gets exposed
Each tool is a thin wrapper around the matching Anakin REST endpoint. Agents see typed input schemas (so they know what arguments each tool takes) and get back a string payload they can quote in their replies.
| Tool | Purpose | Async? |
|---|---|---|
scrape | Fetch one URL → markdown by default. Set generateJson: true for AI-extracted structured data. Set useBrowser: true for SPAs. | async (3–15s typical) |
search | AI web search with citations. Returns URL + title + snippet for each hit. | sync |
map | Discover all reachable URLs on a domain. | async |
crawl | Bulk-fetch markdown across a site (with include / exclude patterns). | async |
agentic_search | Multi-source deep research. Searches the web, scrapes citations, structures the combined data with an LLM. | async (1–5 min) |
wire_action | Execute a pre-built website action via Wire (login flows, form fills, etc.). | async |
Manual setup per client
If you'd rather edit config files yourself, copy the right snippet for your client. Set your real API key in env.ANAKIN_API_KEY — the agent never sees it; it lives only in this local config file.
Claude Desktop
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%/Claude/claude_desktop_config.json |
{
"mcpServers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Restart Claude Desktop.
Claude Code (Anthropic CLI)
Edit ~/.claude/settings.json:
{
"mcpServers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Or use Claude Code's built-in command:
claude mcp add anakin npx -y @anakin-io/mcp -e ANAKIN_API_KEY=ak-...Cursor
Edit ~/.cursor/mcp.json (user-scoped) or ./.cursor/mcp.json (project-scoped):
{
"mcpServers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Restart Cursor.
Cline (VS Code extension)
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
| Linux | ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
| Windows | %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
{
"mcpServers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Reload the Cline extension (or restart VS Code).
Continue (IDE extension)
Edit ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"name": "anakin",
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
]
}
}If you have other entries under experimental.modelContextProtocolServers, append the anakin object — don't overwrite. Reload the Continue extension.
Zed
| Platform | Path |
|---|---|
| macOS | ~/.config/zed/settings.json |
| Linux | ~/.config/zed/settings.json |
| Windows | %APPDATA%/Zed/settings.json |
{
"context_servers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Reload Zed.
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Restart Windsurf.
VS Code (with the MCP extension)
Edit .vscode/mcp.json in your workspace:
{
"servers": {
"anakin": {
"command": "npx",
"args": ["-y", "@anakin-io/mcp"],
"env": {
"ANAKIN_API_KEY": "ak-..."
}
}
}
}Reload VS Code.
Verify it works
In Claude Desktop / Cursor / etc., start a new chat and try:
Use anakin to scrape https://example.com and return the markdown.
The agent should:
- Find the
scrapetool inanakin's tool list - Call
scrape({ url: "https://example.com" }) - Quote back the rendered markdown
You can also try other tools:
Use anakin's search to find recent articles about MCP servers.
Use anakin to map the URLs on https://docs.anakin.io and pick three to scrape.
Use anakin's agentic_search for a comparative analysis of TypeScript HTTP libraries.
How the API key flows
Your key never enters the conversation context. It lives only in the agent client's local config file (e.g., claude_desktop_config.json), gets passed to the MCP server subprocess as an environment variable when the client starts, and from there is sent in the X-API-Key header on every Anakin REST request.
If ANAKIN_API_KEY is unset or empty when the server starts, it exits with a message pointing at the Dashboard. The agent client typically surfaces that error in its MCP servers panel; the agent itself just sees anakin missing from its tool list.
If the key is invalid or you're out of credits, the first tool call returns an error (Invalid API key or Insufficient credits) which the agent reports back to you. Update the config and restart the client.
Troubleshooting
The MCP servers panel shows anakin as "Failed"
→ Click the entry to see the stderr output. Most common: ANAKIN_API_KEY is not set (fix: fill in env.ANAKIN_API_KEY and restart) or a JSON syntax error in your config (fix: validate with cat <config> | jq .).
anakin doesn't appear in the tool list at all
→ The client hasn't reloaded the config. Quit fully (⌘Q on macOS) and reopen.
Tool call returns "Invalid API key" → Key is wrong or revoked. Get a fresh one from the Dashboard.
Tool call returns "Insufficient credits" → Top up at the Dashboard. Failed jobs aren't charged, so credits only deduct on successful operations.
init --all says "No supported MCP clients detected"
→ The init command checks for the existence of each client's config directory. If a client is installed but you've never opened it (or you installed via an unusual method that doesn't create the standard dir), pass the client name explicitly:
npx -y @anakin-io/mcp init --client=cursorThat always writes the config, creating any missing parent directories.
Two paths agents can use Anakin
This MCP server is one of two complementary integration paths:
- MCP (this page) — for clients that support it. Tools are typed and called natively. Best when available.
- SKILL.md — for any agent that can fetch a URL. The markdown describes the API end-to-end so an agent can use it via plain HTTP calls. Works in environments without subprocess support.
Most users on Claude Desktop / Cursor / Windsurf / VS Code will want path 1. Custom agents and CI agents can use path 2.
Related
anakin-mcpon GitHub — source, releases, issue tracker@anakin-io/sdk— Node.js / TypeScript SDKanakin— Python SDKanakin-cli— Python CLI for terminal-driven use- SKILL.md — agent-onboarding doc for non-MCP agents
- API reference — endpoint-by-endpoint REST docs