Skip to main content
Glama
signalsumo

SignalSumo MCP Server

by signalsumo

@signalsumo/mcp

Model Context Protocol server for SignalSumo. Lets Claude, Cursor, and any other MCP-compatible client read your SEO data, run technical audits, research keywords, and check backlink profiles through natural-language tool calls.

Every tool wraps a real endpoint on the SignalSumo REST API (/api/v1/*). Auth, plan gating, quotas and billing all happen server-side — the MCP layer is a thin, well-typed shim.

What it exposes today

Eleven read-only tools. Every one reads data your SignalSumo account already holds — this server computes nothing of its own, so the "Produced by" column is the product that generates each dataset.

Rankings

Tool

Wraps

Purpose

Produced by

list_tracked_keywords

GET /rank/keywords

Every keyword you track, with country, device and current position

Rank Tracker

get_rank_history

GET /rank/history

Daily position history for one keyword, plus the URL that ranked

Rank Tracker

Research

Tool

Wraps

Purpose

Produced by

research_keyword

POST /keyword-research

Start keyword research (async — returns job_id)

Keyword Research Tool

get_backlinks

GET /backlinks

Backlink profile for any domain (paginated)

Backlink Checker

Audits

Tool

Wraps

Purpose

Produced by

run_site_audit

POST /site-audit

Start a technical SEO audit (async — returns job_id)

Website Audit Tool

get_job_status

GET /jobs/:id

Poll any async job until done or failed

AI visibility

Tool

Wraps

Purpose

Produced by

list_ai_visibility_projects

GET /ai-visibility/projects

Brands you track across AI answer engines

AI Visibility Checker

get_ai_share_of_voice

GET /ai-visibility/share-of-voice

How often each engine names you versus competitors

AI Visibility Checker

Search Console

Tool

Wraps

Purpose

Produced by

list_gsc_properties

GET /gsc/properties

Connected Search Console properties

GSC Insights

get_gsc_queries

GET /gsc/queries

Queries, clicks, impressions and position from GSC

GSC Insights

Account

Tool

Wraps

Purpose

Produced by

get_api_usage

GET /usage

Current-month API usage, plan, quota reset date

Plans & pricing

Reading is free. run_site_audit and research_keyword start work that consumes plan credits; everything else reads data you have already paid for.

More tools follow the same pattern — one file per tool in src/tools/, registered in src/index.ts. Full REST reference: signalsumo.com/api-docs. Prefer no install? The hosted connector speaks the same tools over OAuth.

Related MCP server: Search Console MCP

Quick start

1. Get an API key

Sign in to SignalSumo → API Keys → create a key. Copy it once — it won't be shown again.

2. Install

npm install -g @signalsumo/mcp

Or run without installing via npx:

npx -y @signalsumo/mcp

3. Wire it into your MCP client

Claude Desktop — edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "signalsumo": {
      "command": "npx",
      "args": ["-y", "@signalsumo/mcp"],
      "env": {
        "SIGNALSUMO_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You should see the SignalSumo tools available in the tool picker.

Claude Code — add to ~/.claude/mcp_servers.json (same shape as above).

Cursor — Settings → MCP → Add a new server with command: npx, args: ["-y", "@signalsumo/mcp"], and set SIGNALSUMO_API_KEY in the env.

ChatGPT — this package will not help you, and that is not a limitation of the package. ChatGPT connects to MCP servers as remote HTTPS connectors rather than spawning a local process, so there is nothing for npx to do. Point it at the hosted connector instead:

https://signalsumo.com/mcp

It exposes the same tools, authenticates with OAuth rather than an API key, and needs no install. Setup steps are at signalsumo.com/mcp-server.

The same applies to any client that takes a URL rather than a command — the split is stdio versus HTTP, not one vendor versus another.

4. Try it

Ask Claude:

"What SEO tools do I have available through SignalSumo? Check my API usage first."

Claude will call get_api_usage and describe what it can do with the other tools.

Local development

git clone https://github.com/signalsumo/mcp
cd mcp
npm install
cp .env.example .env  # add your key
npm run build
SIGNALSUMO_API_KEY=sk_live_... node dist/index.js

Point Claude Desktop at your local build — replace the path with wherever you cloned the repo:

{
  "mcpServers": {
    "signalsumo-dev": {
      "command": "node",
      "args": ["/path/to/signalsumo-mcp/dist/index.js"],
      "env": {
        "SIGNALSUMO_API_KEY": "sk_live_..."
      }
    }
  }
}

Hosted / multi-tenant mode (HTTP + SSE)

The package ships a second entry point for self-hosting the MCP server as a shared HTTP endpoint. This is what remote MCP clients (claude.ai's remote MCP registry, hosted Cursor, browser-based inspectors) connect to.

Transport: Streamable HTTP per the MCP 2025-06-18 spec — POST for client → server calls, GET for the SSE stream, DELETE to end a session. Session isolation is per-connection; each session gets its own Server + SignalSumoClient so keys and state never leak between users.

Auth: every request must carry Authorization: Bearer <signalsumo_api_key>. The key is resolved at session-init and used for every subsequent call in that session — the process itself holds no keys.

Run the HTTP server

npm run start:http
# or as an installed bin:
signalsumo-mcp-http

Env vars:

  • MCP_PORT — port to listen on (default 3000)

  • MCP_HOST — bind address (default 0.0.0.0)

  • SIGNALSUMO_API_BASE — API base URL (default https://signalsumo.com/api/v1)

Endpoints

Method

Path

Purpose

GET

/healthz

Liveness probe. Returns {ok, transport, sessions}. No auth.

POST

/mcp

Every client → server MCP call. First call in a session must be initialize — server responds with an Mcp-Session-Id header that subsequent calls must echo.

GET

/mcp

SSE stream for server → client notifications and streamed tool results. Requires Mcp-Session-Id.

DELETE

/mcp

Cleanly terminate a session. Requires Mcp-Session-Id.

Reverse proxy

Put it behind nginx/Caddy on a subdomain (e.g. mcp.signalsumo.com), terminate TLS there, and forward /mcp to the Node process. SSE requires HTTP/1.1 with buffering disabled — nginx snippet:

location /mcp {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Authorization $http_authorization;
    proxy_buffering off;              # critical for SSE
    proxy_cache off;
    proxy_read_timeout 24h;
    chunked_transfer_encoding off;
}

Point a client at the hosted server

For MCP clients that accept a URL + Bearer token (e.g. custom scripts, MCP Inspector, ChatGPT, remote-server support in Claude clients), SignalSumo runs a hosted endpoint — nothing to deploy:

URL:     https://signalsumo.com/mcp
Header:  Authorization: Bearer sk_live_...

That endpoint also speaks OAuth 2.1, which is what the Claude and ChatGPT connector flows use instead of a raw key — see the section below and signalsumo.com/mcp-server.

If you have self-hosted this package on your own subdomain, substitute your own host and /mcp path in the URL above.

OAuth 2.1 (for the claude.ai/mcp remote registry)

OAuth is handled by the SignalSumo authorization server at https://signalsumo.com — the MCP HTTP endpoint here is just the resource server. MCP clients that speak OAuth 2.1 (Claude Desktop's remote MCP support, claude.ai/mcp) discover everything automatically:

  1. Client hits /mcp without a token → server replies 401 with WWW-Authenticate: Bearer error="unauthorized", resource_metadata="https://signalsumo.com/.well-known/oauth-protected-resource"

  2. Client fetches the resource metadata → learns the authorization server is https://signalsumo.com

  3. Client fetches https://signalsumo.com/.well-known/oauth-authorization-server → learns the endpoints

  4. Client POSTs to /oauth/register → gets a client_id (Dynamic Client Registration, RFC 7591)

  5. Client opens /oauth/authorize?... in a browser tab → user logs into SignalSumo and clicks "Authorize"

  6. Client POSTs to /oauth/token with the auth code + PKCE verifier → gets an access token

  7. Client uses the access token as Authorization: Bearer <token> on /mcp

The access token is validated by SignalSumo's ApiAuth — the same class that validates raw API keys — so the MCP server itself doesn't need to know about OAuth. Access tokens live 1 hour; refresh tokens are rotated on every use per OAuth 2.1.

Architecture

src/
├── index.ts              # stdio entry (single-user, Claude Desktop / Cursor)
├── server-http.ts        # HTTP + SSE entry (multi-tenant, self-hosted)
├── build-server.ts       # shared: builds an MCP Server with all tools registered
├── client.ts             # Axios wrapper around SignalSumo /api/v1
└── tools/
    ├── types.ts          # Shared ToolDefinition interface
    ├── usage.ts          # get_api_usage
    ├── backlinks.ts      # get_backlinks
    ├── site_audit.ts     # run_site_audit (async)
    ├── keyword_research.ts # research_keyword (async)
    ├── job_status.ts     # get_job_status
    ├── rank_keywords.ts  # list_tracked_keywords
    ├── rank_history.ts   # get_rank_history
    ├── gsc_properties.ts # list_gsc_properties
    ├── gsc_queries.ts    # get_gsc_queries
    ├── ai_visibility_projects.ts # list_ai_visibility_projects
    └── ai_share_of_voice.ts      # get_ai_share_of_voice

Both transports register the same tools — the only difference is where the API key comes from (env var for stdio, per-request header for HTTP).

Adding a new tool — copy an existing file in src/tools/, wire the Zod input schema, call client.get() / client.post(), then register it in the tools array in src/index.ts. Rebuild, restart your MCP client, done.

Boundaries

The MCP inherits your API key's trust level. It can do anything the key can do — no more, no less. Endpoints intentionally not exposed as tools even though they exist on the REST API:

  • Billing / plan changes / credit purchases

  • User account or password reset

  • Team management

  • Admin-only endpoints

Roadmap

  • Read-only rank tracker tools (list_tracked_keywords, get_rank_history)

  • Read-only AI visibility tools (list_ai_visibility_projects, get_ai_share_of_voice)

  • Read-only GSC tools (list_gsc_properties, get_gsc_queries)

  • HTTP + SSE transport (in addition to stdio)

  • OAuth 2.1 flow for the claude.ai/mcp remote registry

  • Write-capable rank tracker tools (add_keyword_to_tracker, trigger_rank_scan)

  • Local SEO tools (grid rank, review AI, citation status)

  • Report generation (generate_executive_report)

License

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    A Model Context Protocol server that enables Claude to interact with DataForSEO APIs, allowing access to SEO data including SERPs, keyword research, on-page metrics, and domain analytics.
    17
    7,409
    240
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    Model Context Protocol (MCP) server that provides AI agents with access to Google Search Console data.
    21
    2,582
    258
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A MCP server that turns your scattered SEO and analytics data into one clear verdict per URL. Plug it into Claude, Cursor, or any MCP-aware client and ask: "Which three posts should I update this week?" - and get an answer backed by hard numbers.
    8
    151
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides comprehensive SEO analysis tools with actionable fix instructions for AI assistants like Claude Code and Claude Desktop.
    MIT

View all related MCP servers

Related MCP Connectors

  • SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • A Model Context Protocol server for Wix AI tools

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/signalsumo/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server