What the server is
The whereamimentioned MCP server lets an AI assistant measure whether AI assistants mention your brand. Connected to Claude, Cursor, VS Code or any other MCP client, it can read your visibility reports, the model answers behind them, the competitors that appear instead of you and the sources the models cite, and it can run scans. It also carries the site tools that need no account at all: which AI crawlers can reach your site, validating and generating llms.txt, generating sitemaps, validating structured data, analysing how your content chunks, and checking meta descriptions.
Endpoint and URL shapes
One server, one base URL. The path decides what the client can reach, so no tool ever takes an organization or workspace as an argument: a model picks arguments from a schema and will eventually pick wrong, and a URL is set by whoever configured the client.
https://whereamimentioned.com/api/mcp
https://whereamimentioned.com/api/mcp/{orgSlug}
https://whereamimentioned.com/api/mcp/{orgSlug}/{workspaceSlug}
https://whereamimentioned.com/api/mcp/readonly
https://whereamimentioned.com/api/mcp/{orgSlug}/readonly
https://whereamimentioned.com/api/mcp/{orgSlug}/{workspaceSlug}/readonlyThe unpinned URL serves the site tools to everyone. With an organization key it also reaches that organization and its workspaces; with an account-wide key it reaches the organization named on each request, plus the account-wide tools. Pinning an organization (/{orgSlug}) drops the account-wide tools. Pinning a workspace (/{orgSlug}/{workspaceSlug}) also drops the workspace list and workspace creation, so a pinned agent cannot even see the tools that would let it wander. Adding /readonly to any of them drops every tool that writes: run_scan, update_prompts, create_workspace and create_organization. The server also rejects those tools at the handler on a readonly URL, so a client that cached an older tool list cannot call them.
Two kinds of key
An organization key reaches one organization and is the default. Pick it unless you know you need the other one.
An account-wide key reaches every organization you belong to and is the only kind that can create a new one, which makes it a bigger secret. Used at the unpinned URL, it names the organization per request with the X-Wam-Org header (the organization slug), or you pin the organization in the URL, which is the simpler choice.
The safety property is worth one sentence: an account-wide key gives you no more permission anywhere, only more places to use it, and in each of them you are whatever you already are. If you are a viewer in an organization, the key is a viewer there. If you are removed from an organization, the key loses it on the next request, with nothing to rotate. At a pinned URL an account-wide key sees exactly what an organization key for that organization would see.
Where to mint a key
Settings > API keys in your organization, at /{orgSlug}/settings/api-keys. The key is shown once, at creation. API keys, the MCP server and the API are included on every paid plan; the site tools need no key at all.
Cost and confirmation
A scan spends credits, so the server makes an agent quote before it runs. estimate_scan is free: it returns the cost in credits and a signed quote that is valid for five minutes. run_scan requires that quote, an explicit confirmation and an idempotency key, and it re-derives the cost on the server, so a client cannot hand it a cheaper number. Replaying the same idempotency key returns the scan that already exists and starts nothing.
As a hard ceiling that does not depend on the client behaving, a key may start at most 3 scans per rolling 60 minutes. The tool error names the cap and when it resets.
Protocol
The server speaks MCP revision 2026-07-28 over Streamable HTTP, POST only, and also serves the 2025 revisions (2025-06-18 and earlier) statelessly, so a client still on one of those connects to the same URL: the initialize handshake is answered, no session id is issued, and there is no SSE stream. A client that cannot add a remote URL at all uses the stdio bridge below, which forwards each request to this endpoint.
Install
No single config snippet works everywhere: the top-level key and the transport name differ per client. Pick yours. Every snippet uses the placeholder wam_live_XXXX where your key goes.
One command. Replace the placeholder with your key.
claude mcp add --transport http whereamimentioned \
https://whereamimentioned.com/api/mcp \
--header "Authorization: Bearer wam_live_XXXX"Leave the header out to reach only the site tools.
Open Customize > Connectors > Add custom connector and paste this URL.
https://whereamimentioned.com/api/mcpAuthentication settings cannot be changed after a connector is added. To change the key, remove the connector and add it again.
Project scope: committable, and it works in Claude Code and Claude Code on the web. The token is read from your shell, so the file never carries a key.
{
"mcpServers": {
"whereamimentioned": {
"type": "http",
"url": "https://whereamimentioned.com/api/mcp",
"headers": { "Authorization": "Bearer ${WAM_TOKEN}" }
}
}
}Export it before you start: export WAM_TOKEN=wam_live_XXXX
.cursor/mcp.json in the project, or ~/.cursor/mcp.json for every project.
{
"mcpServers": {
"whereamimentioned": {
"url": "https://whereamimentioned.com/api/mcp",
"headers": { "Authorization": "Bearer wam_live_XXXX" }
}
}
}Or in one click: Add to Cursor. The link carries the URL and no key, which reaches the site tools. For the account tools, add the header from the file above.
.vscode/mcp.json. The top-level key is servers, not mcpServers.
{
"servers": {
"whereamimentioned": { "type": "http", "url": "https://whereamimentioned.com/api/mcp" }
}
}This entry carries no key, so it reaches the site tools. For the account tools, add a headers object with Authorization: Bearer wam_live_XXXX to it.
Two one-click forms exist. They are labelled so nobody later fixes one into the other.
- Install in VS Code (Insiders): the
vscode:mcp/installhandler that Microsoft documents. This is the primary link. - Install via insiders.vscode.dev redirect: the README badge convention. Real and in use, but not in the official docs, so it could change without notice. This is the secondary link.
~/.cline/mcp.json or the Cline panel. Set type explicitly: omitting it silently defaults to legacy SSE, which this server does not speak.
{
"mcpServers": {
"whereamimentioned": {
"type": "streamableHttp",
"url": "https://whereamimentioned.com/api/mcp",
"headers": { "Authorization": "Bearer wam_live_XXXX" }
}
}
}For any client that cannot add a remote URL, or that still speaks an older protocol revision. The bridge forwards every request to the hosted endpoint and holds no logic of its own.
{
"mcpServers": {
"whereamimentioned": {
"command": "npx",
"args": ["-y", "@whereamimentioned/mcp"],
"env": { "WAM_TOKEN": "wam_live_XXXX" }
}
}
}Requires Node 20.19 or newer. The environment variables it reads are listed further down this page.
Other clients
Every client needs the same two facts: the endpoint URL and, for the account tools, an Authorization: Bearer header carrying your key. Where a client cannot send a header, use the stdio bridge.
OpenAI Responses API
Pass the server as a tool. Leave authorization out to reach only the site tools.
tools: [{ type: "mcp", server_label: "whereamimentioned", server_url: "https://whereamimentioned.com/api/mcp", authorization: "wam_live_XXXX" }]Perplexity
Add the endpoint URL as a custom connector. If the connector form takes an authorization header, put your key in it as Bearer wam_live_XXXX; without one, the assistant sees only the site tools.
Copilot Studio
Use the MCP wizard, give it the endpoint URL, and choose the authentication option that sends a bearer token with your key.
Azure AI Foundry
Add an MCP tool with server_url set to the endpoint and your key in the authorization header.
n8n
The MCP Client Tool node takes the endpoint URL. Pick the streamable HTTP transport and a bearer credential holding your key.
Make
The MCP Client module connects to the endpoint URL. Supply the key as a bearer token on the connection.
Raycast
Add the endpoint in the MCP servers settings. If the client cannot send a header, use the stdio bridge with WAM_TOKEN instead.
JetBrains / Junie
.junie/mcp/mcp.json in the project or ~/.junie/mcp/mcp.json. Top-level key mcpServers; the entry takes "type": "streamable-http" (hyphenated), the url and a headers object with the Authorization header.
OpenCode
opencode.json in the project or ~/.config/opencode/opencode.json. The top-level key is mcp, and the entry takes "type": "remote", the url, "enabled": true and a headers object for the key. OpenCode's default tool-fetch timeout is 5000 ms. The first call after a cold start of our endpoint can take longer than that, so if it fails once and then works, raise timeout on the entry.
Warp
.warp/.mcp.json in the project or ~/.warp/.mcp.json. Top-level key mcpServers; the entry takes the url and a headers object.
Amp
One command. The entry lands under amp.mcpServers in Amp's settings, where you add the Authorization header.
amp mcp add whereamimentioned https://whereamimentioned.com/api/mcpZed
~/.config/zed/settings.json, under the top-level key context_servers. The entry takes the url and a headers object.
Goose
Add to Goose installs the endpoint as a streamable HTTP extension. Add your key as an Authorization header in the extension's settings for the account tools.
Windsurf
~/.codeium/mcp_config.json, top-level key mcpServers. The remote entry uses serverUrl, not url, plus a headers object.
The stdio bridge
npx -y @whereamimentioned/mcp runs a small proxy: it reads each request from the client on stdin, POSTs it to the hosted endpoint, and writes the response back. It holds no tool definitions of its own, so what it lists is exactly what the hosted server lists. It reads these environment variables.
| Variable | Default | Meaning |
|---|---|---|
| WAM_TOKEN | (none) | Your API key. If absent, the bridge still runs and only the site tools appear. |
| WAM_MCP_URL | https://whereamimentioned.com/api/mcp | Endpoint override, for staging. |
| WAM_ORG | (none) | Appended as a URL path segment. Pins the organization and the tool list. |
| WAM_WORKSPACE | (none) | Appended after WAM_ORG. Pins the workspace. |
| WAM_READONLY | (unset) | If 1, appends the /readonly path suffix, which drops every tool that writes. |
npx @whereamimentioned/mcp --help prints the same table. Requires Node 20.19 or newer.
Related
- The CLI
- The OpenAPI document for the REST API behind these tools
- The server card, the machine-readable description of this server
- All docs