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

surferseo-mcp

v1.0.0

Published

The most comprehensive MCP server for the SurferSEO API — covers all 23 tools across Content Editor, SERP Analyzer, Audit, AI Tools, and Account domains

Downloads

140

Readme

SurferSEO MCP Server

The most comprehensive Model Context Protocol (MCP) server for the SurferSEO API. Gives Claude direct access to all 23 SurferSEO tools across 5 domains — Content Editor, SERP Analyzer, Audit, AI Tools, and Account.

Open source & API-key agnostic. You bring your own SurferSEO API key. No key is bundled.


Quick Start (Zero Install)

The fastest way — no cloning, no building. Just add this to your Claude Desktop config and restart.

Get your SurferSEO API key — requires the API add-on or Enterprise plan. Contact [email protected].

Option A — npx (recommended, once published to npm)

{
  "mcpServers": {
    "surferseo": {
      "command": "npx",
      "args": ["-y", "surferseo-mcp"],
      "env": {
        "SURFER_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

npx -y surferseo-mcp downloads and runs the latest published version automatically — no local install needed.

Option B — Clone & Build (available right now from GitHub)

  1. Clone the repo

    git clone https://github.com/altlalit/SurferSEO-MCP.git
    cd SurferSEO-MCP
  2. Install & build

    npm install
    npm run build
  3. Add to Claude Desktop config — replace the path with your actual clone location:

    Windows:

    {
      "mcpServers": {
        "surferseo": {
          "command": "node",
          "args": ["C:/path/to/SurferSEO-MCP/dist/index.js"],
          "env": {
            "SURFER_API_KEY": "YOUR_API_KEY_HERE"
          }
        }
      }
    }

    macOS / Linux:

    {
      "mcpServers": {
        "surferseo": {
          "command": "node",
          "args": ["/path/to/SurferSEO-MCP/dist/index.js"],
          "env": {
            "SURFER_API_KEY": "YOUR_API_KEY_HERE"
          }
        }
      }
    }
  4. Restart Claude Desktop — you will see all 23 SurferSEO tools available.


Claude Desktop Config File Location

| OS | Path | |----|------| | Windows | %APPDATA%\Claude\claude_desktop_config.json | | macOS | ~/Library/Application Support/Claude/claude_desktop_config.json | | Linux | ~/.config/Claude/claude_desktop_config.json |


Available Tools (23 total)

Content Editor (10 tools)

| Tool | Description | |------|-------------| | surfer_content_editor_list | List all content editors with pagination | | surfer_content_editor_create | Create a new content editor for a keyword | | surfer_content_editor_get | Get content editor status and metadata | | surfer_content_editor_poll | Wait for content editor to complete (async) | | surfer_content_editor_update | Update content or included terms | | surfer_content_editor_get_terms | Get NLP/keyword terms with targets | | surfer_content_editor_get_content | Get HTML content stored in editor | | surfer_content_editor_auto_optimize | Run Auto-Optimize on content | | surfer_content_editor_get_content_score | Get optimization score (0-100) | | surfer_content_editor_get_structural_guidelines | Get word/heading/image count targets |

SERP Analyzer (6 tools)

| Tool | Description | |------|-------------| | surfer_serp_analyzer_create | Run SERP analysis for a keyword | | surfer_serp_analyzer_create_batch | Batch create multiple SERP analyses | | surfer_serp_analyzer_poll | Wait for SERP analysis to complete (async) | | surfer_serp_analyzer_list | List all SERP analyzer queries (CSV) | | surfer_serp_analyzer_get_search_results | Get competitor data CSV | | surfer_serp_analyzer_get_prominent_terms | Get prominent terms CSV |

Audit (3 tools)

| Tool | Description | |------|-------------| | surfer_audit_create | Audit a URL for a target keyword | | surfer_audit_get | Get audit status and results | | surfer_audit_poll | Wait for audit to complete (async, 5-10 min) |

AI Tools (2 tools)

| Tool | Description | |------|-------------| | surfer_humanizer_humanize | Humanize AI-generated text (min 128 chars) | | surfer_ai_detector_detect | Detect AI content probability (model v1/v2/v3) |

Account & Utility (2 tools)

| Tool | Description | |------|-------------| | surfer_workspaces_list | List your organization workspaces | | surfer_locations_list | List supported locations (no auth needed) |


Requirements

  • Node.js 18+
  • SurferSEO API key — requires the API add-on or Enterprise plan

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | SURFER_API_KEY | Yes | Your SurferSEO API key |

The server exits immediately with a clear error if SURFER_API_KEY is missing.


API & Rate Limit Notes

| Endpoint group | Rate limit | |----------------|------------| | Most endpoints | 10 req/sec | | SERP Analyzer batch | 10 req/min | | AI Detector | 60 req/min | | SERP queries | 100/day |

  • Authentication: Uses API-KEY header (not Authorization: Bearer)
  • Async operations: Content Editor, Audit, and SERP Analyzer run asynchronously. Use the _poll tool to wait for completion or _get to check status manually.
  • Credits: Each API operation consumes SurferSEO credits. No sandbox environment.
  • Workspace: Most write operations accept an optional workspace_id to target a specific workspace.

Development

git clone https://github.com/altlalit/SurferSEO-MCP.git
cd SurferSEO-MCP
npm install

# Run without building (ts-node)
SURFER_API_KEY=your_key npm run dev

# Production build
npm run build
npm start

Publish to npm (maintainers)

npm login
npm publish

After publishing, the zero-install npx config above works for all users.


Project Structure

src/
├── index.ts              # Entry point — wires all 5 domains
├── client.ts             # Axios HTTP client, retry + polling helpers
├── types.ts              # Shared TypeScript interfaces
├── schemas/              # Zod validation schemas per domain
│   ├── content-editor.schemas.ts
│   ├── serp-analyzer.schemas.ts
│   ├── audit.schemas.ts
│   ├── ai-tools.schemas.ts
│   └── account.schemas.ts
└── tools/                # MCP tool registrations per domain
    ├── content-editor.ts
    ├── serp-analyzer.ts
    ├── audit.ts
    ├── ai-tools.ts
    └── account.ts

Contributing

Pull requests welcome! Please open an issue first to discuss what you'd like to change.

  1. Fork the repo
  2. Create a feature branch: git checkout -b feat/my-feature
  3. Commit and push your changes
  4. Open a Pull Request

Resources


License

MIT — see LICENSE for details.