Outrank MCP Server
Let Claude Code, Cursor and other AI assistants work in your Outrank organization: plan keywords, generate and publish articles, manage integrations, backlinks and the marketplace.
You need an API key first
Sign in to your Outrank dashboard, click your user avatar (bottom-left of the sidebar on desktop, top-right of the screen on mobile), and choose API Keys. Only organization admins can create or revoke keys. The full key is shown once at creation — copy it immediately and store it like a password.
What it is
The Outrank MCP server is part of the official outrank-cli package. It speaks the Model Context Protocol, so any MCP client can call Outrank directly as tools. It runs on your machine, started by the client, and sends requests to the Outrank REST API with your API key.
- Node.js 18 or newer on the machine that runs the client. Check with
node --version. - An Outrank API key. One key belongs to one organization.
- Nothing to install up front: the client starts the server through npx.
Claude Code
On macOS, Linux and WSL, run this in the project folder:
claude mcp add outrank --env OUTRANK_API_KEY=outr_live_your_api_key_here \
-- npx -y outrank-cli@0.6.0 mcpOn native Windows, from the Command Prompt:
claude mcp add outrank --env OUTRANK_API_KEY=outr_live_your_api_key_here -- cmd /c npx -y outrank-cli@0.6.0 mcpOn native Windows, from PowerShell, call claude.exe so that the -- separator is kept (claude.cmd when Claude Code was installed with npm):
claude.exe mcp add outrank --env OUTRANK_API_KEY=outr_live_your_api_key_here -- cmd /c npx -y outrank-cli@0.6.0 mcpCheck the connection, then start a new Claude Code session:
claude mcp get outrankTo share the server with a team, commit a .mcp.json file that takes the key from each developer's environment, so no key lands in git:
{
"mcpServers": {
"outrank": {
"command": "npx",
"args": ["-y", "outrank-cli@0.6.0", "mcp"],
"env": { "OUTRANK_API_KEY": "${OUTRANK_API_KEY}" }
}
}
}Each developer then sets the variable once. On macOS and Linux, add this line to ~/.zshrc or ~/.bashrc:
export OUTRANK_API_KEY=outr_live_your_api_key_hereOn Windows, from the Command Prompt or PowerShell:
setx OUTRANK_API_KEY outr_live_your_api_key_hereThe variable reaches new terminals only, so open a new one before starting Claude Code.
Cursor
Add the server to ~/.cursor/mcp.json, the file for all projects. It is in your home folder, outside any repository, so the key in it cannot be committed by accident. On Windows it is %USERPROFILE%\.cursor\mcp.json.
{
"mcpServers": {
"outrank": {
"command": "npx",
"args": ["-y", "outrank-cli@0.6.0", "mcp"],
"env": { "OUTRANK_API_KEY": "outr_live_your_api_key_here" }
}
}
}If the server does not start on native Windows, use this form:
{
"mcpServers": {
"outrank": {
"command": "cmd",
"args": ["/c", "npx", "-y", "outrank-cli@0.6.0", "mcp"],
"env": { "OUTRANK_API_KEY": "outr_live_your_api_key_here" }
}
}
}For one project or a team, put the server in .cursor/mcp.json inside the project and take the key from the environment, so the file can be committed without it:
{
"mcpServers": {
"outrank": {
"command": "npx",
"args": ["-y", "outrank-cli@0.6.0", "mcp"],
"env": { "OUTRANK_API_KEY": "${env:OUTRANK_API_KEY}" }
}
}
}Set OUTRANK_API_KEY as shown in the Claude Code section, then quit and reopen Cursor. A project server may first have to be switched on in the MCP section of the Cursor settings; a server in the all-projects file starts on its own.
Never commit a file that contains the key
A key written into a project file can end up in git with the next commit. Keep the key in the all-projects file or in the environment. If a key was committed, revoke it on the API Keys page and create a new one. If Cursor does not see the variable, which can happen on macOS when it is started from the Dock, every call returns CLI_AUTH_REQUIRED: use the all-projects file instead.
The examples pin the version on purpose: the server holds a live API key, so upgrade it deliberately.
Other MCP clients
Any client that can start a local MCP server (the stdio transport) works. Give it these three values; many clients read the same JSON as the Cursor example above.
- Command:
npx - Arguments:
-y outrank-cli@0.6.0 mcp - Environment variable:
OUTRANK_API_KEYset to your API key
First steps
Ask the assistant to "show my Outrank account and products". It calls auth_whoami and products_list and should answer with your organization and its websites. Every result names the organization it came from, so the assistant cannot mix accounts up silently.
Tools are named after the CLI commands with underscores: keywords_list, articles_generate or products_integrations_list.
Toolsets
Tools are grouped into toolsets. At startup the server asks Outrank which areas your organization can use and lists only those tools, so an assistant is not offered dozens of tools that would only return errors. The tools that start a new area, such as the marketplace status tools, are always listed.
core
Account, products and their settings, target audiences, competitors, usage and subscription status. On by default; an explicit --toolsets list has to name it.
integrations
Connect and test publishing integrations such as WordPress, Webflow, Shopify or Framer.
gsc
Connect Google Search Console and read performance, search analytics, cannibalization and URL inspection data.
linking
Internal linking: link sources, detection and the list of link targets.
backlinks
The backlink exchange: settings, credits, earned backlinks, verification and plan quotes.
keywords
The content plan: list, suggest, generate, schedule, reschedule and delete keywords.
articles
Generate, read, edit, replace and publish articles, including images.
improvements
Find under-performing published articles, review the candidates, schedule and push the rewrites.
marketplace-seller
Sell placements in the Outrank Marketplace: onboarding, payout setup, placements and earnings.
marketplace-buyer
Buy placements in the Outrank Marketplace: plan, target pages and placements.
billing
Quote and buy extra product slots, and open the billing portal.
Add options after mcp in the server command to change what is listed:
npx -y outrank-cli@0.6.0 mcp --read-only
npx -y outrank-cli@0.6.0 mcp --toolsets core,keywords,articles
npx -y outrank-cli@0.6.0 mcp --toolsets all--read-onlylists only tools that change nothing in Outrank or on your site.--toolsetswith a list exposes exactly those toolsets. Keepcorein the list unless you already know your product ids.--toolsets alllists everything.
The tool list is a noise filter, not a permission system: Outrank checks access on every request. After buying a new service, ask the assistant to run whoami again or restart the server to refresh the list.
Several organizations
One server works on one organization. For several organizations, store one profile per organization with the CLI and register one server per profile:
npm install -g outrank-cli@0.6.0
outrank-cli auth login outr_live_first_key --profile acme
outrank-cli auth login outr_live_second_key --profile globex
claude mcp add outrank-acme -- npx -y outrank-cli@0.6.0 mcp --profile acme
claude mcp add outrank-globex -- npx -y outrank-cli@0.6.0 mcp --profile globexA server started with --profile ignores OUTRANK_API_KEY, so each one stays on its own organization even when that variable is set in your shell.
In PowerShell, call claude.exe in the last two commands, as described in the Claude Code section.
Security
- The key never passes through the assistant. No tool takes an API key as an argument and logging in is not a tool. Put the key in the client configuration or in the environment, never in a chat message or in a file that is committed.
- The key is only sent to Outrank. The server talks to www.outrank.so. Environment variables cannot point it at another host, so a project file such as .mcp.json cannot redirect your key that way; any other host needs a profile you store yourself in a terminal.
- Only register the server from a configuration you trust. Whoever controls the server command and its environment controls the process, and a configuration that replaces the program can read the key. Read a .mcp.json from a repository you did not write before you approve it.
- Purchases and cancellations need explicit confirmation. Tools that charge your card or cancel a subscription require the exact amount or subscription id as a confirmation field and are flagged as destructive, so the client asks before running them. A client set to approve every tool automatically removes that safeguard.
- Uploads are restricted. Image files are read only from the folder the server starts in (or --upload-dir); the assistant can also send image bytes directly. Either way the limit is 5 MB and the content must really be an image.
- Marketplace text is untrusted. Briefs, notifications and placement articles are written by other organizations. The server tells the assistant to treat them as data, not as instructions.
Rate limits
The server uses the same budget as every other client of the key: 120 requests per minute and 10,000 requests per day. When a limit is reached, the tool result says how long to wait.
Troubleshooting
The server does not start.
Run npx -y outrank-cli@0.6.0 mcp --help in a terminal: it must print the usage. Check that Node.js 18 or newer is installed. On native Windows, if the client cannot start npx directly, use the cmd /c npx form shown above.
The command works in a terminal, but the client cannot find npx or node (macOS, Linux).
A client started from the Dock or a desktop menu does not always get the PATH of your shell, so a Node.js installed with nvm, fnm or volta can be invisible to it. Run which npx in a terminal, use that full path as the command, and add its folder to PATH in the env block of the server entry, for example "PATH": "/home/you/.nvm/versions/node/v22.0.0/bin:/usr/bin:/bin". The full path alone is not enough: npx starts node through PATH.
PowerShell reports "unknown option '-y'" when adding the server.
PowerShell drops the -- separator when claude is a script or a function instead of the program itself. Call claude.exe directly, as in the PowerShell example above. If claude.exe is not found (Claude Code installed with npm), call claude.cmd or run the command from the Command Prompt.
The first start is slow or times out.
npx downloads the package the first time, which can take 20 seconds or more, and contacts the npm registry on every start. In Claude Code, run /mcp reconnect all to try again, or install the package globally and use outrank-cli mcp as the command.
Every call returns CLI_AUTH_REQUIRED.
The server has no API key. Add OUTRANK_API_KEY to the server entry in the client configuration.
Only a few tools are listed.
The organization does not have that service yet, the key could not be checked at startup, or the server command narrows the list with --toolsets or --read-only. Ask the assistant to run whoami: the answer names what is on, what is off and how to start it. Then check the server entry in the client configuration.
A call takes minutes or times out.
Generating articles, analyzing improvements and generating keywords are long operations. When a call times out the result says whether the work may still be running and which tool to check with. Do not repeat the call before checking.
If you prefer a global install over npx:
npm install -g outrank-cli@0.6.0
outrank-cli mcp --helpBuilding your own integration?
The MCP server and the CLI wrap the same endpoints you can call yourself. See the REST API documentation for authentication, entitlements, rate limits and the endpoint groups.
