RankPine docs
API for AI agents

MCP server

Connect Claude Code, Cursor, or a compatible MCP client to RankPine — your SEO pipeline as native agent tools.

RankPine ships a hosted MCP (Model Context Protocol) server. Point any MCP client that supports bearer authentication at it and your AI agent gets RankPine's capabilities as native tools — no HTTP glue code, no SDK.

  • Endpoint: https://rankpine.com/api/mcp
  • Transport: Streamable HTTP (stateless)
  • Auth: the same API keys as the REST API, sent as Authorization: Bearer rp_live_…

Setup

Claude Code

claude mcp add rankpine https://rankpine.com/api/mcp \
  --transport http \
  --header "Authorization: Bearer rp_live_your_key_here"

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "rankpine": {
      "url": "https://rankpine.com/api/mcp",
      "headers": { "Authorization": "Bearer rp_live_your_key_here" }
    }
  }
}

Any other client

Use a client that supports Streamable HTTP and a custom Authorization header. The server is stateless, so no session juggling. It supports protocol versions 2025-11-25, 2025-06-18, 2025-03-26, and 2024-11-05.

OAuth sign-in is not currently supported. A connector that requires OAuth or cannot send a bearer header cannot connect directly. Do not enter an API key as an OAuth client secret. Create a separate key for each assistant in Settings → API keys; revoke it there to remove access.

Available tools

The server exposes 40 tools. Existing tool names remain supported.

ToolsWhat they do
whoami, list_sites, get_site, get_subscriptionAccount, accessible sites, subscription and article usage
get_website_settingsWriting, image and scheduling settings, competitors and audiences
update_content_settings, update_image_settingsChange supplied writing/image defaults without changing billing
list_integrationsCMS connection status and support for updating existing posts
list_keywords, get_keyword, list_keyword_clustersKeyword metrics, provenance, clusters, SERP results, ranking history and related articles
import_keywords, suggest_keywords, generate_keywordsImport, suggest and research keywords
refresh_keyword_metrics, delete_keywordsQueue enrichment or delete unused keywords; article-linked keywords are retained
list_articles, get_articleArticle metadata, full Markdown/HTML, language versions and current edit revision
generate_articleQueue article generation
list_scheduled_articles, schedule_article, reschedule_article, unschedule_articleRead and manage the content calendar
update_articleEdit title, slug, meta description and Markdown; automatically rescore
edit_article_with_ai, get_article_rewrite, apply_article_rewriteRequest, review and accept an AI rewrite proposal
check_article_seo_score, check_seo_scoreScore a saved article or pasted Markdown without changing it
regenerate_featured_imageQueue a new featured image
publish_article, sync_article_to_cms, get_publish_statusPublish, update a supported CMS post and inspect delivery
get_search_console_status, sync_search_consoleInspect and refresh Search Console
get_search_performance, get_top_search_queries, get_article_search_performanceSite and article search performance
get_ai_visibility, get_backlinks_overviewStored AI visibility results and backlink exchange activity

Example workflows

  • “List my sites, then show the upcoming calendar for example.com.”
  • “Import these three keywords and schedule them on free days next week.”
  • “Read this article and rewrite its introduction. Show me the proposed changes before saving.”
  • “Score my five latest articles and explain the checks they fail.”
  • “Update this draft's meta description, then publish it to my connected CMS.”
  • “Show the ranking history and competing pages for this keyword.”
  • “Compare this article's search performance with our stored AI visibility results.”

Editing and publishing

Read get_article first and pass its updated_at as expected_updated_at to update_article or apply_article_rewrite. Stale edits are rejected. An AI rewrite is a proposal: poll get_article_rewrite, inspect proposed_markdown, then pass the proposal's id to apply_article_rewrite. If the saved body has changed since the rewrite started, request a new proposal.

Edits recompute sanitized HTML, SEO checks, word count, sources and internal links. They do not publish. For a ready article, use publish_article. For an already published article, use sync_article_to_cms if list_integrations reports update support. Both require an active site and a connected CMS.

Publishing is asynchronous. Poll get_publish_status and check the latest delivery's timestamp and outcome; an old successful delivery does not confirm a new sync. A queued operation is not evidence that content is live.

Calendar behavior

Import new keywords before scheduling them. schedule_article takes a keyword id and a future ISO timestamp with a timezone, such as 2026-10-03T08:00:00Z. It enforces the site's daily capacity using UTC dates. Scheduling does not spend an article credit immediately; generation later does, and autopilot may publish that article.

reschedule_article follows the app's calendar behavior: a single movable occupant is swapped with the source article. Other occupied days are refused. unschedule_article archives an ungenerated planned original and skips its keyword so automatic refill does not immediately restore it. Calling schedule_article explicitly can restore it.

Things agents should know

  • Generation is asynchronous. generate_article returns immediately; a full article takes several minutes. Poll get_article for ready, published, or failed; autopilot can publish after generation.
  • Access follows your account's content permissions. The key can reach owned sites and sites shared with you as a content member/admin. Billing-only membership does not grant content access. Tools do not expose integration credentials or change subscriptions, purchases, or paid add-ons.
  • Writing and image settings are patches. Only supplied fields change; null clears nullable fields. New defaults affect future generation.
  • AI rewrites, metric enrichment and images require an active site and use the app's operation limits. Keyword metric refresh can reuse fresh provider cache entries. AI visibility reads stored data and does not purchase or run the add-on.
  • Credits are real. Each generated article consumes one of the site's ~30 monthly credits — check get_subscription before batch-generating.
  • One generate can produce several articles, but costs one credit. If get_site reports additional_languages, the article is also localised into each of them — those are covered by a paid add-on, not metered. The versions are separate articles sharing a translation_group_id; list_articles returns one row per version, so filter by language if you want just one.
  • Rate limits are shared with the REST API (120/min, 10k/day per key).
  • Errors come back as tool results, not protocol failures, so your agent can read the reason (quota_exceeded, rate_limited, …) and adapt.

Try it: connect the server and ask your agent — “check my RankPine sites and suggest ten keywords for the weakest one, then queue the two best as articles.”

On this page