spyfu_get_ keyword_ serp_ analysisReturns detailed search engine results page (SERP) analysis for a specific keyword, showing all domains ranking in positions 1-100.
Size up a competitor in one question, see the keywords they beat you on, read the ads they have tested over the years, find keywords worth targeting, and keep your tracked projects and outreach up to date.
PopMCPSpyFu
Every endpoint SpyFu documents across its research, account and My SpyFu project APIs, with the everyday tools loaded by default, the rest one search away, and the price of each research call stated up front.
167 tools in the full catalog: 100 read and 67 write. 39 load by default, and the rest are found with tool search.
spyfu_get_ keyword_ serp_ analysisReturns detailed search engine results page (SERP) analysis for a specific keyword, showing all domains ranking in positions 1-100.
spyfu_get_ live_ seo_ statsReturns live, aggregated SEO metrics for a given domain, subdomain, path, or URL.
spyfu_list_ lost_ ranks_ keywordsReturns keywords where a domain's organic search ranking positions declined compared to the previous month.
spyfu_list_ most_ valuable_ keywordsReturns keywords that generate the highest organic click volume for a domain.
spyfu_list_ newly_ ranked_ keywordsReturns keywords where a domain recently achieved rankings in the top 100 organic search results.
spyfu_list_ organic_ outranking_ keywordsCompare two domains' organic rankings in one call.
spyfu_list_ seo_ keywordsUnified endpoint for SEO keyword analyses.
spyfu_list_ top_ pagesReturns top organic pages for a domain, subdomain, path, or full URL.
spyfu_add_ project_ keywordsAdd new keywords to a project.
spyfu_get_ keyword_ trackingGet list of keyword rank tracking data for a project.
spyfu_get_ keyword_ usageGet current keyword usage and maximum allowed per user.
spyfu_list_ project_ keywordsGet list of keywords for a project.
spyfu_create_ projectCreate a new project.
spyfu_get_ keyword_ informationReturns comprehensive keyword metrics and intelligence for a list of exact keywords.
spyfu_get_ project_ overviewOne My SpyFu project at a glance: its domains, keyword groups and labels, plus how much of the account's keyword allowance is used.
spyfu_list_ keyword_ expansionsPerforms 5 types of keyword research via keywordSearchType parameter: PhraseMatch (thematic similarities), Questions (interrogative queries), AlsoBuysAdsFor (co-targeted PPC terms), AlsoRanksFor (co-ranking SEO terms), Transactions (commercial intent).
spyfu_list_ projectsReturns list of projects belonging to user.
spyfu_list_ related_ keywordsReturns thematically related keywords that share similar categories and themes with your seed keyword.
spyfu_research_ keywordEverything about one keyword: volume, difficulty and cost, who ranks for it, related keywords, and who has advertised on it.
spyfu_analyze_ domainOne site at a glance: latest SEO and PPC stats, top SEO and PPC competitors, most valuable keywords and highest traffic pages.
spyfu_find_ matching_ domainsDiscovers domains matching wildcard patterns and performance criteria for lead generation and competitive prospecting.
spyfu_get_ bulk_ domain_ statsReturns SEO and PPC metrics for multiple domains in one request.
spyfu_get_ domain_ stats_ historyReturns comprehensive domain statistics for all available historical periods.
spyfu_get_ latest_ domain_ statsReturns the most recent domain statistics available in SpyFu's database.
spyfu_list_ project_ domainsGet list of domains for a project.
spyfu_compare_ domainsTwo sites head to head: latest stats for both, keywords where the competitor ranks above you, and keywords where you rank above them.
spyfu_get_ api_ spendWhat the SpyFu API has cost so far in a month: rows returned and cost in total and per endpoint.
spyfu_get_ api_ usage_ for_ monthReturns stats for API usage.
spyfu_list_ combined_ top_ competitorsReturns the top competitors for a domain combining both paid search (PPC) and organic search (SEO) data.
spyfu_list_ domain_ ad_ historyReturns historical ad variations and copy for a specific domain.
spyfu_list_ keyword_ ad_ historyReturns historical advertisers and ad variations for a specific keyword.
spyfu_list_ top_ ppc_ competitorsReturns the top paid search (PPC) competitors for a domain based on shared keyword advertising overlap.
spyfu_list_ top_ seo_ competitorsReturns the top organic search (SEO) competitors for a domain based on shared keyword ranking overlap.
spyfu_get_ domain_ ranking_ historyReturns historical organic ranking data for a domain across multiple keywords within a specified date range.
spyfu_list_ domain_ paid_ serpsReturns paid search results (ads) that a domain appears in across Google search.
spyfu_list_ most_ successful_ ppc_ keywordsReturns the most successful paid search keywords for a domain based on search volume and competitive strength.
spyfu_list_ new_ ppc_ keywordsReturns newly acquired paid search keywords that a domain has started advertising on for the first time.
spyfu_list_ competing_ ppc_ keywordsReturns paid search keywords shared across multiple competitor domains.
spyfu_list_ competing_ seo_ keywordsReturns organic search keywords shared across multiple competitor domains.
spyfu_add_ contact_ phoneAdd a phone for a contact.
spyfu_add_ contact_ social_ profileAdd a social media profile for a contact.
spyfu_add_ contact_ websiteAdd a website to a contact.
spyfu_bulk_ delete_ contactsDelete a list of contacts from a project.
spyfu_confirm_ discovered_ domain_ contactConfirm a Suggested Contact for a Domain.
spyfu_confirm_ discovered_ url_ contactConfirm a Suggested Contact for a Link.
spyfu_create_ contactCreate a contact.
spyfu_create_ domain_ contactCreate a contact associated with a domain.
spyfu_create_ url_ contactCreate a contact associated with a link.
spyfu_delete_ contactDelete a contact.
spyfu_delete_ contact_ emailDelete an email from a contact.
spyfu_delete_ contact_ phoneDelete a phone from a contact.
spyfu_delete_ contact_ social_ profileDelete a social media profile from a contact.
spyfu_delete_ contact_ websiteDelete a website from a contact.
spyfu_get_ contactGet Contact Details (Confirmed Contact).
spyfu_list_ contact_ phonesGet Contact Phones (Confirmed Contact).
spyfu_list_ contact_ related_ linksGet Contact Related Website (Confirmed Contact).
spyfu_list_ contact_ social_ profilesGet Contact Social Media (Confirmed Contact).
spyfu_list_ contact_ websitesGet Contact Websites (Confirmed Contact).
spyfu_list_ contactsGet all distinct Confirmed Contacts for an userId.
spyfu_list_ discovered_ domain_ contactsGet a list of Discovered Contacts for a Domain.
spyfu_list_ discovered_ url_ contactsGet a list of Discovered Contacts for a Link.
spyfu_list_ domain_ contactsGet a list of Confirmed Contacts for a Domain.
spyfu_list_ url_ contactsGet a list of Confirmed Contacts for a Link.
spyfu_move_ contact_ to_ projectMigrate contact to a different project.
spyfu_update_ contactEdit a contacts details.
spyfu_update_ contact_ phoneEdit a phone for a contact.
spyfu_update_ contact_ ratingUpdate the rating for a confirmed contact.
spyfu_update_ contact_ websiteEdit a website for a contact.
spyfu_list_ gained_ clicks_ keywordsReturns keywords where a domain, path, subdomain, page or full URL experienced increased organic clicks compared to the previous month.
spyfu_list_ gained_ ranks_ keywordsReturns keywords where a domain, path, subdomain, page or full URL improved its organic search ranking positions compared to the previous month.
spyfu_list_ just_ fell_ off_ keywordsReturns keywords where a domain dropped from the first page (top 10 results) compared to the previous month.
spyfu_list_ just_ made_ it_ keywordsReturns keywords where a domain achieved first page rankings (top 10 results) this month after not ranking there previously.
spyfu_list_ keywords_ where_ they_ just_ surpassed_ youReturns keywords where the query domain recently surpassed the comparison domain in organic search rankings.
spyfu_list_ keywords_ where_ they_ outrank_ youReturns keywords where the query domain currently outranks the comparison domain in organic search results.
spyfu_list_ lost_ clicks_ keywordsReturns keywords where a domain experienced decreased organic clicks compared to the previous month.
spyfu_list_ most_ traffic_ top_ pagesReturns the pages that generate the most organic traffic for a domain.
spyfu_list_ new_ top_ pagesReturns pages that have recently started generating significant organic traffic for a domain.
spyfu_clone_ keyword_ groupClone a keyword group under a new name.
spyfu_create_ keyword_ groupAdd new keyword group to a project.
spyfu_create_ project_ with_ keywordsCreate a new project with pre-populated keywords.
spyfu_delete_ keyword_ groupRemove keyword group from a project.
spyfu_delete_ project_ keywordsRemove keywords from a project.
spyfu_export_ keyword_ groupExport all keywords attached to a group.
spyfu_export_ project_ keywordsExport project keywords as a CSV.
spyfu_get_ keyword_ group_ detailsGet overview of keyword group metrics.
spyfu_import_ project_ keywordsBulk import keywords with associated groups and/or labels.
spyfu_import_ project_ keywords_ with_ idsBulk import keywords with associated groups and/or labels.
spyfu_list_ keyword_ groupsGet list of groups for a project.
spyfu_list_ performance_ keyword_ groupsGet groups of top performance keywords based on domain.
spyfu_move_ keyword_ group_ to_ projectMove keyword group from one project to another.
spyfu_move_ keywords_ to_ groupMove keywords from one group to another in the same project.
spyfu_move_ keywords_ to_ projectMove keywords from one project to another.
spyfu_remove_ keywords_ from_ groupRemove keywords from a group.
spyfu_rename_ keyword_ groupRename keyword group.
spyfu_undo_ delete_ project_ keywordsUndo a recent keyword deletion.
spyfu_delete_ projectDeletes an existing project.
spyfu_find_ projects_ by_ keywordsFind projects that include these terms.
spyfu_find_ projects_ by_ urlsFind projects that include these urls.
spyfu_get_ keyword_ information_ bulkReturns comprehensive keyword metrics and intelligence for a large list of exact keywords via POST request.
spyfu_import_ outreach_ itemsImport list of line-separated domains/links into a project.
spyfu_list_ also_ buys_ ads_ for_ keywordsReturns related keywords that top advertisers also buy when targeting your seed keyword.
spyfu_list_ also_ ranks_ for_ keywordsReturns related keywords that top-ranking domains for your seed keyword also rank for organically.
spyfu_list_ question_ keywordsReturns question-based keywords related to your seed topic to inspire content creation and FAQ development.
spyfu_list_ transactional_ keywordsReturns high-intent keywords with strong buying signals related to your seed topic.
spyfu_move_ domain_ to_ projectMove a domain and all linked data from one project to another.
spyfu_update_ projectUpdates an existing project.
spyfu_add_ project_ urlAttach a new url to a project domain.
spyfu_bulk_ delete_ project_ urlsRemoves a list of links from a project.
spyfu_create_ contact_ noteCreate a note for a contact.
spyfu_create_ contact_ taskCreate a task for a contact.
spyfu_create_ domain_ noteCreate a note for a domain.
spyfu_create_ domain_ taskCreate a task for a domain.
spyfu_create_ url_ noteCreate a note for a link.
spyfu_create_ url_ taskCreate a task for an url.
spyfu_delete_ contact_ noteDelete a note for a contact.
spyfu_delete_ domain_ noteDelete a note for a domain or url.
spyfu_delete_ project_ urlDetach an existing url from a project domain.
spyfu_delete_ taskDelete a task.
spyfu_export_ project_ urlsExport project urls as a CSV.
spyfu_get_ project_ urlGet specific url from a project domain.
spyfu_list_ contact_ notesGets a list of notes for a contact.
spyfu_list_ contact_ tasksGet tasks for a contact.
spyfu_list_ domain_ notesGets a list of notes for a domain.
spyfu_list_ domain_ tasksGet tasks for a domain.
spyfu_list_ project_ urlsGet list of urls for a project domain.
spyfu_list_ url_ contextsGets a list of associated contexts for an url.
spyfu_list_ url_ notesGets a list of notes for a link.
spyfu_list_ url_ tasksGet tasks for an url.
spyfu_update_ taskEdit a task.
spyfu_update_ url_ ratingUpdates an url's personalized rating.
spyfu_bulk_ delete_ project_ domainsRemoves a list of domains and all attached data from a project.
spyfu_create_ contact_ eventCreate a contact event for a contact.
spyfu_create_ domain_ contact_ eventCreate a contact event for a domain.
spyfu_create_ url_ contact_ eventCreate a contact event for a URL.
spyfu_delete_ contact_ eventDelete a contact event.
spyfu_delete_ project_ domainRemoves a domain and all attached data from a project.
spyfu_export_ project_ domainsExport project domains as a CSV.
spyfu_get_ domain_ stats_ for_ monthReturns domain statistics for a specific month and year.
spyfu_get_ project_ domainGet specific domain from a project.
spyfu_list_ contact_ eventsGets a list of contact event for a contact.
spyfu_list_ domain_ active_ datesReturns a chronological list of dates for which SpyFu has collected domain statistics data.
spyfu_list_ domain_ contact_ eventsGets a list of contact events for a domain.
spyfu_list_ domain_ contextsGets a list of associated contexts for a domain.
spyfu_list_ url_ contact_ eventsGets a list of contact events for a URL.
spyfu_update_ domain_ ratingUpdates a domain's personalized rating.
spyfu_add_ keyword_ labelsAdd new keyword labels to a project.
spyfu_delete_ keyword_ labelsRemove keyword labels from a project.
spyfu_export_ keyword_ labelExport all keywords attached to a label.
spyfu_list_ keyword_ labelsGet list of keyword labels for a project.
spyfu_remove_ keyword_ labelRemove a label from a list of keywords.
spyfu_rename_ keyword_ labelRename keyword label.
spyfu_get_ api_ usage_ by_ dayReturns stats for API usage.
spyfu_get_ api_ usage_ by_ methodReturns stats for API usage.
spyfu_list_ contact_ activityGet activity history for a contact.
spyfu_list_ domain_ activityGet activity history for a domain.
spyfu_list_ domain_ ad_ history_ by_ dateReturns one row per keyword, search date, and ad variation for a domain.
spyfu_list_ keyword_ ad_ history_ with_ statsReturns historical ad variations and advertiser performance statistics for a specific keyword.
spyfu_list_ recent_ searchesReturns list of recent searches by user.
spyfu_list_ relationship_ statusesGet list of project relationship status types.
spyfu_list_ url_ activityGet activity history for an url.
spyfu_update_ contact_ relationshipUpdate the user's relationship status for a contact.
spyfu_update_ domain_ relationshipUpdate the user's relationship status for a project domain.
spyfu_update_ url_ relationshipUpdate the user's relationship status for a project url.
spyfu_get_ domain_ keyword_ rankingsReturns historical organic ranking data for a specific domain across multiple specified keywords within a date range.
spyfu_get_ keyword_ domain_ rankingsReturns historical organic ranking data for a specific keyword across multiple specified domains within a date range.
spyfu_list_ tagsGets a list of tags for a domain (domainId), url (domainId and urlId), or contact (contactId).
spyfu_update_ tagsUpdates a list of tags for a domain (domainId), url (domainId and urlId), or contact (contactId).
Credentials off one SpyFu screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In SpyFu open Account Settings, then API Usage, and copy the value labelled Base 64 Key. Paste it into PopMCP. That one value holds your API ID and Secret Key, so there is nothing else to fill in.
••••••••••••3f7aSpyFu bills research calls per row returned, and each tool states the price, so pages stay small by default and a very large one has to be confirmed first. Deleted projects, domains and contacts go from My SpyFu the moment the AI calls them. New connections start read-only until an owner or admin allows writes, and only clients you tick on the PopMCP consent screen reach SpyFu.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your SpyFu credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Give me a full picture of northwindshoes.com: its search traffic, ad spend, top competitors, best keywords and top pages
spyfu_analyze_domainok
Then just ask for the work
“Give me a full picture of northwindshoes.com: its search traffic, ad spend, top competitors, best keywords and top pages”
“Which keywords does rivalshoes.com rank above us on, and where are we ahead of them?”
“Find keywords both of our main rivals rank for that we don't rank for”
“Show the ads rivalshoes.com has run on trail running shoes, and which keywords they started buying recently”
“Research the keyword trail running shoes: volume, difficulty, who ranks, who advertises and related ideas”
“Which of our keywords lost rankings this month, and how much has the SpyFu API cost us so far?”
“Add these keywords to our main SpyFu project, then show what the project is tracking”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting SpyFu behind an AI client.
One value: the Base 64 Key. In SpyFu open Account Settings, then API Usage, and copy the value with that label. It holds your API ID and Secret Key together, so PopMCP has everything it needs from one paste. The Secret Key on its own is not enough.
Research calls do, at SpyFu's own prices: SpyFu bills per row returned, and each tool's description states the price per 1,000 rows. Above the API credit included with your plan, SpyFu charges your payment method. Pages default to a small size, a very large page must be confirmed first, and the AI can check the month's spend at any time. PopMCP does not add a charge for SpyFu's API. Connecting and My SpyFu project calls have no per-row charge.
SpyFu's pricing guide says API access is included with its Pro + AI and Team/Agency plans. Without API access on the plan, SpyFu refuses the key and PopMCP says so when you connect.
Only in My SpyFu, and only if you allow writes. Research data is read-only by nature. With writes allowed, the AI can manage projects, tracked keywords, keyword groups and labels, link prospects, contacts, notes, tags and tasks. Read-only connections hide all of those tools, and deletions take effect straight away.
Yes, that is what SpyFu is for. Its research data covers competitors' rankings, keywords and ad history, not just your own site. No access to the other site is needed.
Each research tool takes a country code that picks the Google market, such as US, UK or DE. The default is the US. The list of markets comes from SpyFu and varies slightly by endpoint, and the tool's description shows the codes it accepts.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect SpyFu in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking SpyFu on the consent screen. The SpyFu tools are then available in that session, and no SpyFu credential is stored on your machine.
Loading 167 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 39-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 167 here. A trigger is an event PopMCP watches for on its own. SpyFu has no triggers yet, so everything on this page happens when your AI calls a tool.
Launch a hosted MCP endpoint for SpyFu, keep tool access under control, and start testing real workflow prompts right away.