Skip to Content

Senuto MCP server

MCP  (Model Context Protocol) is the standard AI assistants use to reach external data. The Senuto MCP server exposes Senuto’s SEO data as tools the model calls on its own: ask Claude, ChatGPT or Cursor about a domain’s visibility and the assistant fetches the numbers from Senuto instead of guessing them.

The server is remote, so there is nothing to install:

https://mcp.senuto.com/mcp

Transport: Streamable HTTP. Authentication: OAuth 2.0 with dynamic client registration — your client prompts you to log in to Senuto on first use. You never copy or paste a token.

Markets

Senuto’s data covers Poland, Czechia and Slovakia. Keyword research tools also cover Denmark, Hungary, the Netherlands, Romania and Sweden.

Modulecountry_id values
Visibility Analysis200 Poland, Base 2.0 (default) · 1 Poland, standard database · 50 Czechia · 164 Slovakia
Keyword research1 Poland (default) · 50 Czechia · 53 Denmark · 82 Hungary · 134 Netherlands · 153 Romania · 160 Sweden · 164 Slovakia

A domain or phrase outside these markets returns empty results. Keyword research tools do not accept 200; for Poland they use 1.

Requirements

MCP access is part of the Senuto account:

PlanMCP server
Advanced, Primeincluded
Basic, Litewith the MCP access add-on, or the API + MCP access add-on

The add-on is enabled in the app: app.senuto.com/user/user-package . Pricing: senuto.com .

Connecting

Add the server to your client

Settings → Connectors → Add custom connector, with https://mcp.senuto.com/mcp as the URL. Works the same in the desktop app and on claude.ai.

Log in with OAuth

The client opens the Senuto login page on first use. The MCP login is separate from the REST API token; you do not need one.

Check that it works

Ask something the assistant cannot know on its own, for example “check the visibility of zalando.pl in Senuto”. It should call get_domain_statistics and show the numbers.

Tools

26 tools, all read-only except serp_create. Every tool declares title and readOnlyHint in its MCP annotations. The list your client receives from the server is the source of truth; this page reflects it as of 2026-09-24.

Visibility Analysis

ToolReturns
get_domain_statisticsdomain visibility, keywords in TOP 3/10/50, domain rank, ads equivalent, AI Overview coverage and citations
get_positions_datakeywords the domain ranks for, with positions, visibility, search volume, CPC and difficulty
get_competitorscompeting domains with shared keywords and their metrics
get_cannibalization_keywordskeywords whose ranking URL changed between measurements, with the rows that cannot be compared marked
get_characteristics_tablekeywords broken down by word count, trends, search volume, difficulty or SERP features
get_keyword_historyposition history of a single keyword
get_positions_history_chartday-by-day history of TOP 3/10/50, visibility and ranking URLs
get_subdomainsvisibility split by subdomain
get_urlsindividual ranking URLs with keywords and visibility
suggest_domainsdomain suggestions for a partial name
get_countries_listsupported markets

fetch_mode sets what counts as the domain: topLevelDomain (default) is the exact host given, subdomain is the whole site with all its subdomains. The two differ a lot on large sites — onet.pl had 67 827 keywords in TOP 10 as topLevelDomain and 552 891 as subdomain (measured 2026-09-22). The Senuto app shows subdomain by default, so this is the usual reason numbers differ from the app.

Five tools also accept catalog (a section of a site and everything under it, path in domain: example.com/blog) and url (a single address): get_positions_data, get_domain_statistics, get_characteristics_table, get_positions_history_chart and get_cannibalization_keywords. The other visibility endpoints accept a path but return data for the whole domain, so their tools do not offer these two values.

Keyword research

ToolReturns
get_keyword_statisticssearch volume, CPC and 12-month trend of exactly the phrases you pass, up to 500 per call
get_keywordskeyword ideas for a phrase, domain or URL
get_questionsquestion keywords related to a phrase
get_groupssemantic groups of keywords around a phrase, with the number of keywords in each

get_keywords returns other keywords matching the seed, sorted by volume, and the seed itself is often not among them. The volume of a specific phrase comes from get_keyword_statistics: one row per phrase, found: false when Senuto has no data for it.

Rank Tracker

ToolReturns
rt_get_active_projectsyour active projects
rt_get_projects_listall projects with their statistics
rt_list_groupskeyword groups in a project
rt_get_project_keywordskeywords tracked in a project
rt_get_position_datadaily position history of tracked keywords in a date range
rt_get_snippets_statisticsSERP features found for the project’s keywords, compared between two dates

SERP Analysis

An asynchronous flow: start an analysis, check its status, then read the reports.

ToolWhat it does
serp_createstarts a SERP analysis for a keyword — the only tool that writes, and it uses one unit of the SERP limit
serp_checktask status; has_serp_data: true means the reports are ready
serp_listyour SERP analysis tasks, newest first
serp_get_reporta report from a finished task: urls, content_statistics, keyword_stats, competitors_number, topic_leaders, groups, questions, related_keywords, keywords_propositions

A crawl takes several minutes. For a keyword that already has a finished task on the account, serp_create returns that task and uses nothing.

Account

ToolReturns
get_limitsevery account limit with usage, remaining capacity and time to reset

Limits

MCP calls draw on the same counters as the REST API and the Senuto app. There is no separate MCP allowance.

ToolsCounterWhat uses a unit
Visibility Analysis tools (all except suggest_domains and get_countries_list)visibility_analysis_queries_per_daya new domain + fetch_mode. Every report for that pair is included, and asking about it again within 24 hours is free. country_id does not add a unit
get_keywords, get_questionskeywords_analysis_queries_per_daya new seed, once per day, shared between the two tools
get_keyword_statisticstools_daily_limiteach call, however many phrases it carries
serp_createserp_analysis_daily_limita new keyword + country_id
everything else—free

get_limits costs nothing and shows hours_to_reset for each counter. Several counters named _per_day reset on a longer cycle; the value of hours_to_reset is the one to go by.

Data and privacy

The server reads your Senuto account through the Senuto API, with the permissions of the account you log in with. It keeps the OAuth tokens (encrypted) and a login record — email and IP address, deleted after three years — and stores no SEO data. Analytics events about failed calls carry the tool name and control parameters (market, pagination, dates, IDs); domains, keywords and URLs are replaced with a shape marker before they are sent.

Troubleshooting

SymptomCause and fix
Login does not complete, or the client cannot connectthe account has no MCP access — see Requirements
The client shows the server but no toolsauthorization was not completed — remove the connector and add it again
Empty results for a domain or phraseoutside Senuto’s markets — see Markets
serp_get_report returns Unfinished taskthe crawl is still running; serp_check reports when it is ready
Error 418 during a conversationusually a spent limit; get_limits shows which

Service status: komunikat.senuto.com .

Ostatnia aktualizacja: