RankOrg MCP

RankOrg researches your niche and builds topical authority with SEO/GEO optimized blogs.

Hosted MCP Server

npx add-mcp 'https://rankorg.com/api/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Agent setup and copy prompt

Create a personal access token from Settings → API access (MCP), then choose your agent and copy the setup snippet and prompt.

Claude setup

Add RankOrg as a custom remote MCP connector. Claude automatically detects OAuth 2.0 and prompts you to authorize with one click.

https://rankorg.com/api/mcp
Use the RankOrg MCP server. First get my site context, then list my scheduled articles for the next 7 days as a concise list with title, publish date, status, slug, and article ID.

MCP quick start

  1. 1

    Connect your AI agent

    Add https://rankorg.com/api/mcp as a Remote MCP server in Claude or ChatGPT. They will automatically authenticate via secure OAuth 2.0.
  2. 2

    Or use a personal token for CLI tools

    For tools like Codex, Cursor, or scripts, generate a personal token at Settings → API access (MCP) and provide it via Authorization: Bearer rankorg_....
  3. 3

    Ask in plain English

    Try “What content is scheduled today?” or “Research keywords and write my next article.”

Authentication

RankOrg supports standard OAuth 2.0 (RFC 8414, RFC 7591 Dynamic Client Registration, and PKCE) for AI assistant clients (Claude, ChatGPT), as well as Personal Access Tokens for headless CLI environments.

  • OAuth 2.0 (AI Connectors): Simply enter https://rankorg.com/api/mcp in your AI client. Discovery happens automatically via /.well-known/oauth-protected-resource.
  • Bearer Header (CLI & Scripts): Authorization: Bearer rankorg_... or Authorization: Bearer mcp_at_...
  • URL Query (Legacy): https://rankorg.com/api/mcp?token=rankorg_...
POST https://rankorg.com/api/mcp
Authorization: Bearer mcp_at_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Accept: application/json, text/event-stream

MCP tools

read tools inspect your account. write tools change content, schedules, or publishing state.

getSiteContext read

Returns the user's site (domains) and business/niche profile. Agents should call this first to ground everything else.

Say: "What business is my RankOrg account set up for?"

listContent read

Lists the user's articles. Use filter='today' to see what publishes today, 'scheduled' for upcoming, 'published' for live posts, or 'all'.

ParamTypeNotes
filter"today" | "scheduled" | "published" | "all"Which slice of content to return. Defaults to 'all'.

Say: "What content is scheduled to publish today?"

getContent read

Returns a single article's full HTML content, title, meta description, status and schedule by id. Call before editing so you have the current draft.

ParamTypeNotes
id *stringThe article id.

Say: "Show me the draft titled '…' so I can review it."

getSearchPerformance read

Returns the site's Google Search Console performance — clicks, impressions, CTR, average position, top pages, top queries, and a daily trend. Reports a clear next step when Search Console isn't connected yet.

Say: "How is my content performing in Google search?"

getTopicalMap read

Returns the topical map — clusters → topics → subtopics → keywords with demand (volume/CPC), keyword difficulty, rankability scores, and which keywords already have scheduled or published articles.

Say: "What keywords are we targeting, and which are still open?"

updateContent write

Edits an article's title, HTML content, and meta description. The title cannot change once an article is published (SEO stability).

ParamTypeNotes
id *stringThe article id.
title *stringNew title.
content *stringFull article body as HTML.
metaDescription *stringNew meta description.

Say: "Tighten the intro of that draft and update the meta description."

researchKeywords write

Generates a keyword profile — head keywords plus specific long-tail search phrases — from the user's business profile, and saves it to their account.

Say: "Research keywords for my business."

generateArticle write

Generates the next SEO article, picking the highest-priority keyword from the topical map and scheduling it into the next open publish slot.

Say: "Write and schedule my next article."

publishContent write

Publishes a scheduled article live immediately. This is public and irreversible-ish — only call after the user explicitly confirms.

ParamTypeNotes
id *stringThe article id to publish now.

Say: "Publish that article now."

rescheduleContent write

Moves a planned article to a different future date, or skips it to free the day. Only un-generated planned days (DRAFT pre-plan rows) can be moved or skipped; moving onto another planned day swaps the two.

ParamTypeNotes
id *stringThe planned article id.
action *"move" | "skip"Move to a new date, or skip the day.
newDatestringRequired for 'move': new publish date (YYYY-MM-DD), must be in the future.

Say: "Move tomorrow's post to Friday."

mergeContent write

Consolidates duplicate or overlapping published posts. The primary survives; each merged post becomes a permanent 308 redirect to it, so the old URLs keep passing SEO equity to the survivor.

ParamTypeNotes
primaryId *stringThe post to keep (must be published).
mergedIds *string[]Posts to merge into the primary (become redirects).

Say: "These two posts overlap — keep the stronger one and redirect the other."

unmergeContent write

Reverses a merge: restores a merged post to published so its URL serves content again instead of redirecting.

ParamTypeNotes
id *stringThe merged article id to restore.

Say: "Undo that merge — bring the old post back."