Model Context Protocol server for SignalSumo — lets Claude and other LLMs read SEO data, run audits, and check rankings via the SignalSumo API.
SignalSumo MCP exhibits solid tool design with consistent naming (verb_noun pattern), comprehensive parameter descriptions, and well-structured schemas. All 11 tools have clear, actionable descriptions (avg ~150 chars, within 10-1024 baseline). Input schemas are properly defined with Zod validation and JSON Schema export. However, output schemas are not explicitly documented in the source, responses are shaped as {summary, data} but field-level structure is not declared. Error handling is present but generic (SignalSumoError catch-all). Tool composition is clean: single responsibility per tool, proper chaining (e.g., list_tracked_keywords → get_rank_history via keyword_id). No security issues detected, API key is server-side injected, never exposed as parameter. Pagination is implemented (page, limit) with clear cost documentation. Main gap: output schema documentation and richer error recovery guidance.
Return the AI-answer-engine share of voice for a single project — the brand's current visibility score, its latest snapshot (mention rate, avg position, sentiment, citation rate, competition), and the competitor breakdown ranked by mention count. The 'share_of_voice.brand_share_pct' field is the brand's percentage of total mentions across itself + tracked competitors. Free — DB read only.
Return the caller's current SignalSumo API usage this month, their plan, and when the quota resets. Use this to check quota before batching many other calls, or to answer 'how much API quota do I have left'.
Return the referring-domain-level backlink profile for a domain: total refs, dofollow/nofollow split, top referring domains, and a paginated list of individual backlinks. Cheap for the first page (uses plan quota); page > 1 or limit > 100 consumes 1 credit per call.
Return a Google Search Console breakdown for a connected property — top queries, pages, countries, devices, dates or search appearances — with clicks, impressions, CTR and average position. Includes overall totals for the same period. Free — reads from the local GSC sync, no live Google API or DataForSEO call.
Output schemas not documented. Tool responses return {summary, data} but field-level structure of 'data' is not declared. LLMs cannot plan downstream calls or extract specific fields without trial-and-error.
Error handling is generic. SignalSumoError catch-all returns HTTP status + message but does not classify errors as retryable/user-fixable/fatal or suggest recovery actions. LLMs cannot determine whether to retry, ask user, or abort.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
Check the status of an async SignalSumo job (site audit, keyword research). Returns one of: queued, running, done (with results), or failed (with error). Poll every 5-10 seconds until status is 'done' or 'failed'.
Return the historical ranking timeline for a single tracked keyword — daily check dates with position, GSC clicks/impressions/CTR, and which SERP features it earned each day. Includes a summary of the best/worst/first/latest positions. Free — DB read only.
Return the caller's AI visibility projects — one per brand/domain being tracked across AI answer engines. Each project has its current visibility score, previous score, and delta. Use the project id as input to get_ai_share_of_voice for the full breakdown. Free — DB read only.
Return the caller's connected Google Search Console properties with their display name, sync status, and last-synced timestamp. Use property_id from these results as input to get_gsc_queries. Free — DB read only.
Return the caller's tracked keywords with their latest rank position, position change, landing page, and any SERP features earned (featured snippet, AI overview, local pack, etc). Free — reads DB only, no live vendor call.
Start keyword research for a seed term. Returns a job_id immediately; use get_job_status to poll until 'done'. The finished result includes search volume, keyword difficulty, CPC, related terms and search-intent classification. Consumes one keyword-research quota from the user's plan.
Start a technical SEO audit crawl for a domain. Returns a job_id immediately; use get_job_status to poll until 'done'. The finished result includes an overall score, critical/warning/notice issue counts, Core Web Vitals, and per-page issues. Costs one audit from the user's monthly quota.
Async job tools (run_site_audit, research_keyword) lack confirmation/dry-run pattern. Agents can trigger expensive audits or research without preview. No cost estimate before execution.
Tool descriptions mention quota/cost implications (e.g., 'deep queries consume 1 credit') but do not link to get_api_usage for pre-flight checks. Agents may not know to check quota before expensive calls.
Pagination limit defaults (100 for get_backlinks, 100 for get_gsc_queries) are high. No explicit cap mentioned in descriptions. Large result sets risk context window exhaustion.