Wincher MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.4 · published by io.usefulapi
Read Wincher keyword rankings, SERPs, competitors and history; add keywords, groups and notes.
22 tools: 1 can delete or cancel things, 2 change things and 19 only read.
Scanned Oct 22, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads19Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http wincher https://wincher.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
22 tools
Deletes or cancels 1Claude Code: deny
wincher_add_keywordsWRITE: start tracking up to 50 new keywords on ONE website.Reads text others writeNo findings
Why it is in this group
- The name "wincher_add_keywords" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: start tracking up to 50 new keywords on ONE website. EACH keyword uses one keyword slot of the plan's keyword quota (see wincher_get_account), and it is tracked and updated from then on; this tool cannot remove keywords again. Each keyword may name a preferred_url (the landing page expected to rank). Invalid or already-tracked keywords are ignored by Wincher (not created). 'groups' are keyword group NAMES to put every keyword in (may be empty; use names from wincher_list_groups, an unknown name may create a new group). POST /websites/{website_id}/keywords/bulk.
Annotations the server declares
- title: Add keywords to track
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 2Claude Code: ask
wincher_create_annotationWRITE: add a user annotation (a note shown on the ranking graphs, e.g.Reads text others writeNo findings
Why it is in this group
- The name "wincher_create_annotation" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: add a user annotation (a note shown on the ranking graphs, e.g. 'Launched new landing page') for a date, optionally tied to specific keywords; without keyword_ids it is a global note for the website. Visible to everyone with access to the website. Uses no keyword quota. POST /websites/{website_id}/annotations.
Annotations the server declares
- title: Create annotation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
wincher_create_groupWRITE: create a keyword group on a website, optionally containing existing keywords (ids from wincher_list_keywords).Reads text others writeNo findings
Why it is in this group
- The name "wincher_create_group" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: create a keyword group on a website, optionally containing existing keywords (ids from wincher_list_keywords). Uses no keyword quota. POST /websites/{website_id}/groups.
Annotations the server declares
- title: Create keyword group
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 19Claude Code: allow
wincher_get_accountThe Wincher account behind the token: id, timezone and the plan limits with current usage (websites, users, keywords, keyword lookups, map-tracking credits, history days).Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_account" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it The Wincher account behind the token: id, timezone and the plan limits with current usage (websites, users, keywords, keyword lookups, map-tracking credits, history days). Check keyword usage here before adding keywords. GET /account.
Annotations the server declares
- title: Get account and plan limits
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_groupOne keyword group with its keyword ids and (optionally) ranking summary for the period.Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_group" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One keyword group with its keyword ids and (optionally) ranking summary for the period. GET /websites/{website_id}/groups/{group_id}.
Annotations the server declares
- title: Get keyword group
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_keywordOne tracked keyword with its groups, volume, CPC, difficulty and (default) ranking for the period.Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_keyword" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One tracked keyword with its groups, volume, CPC, difficulty and (default) ranking for the period. GET /websites/{website_id}/keywords/{keyword_id}.
Annotations the server declares
- title: Get keyword
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_keyword_ranking_historyHistorical position (or estimated traffic) for ONE keyword as time series, optionally split per ranking page or per competitor.Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_keyword_ranking_history" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Historical position (or estimated traffic) for ONE keyword as time series, optionally split per ranking page or per competitor. GET /websites/{website_id}/keyword/{keyword_id}/ranking-history.
Annotations the server declares
- title: Get keyword ranking history
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_keyword_serpsThe most recent search result pages Wincher stored for a keyword (up to 30): date, search volume, SERP features and the ranking results (position, URL, domain, traffic).Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_keyword_serps" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
Description, as the server wrote it The most recent search result pages Wincher stored for a keyword (up to 30): date, search volume, SERP features and the ranking results (position, URL, domain, traffic). GET /websites/{website_id}/keywords/{keyword_id}/serps.
Annotations the server declares
- title: Get keyword SERPs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_ranking_history_bulkHistorical positions for up to 50 keywords at once (one time series per keyword).Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_ranking_history_bulk" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Historical positions for up to 50 keywords at once (one time series per keyword). This is a read: it uses POST only because the keyword id list goes in the body. POST /websites/{website_id}/ranking-history.
Annotations the server declares
- title: Get ranking history for several keywords
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_userThe Wincher user the token belongs to: id, role, state, project access and profile (name, email, language).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "wincher_get_user" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it The Wincher user the token belongs to: id, role, state, project access and profile (name, email, language). GET /user.
Annotations the server declares
- title: Get current user
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_get_websiteOne tracked website with its settings, competitors, brand keywords, counts and (for the period) ranking summary.Reads text others writeNo findings
Why it is in this group
- The name "wincher_get_website" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "wincher_get_website" says "get" and "website": it reads web pages, which anyone can write.
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it One tracked website with its settings, competitors, brand keywords, counts and (for the period) ranking summary. GET /websites/{website_id}.
Annotations the server declares
- title: Get website
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_annotationsThe annotations (notes on the ranking graphs: automatic, alert and user-written) for a website, optionally within a period.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "wincher_list_annotations" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "note": it reads notes.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it The annotations (notes on the ranking graphs: automatic, alert and user-written) for a website, optionally within a period. GET /websites/{website_id}/annotations.
Annotations the server declares
- title: List annotations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_competitor_keyword_positionsFor each tracked keyword, the position of your site and of each competitor in the period.Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_competitor_keyword_positions" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it For each tracked keyword, the position of your site and of each competitor in the period. GET /websites/{website_id}/competitors/keyword-positions.
Annotations the server declares
- title: Competitor keyword positions
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_competitor_ranking_summariesRanking summaries (average position, share of voice, traffic, position distribution, volume) for the website's competitors over a period, for comparison with your own.Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_competitor_ranking_summaries" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it Ranking summaries (average position, share of voice, traffic, position distribution, volume) for the website's competitors over a period, for comparison with your own. GET /websites/{website_id}/competitors/ranking-summaries.
Annotations the server declares
- title: Competitor ranking summaries
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_competitorsThe competitor domains tracked for a website (id, domain, created_at).Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_competitors" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it The competitor domains tracked for a website (id, domain, created_at). GET /websites/{website_id}/competitors.
Annotations the server declares
- title: List competitors
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_groupsList the keyword groups of a website: id, name, keyword_ids, average difficulty, search-intent counts and optionally ranking summaries.Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_groups" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
Description, as the server wrote it List the keyword groups of a website: id, name, keyword_ids, average difficulty, search-intent counts and optionally ranking summaries. GET /websites/{website_id}/groups.
Annotations the server declares
- title: List keyword groups
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_keywordsList the keywords tracked for a website with groups, volume, CPC, difficulty, competition, search intents and, with include_ranking, the latest position, traffic, ranking pages, SE…Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_keywords" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
Description, as the server wrote it List the keywords tracked for a website with groups, volume, CPC, difficulty, competition, search intents and, with include_ranking, the latest position, traffic, ranking pages, SERP features and best position in the period. Positions are tracked down to the top 30. GET /websites/{website_id}/keywords.
Annotations the server declares
- title: List keywords
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_projectsList projects (folders that group websites): id, name, website_ids, user_ids, and optionally the ranking summary for a period.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "wincher_list_projects" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "folder": it reads files.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
Description, as the server wrote it List projects (folders that group websites): id, name, website_ids, user_ids, and optionally the ranking summary for a period. GET /projects.
Annotations the server declares
- title: List projects
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_search_enginesThe search engines Wincher can track (id, domain such as google.com, country, languages, default location).Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_search_engines" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The search engines Wincher can track (id, domain such as google.com, country, languages, default location). GET /search-engines.
Annotations the server declares
- title: List search engines
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_segmentsThe saved segments (keyword filters) usable as segment_id in other tools.Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_segments" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The saved segments (keyword filters) usable as segment_id in other tools. By default also temporary ones; only_named limits to saved ones. GET /segments.
Annotations the server declares
- title: List segments
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_list_websitesList the websites tracked in Wincher: id, domain, display name, search engine, location, language, mobile flag, keyword/group/competitor counts, competitors and brand keywords.Reads text others writeNo findings
Why it is in this group
- The name "wincher_list_websites" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "wincher_list_websites" says "list" and "website": it reads web pages, which anyone can write.
- untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
Description, as the server wrote it List the websites tracked in Wincher: id, domain, display name, search engine, location, language, mobile flag, keyword/group/competitor counts, competitors and brand keywords. Optionally with the ranking summary for a period. GET /websites.
Annotations the server declares
- title: List tracked websites
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
wincher_search_locationsSearch the locations Wincher can track rankings for (code, name, country), most popular first, at most 100.Reads text others writeNo findings
Why it is in this group
- The name "wincher_search_locations" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search the locations Wincher can track rankings for (code, name, country), most popular first, at most 100. Both are required by the API: an ISO country code and a free-text search (at least 3 characters). GET /locations.
Annotations the server declares
- title: Search tracking locations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data3
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write22
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Install
Pinned to version 1.3.4. Values in angle brackets are yours to fill in.
claude mcp add --transport http wincher https://wincher.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__wincher__wincher_get_account",
"mcp__wincher__wincher_get_user",
"mcp__wincher__wincher_list_search_engines",
"mcp__wincher__wincher_search_locations",
"mcp__wincher__wincher_list_projects",
"mcp__wincher__wincher_list_websites",
"mcp__wincher__wincher_get_website",
"mcp__wincher__wincher_list_keywords",
"mcp__wincher__wincher_get_keyword",
"mcp__wincher__wincher_get_keyword_serps",
"mcp__wincher__wincher_get_keyword_ranking_history",
"mcp__wincher__wincher_get_ranking_history_bulk",
"mcp__wincher__wincher_list_groups",
"mcp__wincher__wincher_get_group",
"mcp__wincher__wincher_list_competitors",
"mcp__wincher__wincher_list_competitor_ranking_summaries",
"mcp__wincher__wincher_list_competitor_keyword_positions",
"mcp__wincher__wincher_list_annotations",
"mcp__wincher__wincher_list_segments"
],
"ask": [
"mcp__wincher__wincher_create_group",
"mcp__wincher__wincher_create_annotation"
],
"deny": [
"mcp__wincher__wincher_add_keywords"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as wincher. Review it before you use it.
Capability tags behind 22 rules
- mcp__wincher__wincher_get_account untrusted-input
- mcp__wincher__wincher_get_user private-data, untrusted-input
- mcp__wincher__wincher_list_search_engines untrusted-input
- mcp__wincher__wincher_search_locations untrusted-input
- mcp__wincher__wincher_list_projects private-data, untrusted-input
- mcp__wincher__wincher_list_websites untrusted-input
- mcp__wincher__wincher_get_website untrusted-input
- mcp__wincher__wincher_list_keywords untrusted-input
- mcp__wincher__wincher_get_keyword untrusted-input
- mcp__wincher__wincher_get_keyword_serps untrusted-input
- mcp__wincher__wincher_get_keyword_ranking_history untrusted-input
- mcp__wincher__wincher_get_ranking_history_bulk untrusted-input
- mcp__wincher__wincher_list_groups untrusted-input
- mcp__wincher__wincher_get_group untrusted-input
- mcp__wincher__wincher_list_competitors untrusted-input
- mcp__wincher__wincher_list_competitor_ranking_summaries untrusted-input
- mcp__wincher__wincher_list_competitor_keyword_positions untrusted-input
- mcp__wincher__wincher_list_annotations private-data, untrusted-input
- mcp__wincher__wincher_list_segments untrusted-input
- mcp__wincher__wincher_add_keywords untrusted-input
- mcp__wincher__wincher_create_group untrusted-input
- mcp__wincher__wincher_create_annotation untrusted-input