The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the SearchAtlas listing page.
npm · MCP Registry · GitHub
Connect any MCP-compatible AI client to the SearchAtlas v2 MCP server — 500+ tools covering OTTO SEO, PPC, Content Genius, Site Explorer, Google Business Profile, Local SEO, Link Laboratory, Digital PR, LLM Visibility, keyword research, and more.
This package runs as a thin stdio bridge to the hosted v2 MCP server at https://mcp.searchatlas.com/mcp/ so it works with clients that only speak stdio. Clients with native Streamable-HTTP support can connect to the remote endpoint directly.
Works with Claude Code, Cursor, Claude Desktop, VS Code, Windsurf, and Zed.
With npm:
With yarn:
With pnpm:
Without installing (npx):
This opens your browser. After logging in:
localStorage.getItem("token")The CLI validates your token, saves it, and prints ready-to-paste configs with your paths auto-detected.
macOS / Linux:
Windows (PowerShell):
Windows note: You must use
npx.cmdinstead ofnpx. This is because Claude Code spawns processes directly and Windows requires the.cmdextension.
Done. That's it.
Create .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):
Your paths may differ. Run
which nodeandnpm root -gto find them, or just copy the config thatsearchatlas loginprinted — it has your exact paths.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Restart Claude Desktop after saving.
Add to ~/.codeium/windsurf/mcp_config.json:
Add to .vscode/mcp.json in your project:
Add to Zed settings.json:
macOS GUI apps (Cursor, Claude Desktop, VS Code, Windsurf, Zed) don't inherit your shell's PATH, so they can't find node or npx. Using the full path to node and pointing it directly at the installed package avoids spawn npx ENOENT and env: node: No such file errors entirely.
searchatlas login detects your paths automatically and prints configs you can copy-paste.
| How to find your paths | Command |
|---|---|
Full path to node | which node |
| Global npm modules dir | npm root -g |
Just talk naturally. The AI picks the right tool:
| Command | Description |
|---|---|
searchatlas login | Log in, save token, print MCP configs |
searchatlas check | Validate credentials + API connectivity |
searchatlas --version | Print version |
searchatlas --help | Show help |
All commands also work via
npx searchatlas-mcp-server <command>.
Tools are discovered dynamically from the hosted v2 MCP server — your client sees the live catalogue (currently ~587 tools) without needing a package update when new ones ship. The major groups:
| Prefix | Area | Representative tools |
|---|---|---|
otto_* | OTTO SEO automation (70 tools) | otto_list_projects, otto_add_site, otto_get_dynamic_optimizations |
ppc_* | Google Ads / PPC (76 tools) | ppc_list_accounts, ppc_create_campaign, ppc_get_keyword_performance |
cg_* | Content Genius (74 tools) | cg_list_articles, cg_edit_article_content, cg_generate_content_brief |
se_* | Site Explorer (46 tools) | se_list_sites, se_get_details, se_backlinks_overview |
gbp_* | Google Business Profile (96 tools) | gbp_get_business_categories, gbp_list_citation_submissions |
local_seo_* | Local SEO heatmaps (19 tools) | local_seo_heatmaps_get_heatmap_details, local_seo_heatmaps_get_rank |
ll_* | Link Laboratory (24 tools) | ll_list_projects, ll_create_order |
dpr_* | Digital PR (20 tools) | dpr_list_campaigns, dpr_create_campaign |
llmv_* | LLM Visibility (30 tools) | llmv_list_projects, llmv_get_visibility_report |
krt_* | Keyword Rank Tracking (16 tools) | krt_list_projects, krt_track_keywords |
bv_* | Brand Vault (25 tools) | bv_list, bv_ask, bv_update_business_info |
ws_* | Website Studio (8 tools) | ws_list_projects, ws_create_project |
gsc_* | Google Search Console (11 tools) | gsc_get_sites, gsc_get_keyword_performance |
social_hub_* | Social Hub (19 tools) | social_hub_list_posts, social_hub_create_post |
cs_* | Content Strategy (12 tools) | cs_list_templates, cs_create |
kg_* | Knowledge Graph (7 tools) | kg_list, kg_create_entity |
dkn_* | Domain Knowledge Network (7 tools) | dkn_list_nodes, dkn_create |
indexer_* | Indexer (6 tools) | indexer_submit_batch, indexer_check_status |
rb_* | Report Builder (3 tools) | rb_list_reports, rb_get_report_details |
pr_* | Press Release (14 tools) | pr_list, pr_write, pr_update |
Run searchatlas check to see the live count, or ask your MCP client to list tools after connecting.
SEARCHATLAS_TOKEN env varSEARCHATLAS_API_KEY env var~/.searchatlasrc file (created by searchatlas login)| Variable | Required | Description |
|---|---|---|
SEARCHATLAS_TOKEN | Yes | JWT token from SearchAtlas |
SEARCHATLAS_API_KEY | Alternative | API key auth |
SEARCHATLAS_API_URL | No | Custom v2 MCP endpoint (default: https://mcp.searchatlas.com/mcp) |
If your MCP client supports Streamable HTTP directly, you can skip this npm package and connect to the remote server in one step:
https://mcp.searchatlas.com/mcp/Authorization: Bearer <SEARCHATLAS_TOKEN>| Error | Fix |
|---|---|
spawn npx ENOENT / env: node: No such file | Use full paths (see Why full paths?) or re-run searchatlas login |
spawn npx ENOENT on Windows (Claude Code) | Use npx.cmd instead of npx — see Claude Code setup |
No SearchAtlas credentials found | Run searchatlas login |
Token expired on ... | Run searchatlas login for a fresh token |
Authentication failed (401) | Token expired — run searchatlas login |
fetch failed | Check network; run searchatlas check |
| Tools not showing up | Restart your MCP client after adding config |
Still stuck? Run searchatlas check, make sure Node.js >= 18 (node --version), or open an issue.
Test with MCP Inspector:
MIT