Docs
The AIMentionTracker MCP server
Six read-only tools that let an AI assistant answer questions about how other AI assistants talk about your brand. Hosted, or local, and it holds none of your secrets either way.
Card required, nothing charged for 7 days
Listed in the official MCP registry
We are published as ai.aimentiontracker/mcp in the official Model Context Protocol registry, offering both transports. The namespace is verified by DNS ownership of aimentiontracker.ai rather than by a GitHub account, so it stays ours through a repo move.
Worth being straight about what that is and is not worth: being listed is table stakes. Several tools in this category ship an MCP server and one shipped theirs a year before ours. What is unusual is that it is on every plan, including the $9 one, where the going rate for programmatic access elsewhere is an upgrade or an enterprise conversation.
A hosted SEO MCP server, with nothing to install
claude mcp add --transport http aimentiontracker https://mcp.aimentiontracker.ai/mcp \
--header "Authorization: Bearer amt_live_YOUR_KEY"Mint the key at API keys in the app. Nothing is installed, nothing needs updating, and the tools are available in the next conversation. The server is open source, MIT: read it on GitHub before you point a key at it.
Or local, over stdio
claude mcp add aimentiontracker \
-e AMT_API_KEY=amt_live_... \
-- npx -y @aimentiontracker/mcpNeeds Node 20 or newer. The same six tools, the same API underneath. Reach for this when you would rather your key never leave the machine, or when you want to pin a version.
Either transport works with any MCP client. The commands above are Claude Code's; a client with a config file wants the same two facts — a URL and a header, or a command and an environment variable.
The six tools
Each one is a single v1 endpoint. All reads.
| Tool | Endpoint | What it answers |
|---|---|---|
| get_me | /me | Which account is this, and what rules govern the numbers. |
| list_brands | /brands | Which brands may I read. |
| get_visibility | /visibility | How often does each engine name us. |
| list_answers | /answers | Show me the answers themselves. |
| list_sources | /sources | What do the engines read before answering. |
| list_alerts | /alerts | What changed enough to be worth saying. |
get_me is the one to call first. It returns the plan, the quota and the reporting thresholds in force, which is what lets an assistant state the rules it is working under rather than assume them.
What to ask it
The tools are named for the questions people actually ask, so most of the time you do not have to name a tool at all:
"How often did ChatGPT name us last month, per engine?"
"Which domains do the engines read on the answers where a competitor wins?"
"Show me the three answers where we were named but ranked last."
"Has anything actually changed this week, or is it noise?"That last one is the question the third rule exists for. An assistant with these tools will tell you an empty findings list means no move large enough to separate from noise at your sample size, because list_alerts says so in the payload rather than leaving the model to fill the silence.
Security: the hosted server holds no secrets
- No database, no vendor credentials, no service account. There is nothing in the container to steal that would get anyone into an account.
- Your key is passed through, not stored. It arrives in the
Authorizationheader and goes straight to the v1 API. - The API does all the security. Authentication, tenancy, entitlement and rate limiting all happen where they already happened — the MCP server adds no second permission model to keep in step.
- Stateless per request. Each request gets a fresh server instance, closed when the response ends. Nothing persists between conversations.
- Read-only, structurally. Not a policy that could be relaxed later by a flag: v1 has no write endpoints for a tool to call.
If you are handing this to someone else's assistant, pin the key to one brand when you mint it. A pinned key cannot read a sibling brand and cannot even enumerate one.
The rules the tools carry
Three rules the tools state rather than assume
These are not style preferences. Breaking them produces a confidently wrong report in your customer's name.
- 1
A null rate means "not enough answers yet". It is NOT zero.
Rates come back as {present, responses, rate, min_sample}. When rate is null, the sample is below the floor. Say “3 of 4 answers, too few to quote a percentage”. Never render it as 0%, and never let it into an average. Reporting “0% visibility” for a brand that was named in 3 of 4 answers is the single most damaging thing you can do with this data.
- 2
Never average the engines.
There is no single visibility score and you must not compute one. ChatGPT, Perplexity and Google AI Overviews are different surfaces that disagree, so a mean describes nothing real. Report per engine. If the user insists on one number, give them the pooled counts (present and responses summed) and say plainly what you did.
- 3
An empty alerts list does NOT mean nothing changed.
A finding is raised only when both comparison windows carry enough answers AND the move is larger than its own margin of error. On a small plan that excludes most real movement. Say “no change large enough to distinguish from noise at this sample size”. GET /me shows the thresholds in force.
Questions about the MCP server
Answered from the implementation.
Does AIMentionTracker have an MCP server?
How do I add AIMentionTracker to Claude Code?
Does the hosted MCP server store my API key?
Can an assistant change anything through the MCP server?
Will the assistant understand that a null rate is not zero?
Which MCP clients work with it?
7-day trial
Let your assistant read your AI visibility
Add your brand and the prompts your buyers type. The first answers are readable within minutes, in the app or from any MCP client.
Card required, nothing charged for 7 days.
On every plan
- Every answer stored in full, with its citations.
- Every rate shown with the number of checks behind it.
- Cited-but-not-named reported as its own state.