MentionAgent MCP

Run link building outreach from your own agent. 20 tools: read the drafts MentionAgent wrote, edit or approve the batch, answer publisher replies, record placements and change a campaign in plain English. Remote Streamable HTTP, bearer key auth. Two tools send email and both are built to be shown to you first.

Документация

MentionAgent MCP Server

Run your outreach from the agent you already use

The work MentionAgent leaves you is review: reading the drafts it wrote before they go out, and answering the people who reply. That work only ever happened in the dashboard, which meant remembering to open a tab.

The MCP server moves it to wherever you already work. Connect Claude Code, Cursor, or any MCP client that lets you set a request header, and your agent can show you the drafts, rewrite one, send the batch, read a thread and answer it. You still see every email before it goes out.

What using it looks like

For a walkthrough of a real session rather than a scripted example, see the Claude SEO skill, which packages this server as a Claude Code plugin.

You do not learn the tool names. You ask for what you want, and your agent picks them. A normal morning is about four messages:

1

YouWhich emails need a reply?

list_inboxfilter: needs_reply

Seven threads are waiting on you. Four want a real answer: one agreed to the link and confirmed the wording, one sent a URL to verify, one wants to negotiate, one is paid-only. The other three are just acknowledgements with nothing to answer.

2

YouWhich of those are worth a link exchange? Draft replies for the ones that are.

get_threadon eachdraft_replyto propose a placement

For a thread that already has terms, get_thread returns them as a stored record: which page of theirs links to you, with what anchor, and which page of yours links back. For one that does not yet, draft_reply hands the writing to MentionAgent instead of your agent: it crawls their site, picks the page and the exact paragraph to ask for, and writes the email around it. Either way the four replies land in your chat to read and edit. Nothing has been sent.

3

YouThe first three are good. Send them.

send_replyonce per thread

Three emails go out. You approved the exact text first, and each one can only go back to the person already in that thread: send_reply has no recipient field, so the address comes from the thread and not from anything your agent read.

4

YouThe folk.app link is live now. Close it out.

mark_deal

The thread closes as won and the agreed placement stops reading as pending. It sends nothing, so tell them with send_reply first if they are waiting to hear.

The same shape works for the other side of the job. Show me the drafts waiting is list_pending_drafts, make the third one shorter and less formal is edit_draft, send the batch is approve_batch, and stop sending for this site until Monday is set_sending.

Connecting

Create a key in the dashboard under Settings, Agent access. It is shown once. Authentication is a bearer header, so this works in any client where you can set one: Claude Code, Cursor, Windsurf, or your own code. The one-click custom connector in the Claude apps uses OAuth instead, which we do not support yet.

The quickest way. Copy this, paste it into the agent you want to connect, and it will do the setup and check the connection. Have your key ready to paste when it asks.

Connect me to the MentionAgent MCP server.

It is a remote MCP server speaking Streamable HTTP at https://mentionagent.ai/mcp
and it authenticates with a bearer header, not OAuth.

In Claude Code, run:
  claude mcp add --transport http mentionagent https://mentionagent.ai/mcp \
    --header "Authorization: Bearer MY_KEY"

In any other client, add an HTTP MCP server with that URL and the header
  Authorization: Bearer MY_KEY

Ask me for MY_KEY before you run anything, and keep it out of any file that
gets committed to git.

Once it is connected, call get_status with no arguments and show me the sites on
the account, then tell me what you can and cannot do on my behalf.

Or set it up by hand. Point your client at:

https://mentionagent.ai/mcp

In Claude Code:

claude mcp add --transport http mentionagent https://mentionagent.ai/mcp \
  --header "Authorization: Bearer ma_live_your_key_here"

In a client that takes a JSON config, such as Cursor:

{
  "mcpServers": {
    "mentionagent": {
      "type": "http",
      "url": "https://mentionagent.ai/mcp",
      "headers": { "Authorization": "Bearer ma_live_your_key_here" }
    }
  }
}

What your agent can do

ToolWhat it does
get_statusYour sites, drafts waiting, open threads, emails sent, credits left. Start here.
get_sending_healthWhy sending is or is not moving: warmup progress, today's cap and how much is used, bounce rate, automatic pauses, next run.
get_campaignWhat this site is saying, the page it links to, caps, quiet hours, keywords.
list_pending_draftsEvery drafted email waiting for a decision, in full. Nothing here has been sent.
list_inboxThreads where somebody replied, filtered by how warm they are.
get_threadOne conversation end to end.
list_sentOutreach that actually went out, newest first.
edit_draftRewrite the subject and body of a pending draft.
discard_draftDrop one draft so it never goes out.
archive_threadFile a thread away once it is dealt with, so the inbox shows what still needs you.
mark_dealClose a thread as won once the link is live. Also records the agreed placement as done.
trigger_runSpends credits. Finds new prospects and drafts outreach now, instead of waiting for the next scheduled run. Sends nothing.
approve_batchSends real email. Approves the pending batch and starts delivering it.
send_replySends real email. Answers one thread.
draft_replySpends credits. Has MentionAgent write the reply rather than your agent writing it: crawls their site, picks the page and the exact paragraph to ask for, and drafts the email around it. Once terms are agreed it also writes the placement record. Returns a jobId. Sends nothing.
get_draft_replyCollects the draft once it is ready, with the page and insertion point it chose. Also cancels a run you no longer want.
redirect_threadSomebody replied "I am not the right person, talk to X". Opens a new thread with that person carrying the referral, and closes the original as redirected. Sends nothing.
plan_campaign_changeDescribe a change in plain English and see exactly what would change. Writes nothing.
apply_campaign_changeMakes the change you just confirmed.
set_sendingStop or restart new outreach for a site.

A whole placement, without opening the dashboard

The tools are shaped to close one loop end to end. A site agrees to a reciprocal link, and your own coding agent does the work:

  1. list_inbox with filter: "hot" surfaces the reply agreeing.
  2. get_thread returns the conversation and the agreed placement: which page on their site links to you and with what anchor, and which page on your site links back, with the anchor and the target. That comes from a stored record, not from reading the email, so your agent is not guessing at a URL.
  3. Your agent makes the change in your codebase. Nothing to do with us.
  4. send_reply tells them it is live.
  5. mark_deal closes the thread and records the placement as done.

mark_deal sends no email of its own, so step four is not optional if you want the other party to know.

What still needs the dashboard

These are not exposed through MCP, so do not go looking for a tool:

  • Adding a site, connecting a sending domain, or setting up a mailbox.
  • Changing your keywords, the page you link to, or your pitch line. get_campaign shows all three; changing them is still a browser job. Everything else about the campaign (audience, send days, countries, quiet hours, drafts per run, how to handle paid offers) can be changed in plain English through plan_campaign_change.
  • Anything to do with billing, plans or invoices.
  • Clearing an automatic sending pause after bounces. get_sending_health tells you it happened and why; lifting it is deliberate and manual.

Limits

  • Up to 10 keys per account.
  • Roughly 1,500 requests per key per 15 minutes. An agent working normally will not come near it.
  • Five agent-started trigger_run calls per site per day.
  • Lists return up to 50 rows per call; use offset to page.
  • Long messages are truncated with a marker naming the tool that returns the whole thing.

What the key can and cannot reach

An API key opens the twenty tools above and nothing else. It is not a password and it is not a session: it cannot see your mailbox credentials, cannot touch billing, cannot transfer a domain and cannot delete your account. Those stay behind a login.

Two of the twenty put mail in the world, approve_batch and send_reply, and both are shaped so an agent cannot pick who it reaches:

  • send_reply takes a conversation and a body. There is no field for a recipient. The address comes from the thread, so it can only ever answer the person already in it, even if something in an email it just read tries to redirect it.
  • redirect_thread does not weaken that, because it never changes where an existing thread replies. About one reply in fifty names somebody else to talk to, and this acts on it by opening a separate thread with the person named, then closing the original as redirected. The new thread starts empty, as a clean first touch, and send_reply on either thread still answers only that thread's own contact. It refuses a referral back to one of our own addresses, to the person who referred us, to anyone already in the chain, to a chain more than three hops deep, and to any address that has opted out or bounced.
  • approve_batch has to name the batch it was shown. If the batch changed between your agent reading it and approving it, the call is refused rather than sending something you did not see.
  • Every other write takes an id that came out of a read in the same conversation. There is no tool that sends something it composed on its own.

Keys can be revoked at any time from the same Settings panel, and a revoked key stops working on its next request.

There are three tiers, and they follow cost rather than status:

  • Reading your own sites, drafts, inbox, sent mail and sending health works on any account, including one whose subscription has ended. Your history stays yours.
  • Finding new sites and writing new copy (trigger_run, plan_campaign_change) needs a live account: an active plan or a trial.
  • Sending (approve_batch, send_reply) needs an active paid plan.

Worth knowing

  • Every tool that acts on a site wants an explicit site id. Your agent gets them from get_status with no arguments. Nothing is guessed for you, because guessing means acting on the wrong site in silence.
  • Turning sending off is never blocked, whatever the state of your billing. You can always stop your own outreach.
  • Emails come back as plain text rather than raw HTML, so long threads stay readable.
  • trigger_run is bounded: five agent-started runs per site per day, and it is refused outright while a batch is still waiting for approval. A run costs discovery and drafting whether or not you keep what it produces, so an agent cannot sit in a loop starting them.
  • Campaign changes are two steps on purpose: your agent shows you what would change before anything moves.

Looking for the read-only web endpoints and the OpenAPI description instead? Those are on the developer resources page.