The research MCP is six reads. Connect at https://linkdr.com/mcp, then fetch a skill so the agent does not spray twenty SERP lookups on the first message.
The tools
One cached host: DR, traffic, industry, keywords. A miss means ask for seed phrases.
Substring search over keywords we already track. Does not run new Google research.
Stored organic, video, and ads rows. May refresh if the snapshot is older than 30 days.
Imported YouTube, Instagram, and TikTok creators by name, handle, or topic.
Emails we already have, by domain, email, or page URL. Not a live scrape.
Publisher marketplace we fulfill from. Inventory, not a Google SERP.
How to use them
The model picks the tool. You still want an order of operations.
If the user named a site, start with get_domain. When that returns a row, use its keywords and industry as seeds. When it returns a miss, ask for two or three seed phrases. Do not pretend we know the DR.
If they named a keyword, skip the domain lookup. Go to search_keywords, then get_keyword_serp. Cap SERP calls at about five keywords per turn. More than that burns the rate limit and the user's patience.
From SERP rows, keep the ones you would actually pitch: listicles, YouTube, Instagram, TikTok, Reddit, competitor pages. Then get_contacts with a URL or host, or search_creators when you only have a name.
search_domains is a different job. It searches publishers we can place on, not Google. Use it when someone asks for inventory. Use SKILL.md when they want to buy.
Empty results
found / miss on domains, no_snapshot on SERP, and missing emails are all valid. The honest reply is "LinkDR does not have that in cache." Inventing a ranking or an address is worse than a short miss.
Rate limit
120 calls per user per hour. Each tool call counts. Plan the fan-out before you loop.