This page covers Sight AI’s outbound MCP server — connecting external clients to Sight AI. To pull data from third-party apps into Sight AI Agent and Automations, see MCP Connectors.
Prerequisites
- Sight AI team owner or admin
- An MCP client that speaks Streamable HTTP and OAuth 2.1 with PKCE: Claude (web, desktop, mobile, Claude Code), ChatGPT, Cursor, VS Code, Windsurf, Gemini CLI and most others
MCP server
Sight AI exposes a single MCP endpoint for every team:Connect from Claude
In Claude, open Customize → Connectors, choose Add custom connector and pastehttps://app.trysight.ai/mcp. Claude discovers OAuth on its own; sign in to Sight AI, pick the team and the sites, and approve. Claude Code: claude mcp add --transport http sight https://app.trysight.ai/mcp, then /mcp to sign in. Every tool shows under the connector’s Tool permissions with its title; read tools run without asking and write tools ask first.
Connect from ChatGPT
In ChatGPT, open Settings → Connectors, enable Developer mode, create a connector withhttps://app.trysight.ai/mcp/chatgpt and OAuth, then approve access on the Sight AI consent screen. ChatGPT reads the same read/write hints and confirms write actions before running them.
/mcp/chatgpt serves the same tools as /mcp, with the two things ChatGPT expects: the tool list can be read before you link your account (each tool says it needs OAuth to run), and a tool your connection lacks a permission for answers with a prompt to reconnect instead of a transport error. Use /mcp everywhere else.
OAuth endpoints
An unauthenticated request to
/mcp (or a tool call on /mcp/chatgpt) answers 401 with a WWW-Authenticate: Bearer challenge carrying resource_metadata and the scope the tools need, which is how clients find these endpoints without configuration. PKCE (S256) is required, the resource indicator (RFC 8707) is validated, and every authorization response carries iss (RFC 9207).
Register a client
Nothing to do for most clients:- Client ID Metadata Documents (the MCP spec’s preferred mechanism): Claude and ChatGPT identify themselves with an HTTPS URL as their
client_id; the server fetches that document, checks it and uses its redirect URIs. The consent screen names the domain the document came from. - Dynamic Client Registration (RFC 7591): Cursor, Claude Desktop through
mcp-remote, VS Code and others register a public client automatically when you connect.
client_id:
- Sign in as a team owner or admin.
- Go to Integrations → Sight AI API → OAuth apps.
- Click Create OAuth client, give it a recognizable name, and add a loopback redirect URI such as
http://127.0.0.1/oauth/callback(orcursor://anysphere.cursor-mcp/oauth/callbackfor Cursor). Leave Server-side app unchecked — MCP clients are public clients that authenticate with PKCE only. - Copy the generated
client_idif your MCP client requires a static client (see below).
Loopback redirect URIs (
http://127.0.0.1/..., http://localhost/...) match any port at runtime, per
RFC 8252 §7.3. One registered loopback URI covers
every Cursor/Claude Desktop session, even though each one picks a random callback port.Authorize
In Cursor, add an MCP server pointing athttps://app.trysight.ai/mcp. Cursor will discover OAuth, register a client automatically, and open the Sight AI consent screen where you pick your team, sites, and scopes.
If your client does not support dynamic registration, supply a pre-registered client_id from the dashboard:
Available MCP tools (v1)
Sight AI MCP now mirrors most of the REST v1 Developer API. Tools are grouped by workflow.How the server behaves
- Instructions.
initializereturns aninstructionsstring your client gives the model: start withlist_sites, which calls cost budget or credits, and that writes need the user’s go-ahead. - Titles. Every tool carries a
title(for exampleget_seo_rankingsis “Tracked rankings”), which clients show in their tool lists and permission screens. - Annotations. Every tool in
tools/listcarriesreadOnlyHint,destructiveHint,idempotentHintandopenWorldHint, so clients can run reads without asking and confirm writes. Paid lookups (research_keywords,fetch_keyword_overview,explore_domain,suggest_seo_competitors, and the AI recommendationsrecommend_article_types/recommend_article_category) are not marked read-only: an uncached call spends the site’s daily lookup budget or the team’s credits. Writes that overwrite, delete, cancel or send email are marked destructive, as is article generation (it spends credits); additive writes that cost nothing (create a draft, add keywords, submit for indexing) are not. - Permissions. A tool the connection’s scopes do not cover answers
403withWWW-Authenticate: Bearer error="insufficient_scope"and the full scope list; clients that follow the MCP step-up flow (Claude does) re-run consent and retry the call. - Validation. Arguments are checked against the tool’s schema before it runs: a missing
siteId, anactionoutside the enum or a value of the wrong kind returnsisErrorwith the argument named andcode: VALIDATION_ERROR. - Errors. A tool that fails returns a normal result with
isError: trueand text such asThe site's daily lookup budget is used up (code: BUDGET_EXHAUSTED), so the model can read the reason and tell the user. The codes match the REST error codes. Unexpected server failures returnInternal error. Calling a tool that does not exist is a JSON-RPC-32602error. - Image generation is an app and agent feature; the MCP server does not offer
generate_article_image.set_article_main_imagesets a cover image from a URL. - Single-site access. When the credential is limited to one site,
siteIdcan be left out and that site is used. - Plans.
tools/listonly lists the tools the team’s plan includes.
Sites & analytics (analytics:read)
list_sites/get_siteget_search_overview/get_search_timeseries/get_search_queries/get_search_pages/get_search_article_performanceget_ai_visibility_summary/get_ai_visibility_trends/get_ai_visibility_mentions/get_ai_visibility_citations/get_ai_visibility_competitors
SEO module (analytics:read / seo:write, requires the SEO module)
Every tool takes siteId and mirrors the SEO REST endpoints: the same filters, bodies, action and kind values apply, and the same 402 MODULE_REQUIRED and 429 BUDGET_EXHAUSTED errors come back. Reads use analytics:read; paid lookups and writes use seo:write. Requires re-authorization if MCP was connected before the seo:write scope was added.
Read (analytics:read), from stored snapshots, no paid lookups:
Paid lookups (
seo:write), each spends the site’s daily lookup budget unless cached:
Write (
seo:write). On the REST API these take an action (or kind for run_seo_check) matching the body below; over MCP every operation is a tool of its own, listed after the table.
Over MCP the action-based tools above are not listed. Each operation is its own tool with only that operation’s arguments (the
action / kind argument is gone); scopes, plan gating and rate limits are the registry tool’s:
Opportunities (opportunities:read)
list_opportunities— filter bysource(ai/search/all) andstatus(e.g. pending)get_opportunities_readiness— pipeline warmup status
Articles
Read (articles:read):
-
list_articles— filter bystatus(draft, generating, ready, failed) -
get_article— full article body, SEO fields, target keyword, and status -
get_article_limits— the team’s AI credit balance and usage this billing period (there are no per-article quotas) -
get_article_images— list hero/thumbnail/inline images for an article -
fetch_url_content— crawl a public URL (title, headings, body) for rewrite workflows -
get_writing_guide— pipeline writing playbook for listicle / step-by-step / explainer / comparison + business context -
recommend_article_types— recommend an article type per keyword -
recommend_article_category— recommend a CMS category from keyword/title -
list_article_authors— list Webflow/WordPress authors for batch assignment -
project_interlinks— estimate interlink-automation output for a given cron + end date
articles:write):
generate_article— start async generation from a keyword (pollget_articleuntilready). Articles generated over MCP get no AI cover image: open the article in Sight AI (Content → Articles) and use Generate image there, or set one from a URL withset_article_main_imagecreate_draft_article— create a blank draft to fill withupdate_articleoredit_article_sectionupdate_article— edit title, HTML body, SEO fields, slug, and summary (status is not exposed)edit_article_section— surgical body edits: append/replace a section or rewrite the introrefresh_seo_title/refresh_seo_meta— AI SEO rewrites (rate-limited)set_article_main_image— set/clear the hero image from a URLcreate_article_batch— queue 1–100 articles through the full pipeline (author round-robin, categories, interlinking focus); each article spends AI credits. Likegenerate_article, no AI cover images over MCP
Keywords (keywords:read / keywords:write)
Keyword pipeline tools for Autopilot and manual generation workflows.
Read (keywords:read):
list_keywords— paginated list with pipeline status; filterstatus: no_articlefor generation candidatesget_keyword— lookup bykeywordId, exactkeywordtext, orslugget_keywords_summary— totals, counts by status, and planning recommendationscheck_keywords— exact coverage check for up to 50 candidates against the full keyword list and existing articles; call it before recommending a keywordlist_keyword_groups— the site’s keyword groups with ids and counts
keywords:write):
add_keywords— single keyword or bulk (comma/newline, max 100); dedupes existing slugsmanage_keywords—add(same asadd_keywords, withgroupName/groupId),assign_group(group keywords that already exist; the group is created if missing) andremove(keyword ids, keyword texts, or every keyword a filter covers:statussuch asno_article,groupId/groupName,source,search;dryRun: truecounts and samples first). Reads and writes are separate tools on the MCP server.
Agents & Automations (agents:read / agents:write)
list_agents/list_agent_runsupdate_agent— toggle or tune an agentrun_agent— on-demand run (rate-limited, agent must be active). Over MCP this is one tool per agent:run_search_opportunity_agent,run_ai_opportunity_agent,run_article_boost_agent,run_interlinking_agent,run_site_performance_agent,run_outreach_agent
article_creation, ai_prompt, article_boost, interlinking, site_performance, outreach
Automations are included on Pro/Advanced and metered in AI credits. The v1 REST/MCP agent endpoints operate on the agent configuration store; custom automations from the UI are not yet exposed on the v1 API. See Automations for the full setup guide.
CMS & integrations (integrations:read / integrations:write)
Requires re-authorization if MCP was connected before these scopes were added.
list_integrations— connected CMS/platform integrations and which one is activeget_cms_status— active CMS, sync eligibility, and manual-only integrations (Framer)get_article_sync_status— per-platform sync state for an articlesync_article— push a ready article to the active CMS (WordPress, Webflow, Wix, Shopify, HubSpot, webhook)
Planner (planner:read / planner:write)
get_planner— read the planner:viewissettings,scheduled(the CMS publish queue, each item withoriginautopilot|manual),generation(upcoming Autopilot slots) orautopilot(health);startDate/endDatenarrow the queue viewsschedule_article— queue ready articles for a future CMS publish datemanage_planner— change the planner- Actions:
update_settings,update_scheduled,remove_scheduled,clear_scheduled,clear_generation,plan_generation
- Actions:
Indexing & setup health (indexing:read / indexing:write)
submit_sitemap_gsc— submit the configured sitemap URL to Google Search Consoleget_gsc_status— GSC connection, property, and sync statesubmit_article_indexnow— submit one article URL to IndexNow (after CMS sync)get_indexnow_status— IndexNow verification + optional URL lookupget_account_health— composite setup troubleshooting (CMS, GSC, IndexNow, autopilot, blockers)
Outreach inbox (inbox:read / inbox:write)
Requires Outreach Agent license. Contains contact PII (emails, names, message bodies).
list_inbox— conversation list with latest preview; filter bystatus(unread,open,awaiting_human, etc.)read_message— full conversation thread + opportunity context + agent reasoningget_inbox_unread_count— unread thread/total countsmark_conversation_read— clear unread state on a threadreply_to_message— send a human reply (requires Outreach email setup)update_conversation_status— resolve, decline, reopen, pause, or resume AItake_over_conversation— handawaiting_humanthreads to the Outreach Agent
End-to-end content workflow
Rate limits: article generation (10/day per team), SEO refresh (20/hr), agent runs (5/hr per site), keyword adds (100/hr per site). AI credit affordability is enforced via the credits system when enforcement is on.