{
  "markdown": "# SearchAtlas MCP Server\n\n[![npm version](https://img.shields.io/npm/v/searchatlas-mcp-server)](https://www.npmjs.com/package/searchatlas-mcp-server)\n[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)\n\n**[npm](https://www.npmjs.com/package/searchatlas-mcp-server)** · **[MCP Registry](https://registry.modelcontextprotocol.io)** · **[GitHub](https://github.com/Search-Atlas-Group/searchatlas-mcp-server)**\n\nConnect 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.\n\nThis 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.\n\nWorks with **Claude Code, Cursor, Claude Desktop, VS Code, Windsurf, and Zed**.\n\n---\n\n## Setup (3 steps)\n\n### 1. Install & log in\n\n**With npm:**\n\n```bash\nnpm install -g searchatlas-mcp-server\nsearchatlas login\n```\n\n**With yarn:**\n\n```bash\nyarn global add searchatlas-mcp-server\nsearchatlas login\n```\n\n**With pnpm:**\n\n```bash\npnpm add -g searchatlas-mcp-server\nsearchatlas login\n```\n\n**Without installing (npx):**\n\n```bash\nnpx searchatlas-mcp-server login\n```\n\nThis opens your browser. After logging in:\n\n1. Press **F12** (or **Cmd+Option+I** on Mac) to open DevTools\n2. Go to **Console** tab\n3. Run: `localStorage.getItem(\"token\")`\n4. Copy the result and paste it into the terminal\n\nThe CLI validates your token, saves it, and **prints ready-to-paste configs with your paths auto-detected**.\n\n### 2. Add to your MCP client\n\n#### Claude Code\n\n**macOS / Linux:**\n\n```bash\nclaude mcp add searchatlas -e SEARCHATLAS_TOKEN=your-token -- npx -y searchatlas-mcp-server\n```\n\n**Windows (PowerShell):**\n\n```powershell\nclaude mcp add searchatlas -e SEARCHATLAS_TOKEN=your-token -- npx.cmd -y searchatlas-mcp-server\n```\n\n> **Windows note:** You must use `npx.cmd` instead of `npx`. This is because Claude Code spawns processes directly and Windows requires the `.cmd` extension.\n\nDone. That's it.\n\n#### Cursor\n\nCreate `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global):\n\n```json\n{\n  \"mcpServers\": {\n    \"searchatlas\": {\n      \"command\": \"/opt/homebrew/bin/node\",\n      \"args\": [\"/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SEARCHATLAS_TOKEN\": \"your-token\"\n      }\n    }\n  }\n}\n```\n\n> **Your paths may differ.** Run `which node` and `npm root -g` to find them, or just copy the config that `searchatlas login` printed — it has your exact paths.\n\n#### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"searchatlas\": {\n      \"command\": \"/opt/homebrew/bin/node\",\n      \"args\": [\"/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SEARCHATLAS_TOKEN\": \"your-token\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop after saving.\n\n<details>\n<summary><strong>Windsurf</strong></summary>\n\nAdd to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"searchatlas\": {\n      \"command\": \"/opt/homebrew/bin/node\",\n      \"args\": [\"/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SEARCHATLAS_TOKEN\": \"your-token\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>VS Code (GitHub Copilot)</strong></summary>\n\nAdd to `.vscode/mcp.json` in your project:\n\n```json\n{\n  \"servers\": {\n    \"searchatlas\": {\n      \"command\": \"/opt/homebrew/bin/node\",\n      \"args\": [\"/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SEARCHATLAS_TOKEN\": \"your-token\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>Zed</strong></summary>\n\nAdd to Zed `settings.json`:\n\n```json\n{\n  \"context_servers\": {\n    \"searchatlas\": {\n      \"command\": {\n        \"path\": \"/opt/homebrew/bin/node\",\n        \"args\": [\"/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js\"],\n        \"env\": {\n          \"SEARCHATLAS_TOKEN\": \"your-token\"\n        }\n      }\n    }\n  }\n}\n```\n\n</details>\n\n### 3. Verify\n\n```bash\nsearchatlas check\n```\n\n```\n  SearchAtlas MCP Server — Health Check\n\n  ✓ Credential source: ~/.searchatlasrc\n  ✓ Config loaded successfully (endpoint: https://mcp.searchatlas.com/mcp)\n  ✓ JWT structure valid (expires in 12 days) — user 42\n  ✓ MCP handshake succeeded — 587 tools available\n\n  All checks passed — you're ready to go!\n```\n\n---\n\n## Why full paths?\n\nmacOS 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.\n\n`searchatlas login` detects your paths automatically and prints configs you can copy-paste.\n\n| How to find your paths | Command |\n|------------------------|---------|\n| Full path to `node` | `which node` |\n| Global npm modules dir | `npm root -g` |\n\n---\n\n## Usage\n\nJust talk naturally. The AI picks the right tool:\n\n```\n\"What are the top SEO issues for my site?\"\n\"Run a technical SEO audit on example.com\"\n\"Write a blog post about technical SEO best practices\"\n\"Find long-tail keywords for project management software\"\n\"List my projects\"\n\"Show available playbooks and run one\"\n```\n\n---\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `searchatlas login` | Log in, save token, print MCP configs |\n| `searchatlas check` | Validate credentials + API connectivity |\n| `searchatlas --version` | Print version |\n| `searchatlas --help` | Show help |\n\n> All commands also work via `npx searchatlas-mcp-server <command>`.\n\n---\n\n## Tools\n\nTools 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:\n\n| Prefix | Area | Representative tools |\n|--------|------|----------------------|\n| `otto_*` | OTTO SEO automation (70 tools) | `otto_list_projects`, `otto_add_site`, `otto_get_dynamic_optimizations` |\n| `ppc_*` | Google Ads / PPC (76 tools) | `ppc_list_accounts`, `ppc_create_campaign`, `ppc_get_keyword_performance` |\n| `cg_*` | Content Genius (74 tools) | `cg_list_articles`, `cg_edit_article_content`, `cg_generate_content_brief` |\n| `se_*` | Site Explorer (46 tools) | `se_list_sites`, `se_get_details`, `se_backlinks_overview` |\n| `gbp_*` | Google Business Profile (96 tools) | `gbp_get_business_categories`, `gbp_list_citation_submissions` |\n| `local_seo_*` | Local SEO heatmaps (19 tools) | `local_seo_heatmaps_get_heatmap_details`, `local_seo_heatmaps_get_rank` |\n| `ll_*` | Link Laboratory (24 tools) | `ll_list_projects`, `ll_create_order` |\n| `dpr_*` | Digital PR (20 tools) | `dpr_list_campaigns`, `dpr_create_campaign` |\n| `llmv_*` | LLM Visibility (30 tools) | `llmv_list_projects`, `llmv_get_visibility_report` |\n| `krt_*` | Keyword Rank Tracking (16 tools) | `krt_list_projects`, `krt_track_keywords` |\n| `bv_*` | Brand Vault (25 tools) | `bv_list`, `bv_ask`, `bv_update_business_info` |\n| `ws_*` | Website Studio (8 tools) | `ws_list_projects`, `ws_create_project` |\n| `gsc_*` | Google Search Console (11 tools) | `gsc_get_sites`, `gsc_get_keyword_performance` |\n| `social_hub_*` | Social Hub (19 tools) | `social_hub_list_posts`, `social_hub_create_post` |\n| `cs_*` | Content Strategy (12 tools) | `cs_list_templates`, `cs_create` |\n| `kg_*` | Knowledge Graph (7 tools) | `kg_list`, `kg_create_entity` |\n| `dkn_*` | Domain Knowledge Network (7 tools) | `dkn_list_nodes`, `dkn_create` |\n| `indexer_*` | Indexer (6 tools) | `indexer_submit_batch`, `indexer_check_status` |\n| `rb_*` | Report Builder (3 tools) | `rb_list_reports`, `rb_get_report_details` |\n| `pr_*` | Press Release (14 tools) | `pr_list`, `pr_write`, `pr_update` |\n\nRun `searchatlas check` to see the live count, or ask your MCP client to list tools after connecting.\n\n---\n\n## Configuration\n\n### Token priority (first match wins)\n\n1. `SEARCHATLAS_TOKEN` env var\n2. `SEARCHATLAS_API_KEY` env var\n3. `~/.searchatlasrc` file (created by `searchatlas login`)\n\n### Environment variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `SEARCHATLAS_TOKEN` | Yes | JWT token from SearchAtlas |\n| `SEARCHATLAS_API_KEY` | Alternative | API key auth |\n| `SEARCHATLAS_API_URL` | No | Custom v2 MCP endpoint (default: `https://mcp.searchatlas.com/mcp`) |\n\n### Native Streamable-HTTP clients\n\nIf your MCP client supports Streamable HTTP directly, you can skip this npm package and connect to the remote server in one step:\n\n- **URL**: `https://mcp.searchatlas.com/mcp/`\n- **Transport**: Streamable HTTP (JSON-RPC + SSE)\n- **Header**: `Authorization: Bearer <SEARCHATLAS_TOKEN>`\n\n---\n\n## Troubleshooting\n\n| Error | Fix |\n|-------|-----|\n| `spawn npx ENOENT` / `env: node: No such file` | Use full paths (see [Why full paths?](#why-full-paths)) or re-run `searchatlas login` |\n| `spawn npx ENOENT` on Windows (Claude Code) | Use `npx.cmd` instead of `npx` — see [Claude Code](#claude-code) setup |\n| `No SearchAtlas credentials found` | Run `searchatlas login` |\n| `Token expired on ...` | Run `searchatlas login` for a fresh token |\n| `Authentication failed` (401) | Token expired — run `searchatlas login` |\n| `fetch failed` | Check network; run `searchatlas check` |\n| Tools not showing up | Restart your MCP client after adding config |\n\n**Still stuck?** Run `searchatlas check`, make sure Node.js >= 18 (`node --version`), or [open an issue](https://github.com/Search-Atlas-Group/searchatlas-mcp-server/issues).\n\n---\n\n## Development\n\n```bash\ngit clone https://github.com/Search-Atlas-Group/searchatlas-mcp-server.git\ncd searchatlas-mcp-server\nnpm install && npm run build\n```\n\nTest with MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector npx searchatlas-mcp-server\n```\n\n---\n\n## Requirements\n\n- **Node.js** >= 18\n- A **SearchAtlas account** — [sign up here](https://dashboard.searchatlas.com)\n\n## License\n\nMIT\n",
  "bytes": 10527,
  "sha": "3bc96dcb45bda475c2717efb69a2e64bf6c0ebcd89da15cb9fabce88a489200b",
  "repo_slug": "search-atlas-group/searchatlas-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_search_atlas_group_searchatlas_f44a3912/readme"
}