Connect MCP

Connect the research MCP

LinkDR exposes a Model Context Protocol server so Cursor, Grok, Claude, and other clients can call our research tools the same way they call Gmail or a database.

The server URL is:

{
  "mcpServers": {
    "linkdr": {
      "url": "https://linkdr.com/mcp"
    }
  }
}

Use HTTPS in production. The client should speak Streamable HTTP (POST). GET and DELETE are not used.

After you add the URL, the client discovers login from the 401 response. Metadata is at /.well-known/oauth-protected-resource and /.well-known/oauth-protected-resource/mcp. You should not put a bearer token in the JSON. See Auth.

What the tools can read

Once connected as an admin, it can:

  • Read one domain or up to 100 domains (DR, traffic, keywords), with a live RapidAPI fetch if a row is missing or stale
  • Search keywords we already tracked
  • Pull a cached Google SERP for one keyword. The first summary field shows stale, fetchedAt, and the snapshot date
  • Search imported YouTube, Instagram, and TikTok creators
  • Look up contact emails we already have
  • Search the publisher marketplace
  • List and read fulfillment orders, projects, and customers (ops)

It cannot place an order, charge a card, refund, send email, or invent a SERP we do not have.

Research tools

ToolTypical question
get_domainsWhat do we know about these competitors?
search_keywordsWhich of our keywords match this phrase?
get_keyword_serpWho ranks for this keyword?
search_creatorsWhich creators match this name or topic?
get_contactsDo we have an email for this URL or domain?
search_domainsWhich publishers in the catalog match these filters?

Ops tools

ToolTypical question
list_ordersWhich ACCEPTED orders are still open?
get_orderWhat are the line items on this order?
list_projectsWhich project owns this domain?
get_projectWhat recent orders sit on this project?
list_customersWho ordered this month?
summarize_ordersCounts for the morning digest?

Each tool page has a request and a real response. get_keyword_serp returns { items: [...] } — rank, title, url, domain, description, and cached email per row.

Rate limit and empty answers

120 calls per user per hour. A tight keyword fan-out stays well under that. A loop over hundreds of keywords will not.

Empty answers are part of the contract. miss means we could not return that host. no_snapshot means we could not return a SERP. The agent should say that out loud instead of filling gaps.

Pair MCP with a skill

Connecting MCP is not the same as knowing the workflow. Point the agent at keyword fan-out, YouTube outreach, or ops orders so it calls tools in a sensible order.