npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

searchatlas-mcp-server

v2.0.0

Published

stdio bridge to the SearchAtlas v2 MCP server (https://mcp.searchatlas.com/mcp/). Exposes 500+ tools for OTTO SEO, PPC, content generation, site explorer, Google Business Profile, local SEO, link building, digital PR, LLM visibility, keyword research, and

Readme

SearchAtlas MCP Server

npm version MCP Registry License: MIT Node.js

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.


Setup (3 steps)

1. Install & log in

With npm:

npm install -g searchatlas-mcp-server
searchatlas login

With yarn:

yarn global add searchatlas-mcp-server
searchatlas login

With pnpm:

pnpm add -g searchatlas-mcp-server
searchatlas login

Without installing (npx):

npx searchatlas-mcp-server login

This opens your browser. After logging in:

  1. Press F12 (or Cmd+Option+I on Mac) to open DevTools
  2. Go to Console tab
  3. Run: localStorage.getItem("token")
  4. Copy the result and paste it into the terminal

The CLI validates your token, saves it, and prints ready-to-paste configs with your paths auto-detected.

2. Add to your MCP client

Claude Code

macOS / Linux:

claude mcp add searchatlas -e SEARCHATLAS_TOKEN=your-token -- npx -y searchatlas-mcp-server

Windows (PowerShell):

claude mcp add searchatlas -e SEARCHATLAS_TOKEN=your-token -- npx.cmd -y searchatlas-mcp-server

Windows note: You must use npx.cmd instead of npx. This is because Claude Code spawns processes directly and Windows requires the .cmd extension.

Done. That's it.

Cursor

Create .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):

{
  "mcpServers": {
    "searchatlas": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js"],
      "env": {
        "SEARCHATLAS_TOKEN": "your-token"
      }
    }
  }
}

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.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "searchatlas": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js"],
      "env": {
        "SEARCHATLAS_TOKEN": "your-token"
      }
    }
  }
}

Restart Claude Desktop after saving.

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "searchatlas": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js"],
      "env": {
        "SEARCHATLAS_TOKEN": "your-token"
      }
    }
  }
}

Add to .vscode/mcp.json in your project:

{
  "servers": {
    "searchatlas": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js"],
      "env": {
        "SEARCHATLAS_TOKEN": "your-token"
      }
    }
  }
}

Add to Zed settings.json:

{
  "context_servers": {
    "searchatlas": {
      "command": {
        "path": "/opt/homebrew/bin/node",
        "args": ["/opt/homebrew/lib/node_modules/searchatlas-mcp-server/dist/index.js"],
        "env": {
          "SEARCHATLAS_TOKEN": "your-token"
        }
      }
    }
  }
}

3. Verify

searchatlas check
  SearchAtlas MCP Server — Health Check

  ✓ Credential source: ~/.searchatlasrc
  ✓ Config loaded successfully (endpoint: https://mcp.searchatlas.com/mcp)
  ✓ JWT structure valid (expires in 12 days) — user 42
  ✓ MCP handshake succeeded — 587 tools available

  All checks passed — you're ready to go!

Why full paths?

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 |


Usage

Just talk naturally. The AI picks the right tool:

"What are the top SEO issues for my site?"
"Run a technical SEO audit on example.com"
"Write a blog post about technical SEO best practices"
"Find long-tail keywords for project management software"
"List my projects"
"Show available playbooks and run one"

CLI Commands

| 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

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.


Configuration

Token priority (first match wins)

  1. SEARCHATLAS_TOKEN env var
  2. SEARCHATLAS_API_KEY env var
  3. ~/.searchatlasrc file (created by searchatlas login)

Environment variables

| 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) |

Native Streamable-HTTP clients

If your MCP client supports Streamable HTTP directly, you can skip this npm package and connect to the remote server in one step:

  • URL: https://mcp.searchatlas.com/mcp/
  • Transport: Streamable HTTP (JSON-RPC + SSE)
  • Header: Authorization: Bearer <SEARCHATLAS_TOKEN>

Troubleshooting

| 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.


Development

git clone https://github.com/Search-Atlas-Group/searchatlas-mcp-server.git
cd searchatlas-mcp-server
npm install && npm run build

Test with MCP Inspector:

npx @modelcontextprotocol/inspector npx searchatlas-mcp-server

Requirements

License

MIT