Two transports, one surface
MCP server — point an MCP-capable client (Claude Desktop, Cursor, an OpenAI-compatible agent runtime, your own orchestrator) at the server URL and it discovers the tool list, schemas, and descriptions automatically.
{
"mcpServers": {
"agenticseo": {
"url": "https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/mcp",
"headers": { "Authorization": "Bearer $AGENTICSEO_TOKEN" }
}
}
}REST API — the same functions as ordinary endpoints for backends and scripts that do not speak MCP.
MCP https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/mcp
REST https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/apiFunction catalog
Each function below is one MCP tool and one REST endpoint. Parameter schemas, response shapes, examples, and per-call credit metering are documented in the full integrator reference.
1. Site discovery & analysis
Enumerate a site, enqueue an analysis over a chosen subset, poll the job, and read the finished report. This is the core "one-time audit" flow that produces every AgenticSEO output (Layers 1–6).
discover_sitePOST /v1/discoveryscope: readEnumerate every reachable page on a site before spending an analyze.
analyze_sitePOST /v1/reportsscope: analyzeEnqueue an AgenticSEO analysis over a discovered subset.
get_job_statusGET /v1/jobs/{id}scope: readPoll job status; response carries report_id when done.
get_reportGET /v1/reports/{id}scope: readFetch a full report (metadata + per-page outputs across all 6 layers, plus Annex A when enabled).
list_reportsGET /v1/reportsscope: readList recent reports visible to this token.
get_llms_txtGET /v1/reports/{id}/llms-txtscope: readReturn the site-wide llms.txt for a completed report.
2. AI Visibility (prompts, citations, competitors)
Measure whether real AI engines (ChatGPT, Gemini, Perplexity, Claude) cite your customer for the prompts their buyers actually type. Cold-start from a URL, or read rolled-up scores + trends once monitoring is on.
analyze_ai_visibilityPOST /v1/visibility/analyzescope: analyzeCold-start: URL → prompt set → per-prompt rank + share-of-voice in one call.
get_visibility_scoresGET /v1/visibilityscope: readLatest AI Visibility rollup + diagnostics block.
get_retrieval_pipelineGET /v1/pipelinescope: readVerdict per stage of the retrieval chain, and the first stage that blocks the rest.
get_authority_signalsGET /v1/authorityscope: readStanding off the client's own website: citation share, corroboration, search standing, reviews, links.
get_source_ecosystemGET /v1/source-ecosystemscope: readWhich kinds of source the engines cite, where the client is absent, and the original asset that would fix it.
enable_visibility_monitoringPOST /v1/visibility/monitorscope: analyzeTurn on scheduled recomputes for a company.
get_visibility_trendGET /v1/visibility/trendscope: readTime-series scores + deltas + new/lost competitors.
list_promptsGET /v1/promptsscope: readTracking prompts + latest run per prompt.
get_prompt_historyGET /v1/prompts/{id}/historyscope: readPer-prompt run history for charting change over time.
run_prompts_nowPOST /v1/visibility/runscope: analyzeHeadless re-score: fan out every enabled tracked prompt and compute a fresh visibility_scores row.
get_run_statusGET /v1/visibility/statusPoll latest score, enabled prompts, complete runs (30d), and in-flight runs.
get_competitor_breakdownGET /v1/benchmarks/breakdownscope: readPer-brand rollup: cited_count, voice_share, avg_position, is_user_brand.
suggest_benchmark_promptsPOST /v1/benchmarks/suggest-promptsscope: analyzeAI-generated new tracked prompts targeting competitor-dominated territory.
3. AI crawler access
Standalone Layer 3 audit — cheap, no prior report or discovery needed.
get_ai_crawler_accessGET /v1/crawler-access?url=<site-url>scope: read/robots.txt allow/deny for every tracked AI crawler + copy-paste fix snippet.
4. FAQ drafting & publishing
Convert every tracked content gap (a prompt no page on the site answers) into copy-paste FAQ Q&A pairs, then optionally forward those cached drafts to a connected downstream target (Quid today; webhook / WordPress / HubSpot adapters slot in server-side).
draft_faqs_for_gapsPOST /v1/faqs/draftscope: faq:draftDraft copy-paste FAQ Q&A pairs for tracked-prompt content gaps.
publish_faq_to_targetPOST /v1/faqs/publishscope: faq:publishForward cached FAQ drafts to a connected downstream target.
resolve_gapsPOST /v1/gaps/resolvescope: faq:publishRecord that content gaps are handled on your side (completes workflow step 4).
list_publish_targetsGET /v1/faqs/targetsList downstream targets available to publish_faq_to_target.
5. Competitor set management
Inspect and curate the competitor set that powers Citation Presence and share-of-voice comparisons. analyze_ai_visibility seeds an initial auto-discovered list; these tools let a partner UI (Quid, etc.) show it, add missing competitors, and prune ones the user rejects — without touching AgenticSEO's own UI.
list_competitorsGET /v1/competitorsList tracked competitors (source = auto | manual).
discover_competitorsPOST /v1/competitors/discoverscope: competitors:writeRe-run auto-discovery. Preview by default; persist=true writes new suggestions.
add_competitorsPOST /v1/competitorsscope: competitors:writeAdd manual competitors (source = "manual", never auto-swept).
remove_competitorsPOST /v1/competitors/removescope: competitors:writeSoft-delete competitors by id or name.
9. Health
Unauthenticated probes for uptime checks.
—GET /v1/healthReturns { status: "ok" }.
6. Gap pages (persisted briefs → live URLs)
The Prompt Audit report drafts brand-new pages for tracked prompts that no existing page on the site answers. Those briefs are now persisted in `public.gap_pages` and can be flipped to "published" — at which point they render at https://agenticseo.live/g/<slug>, appear in the sitemap on the next build, and become readable by every AI crawler. This group is the partner-facing surface for listing, reading, publishing, and unpublishing them without touching the AgenticSEO UI.
list_gap_pagesGET /v1/gap-pagesscope: gap_pages:readList drafted + published gap pages for a company.
get_gap_pageGET /v1/gap-pages/{id_or_slug}scope: gap_pages:readFetch one gap page (all 6-layer fields + outline + rationale).
publish_gap_pagesPOST /v1/gap-pages/publishscope: gap_pages:publishFlip drafted gap pages to published (live at /g/<slug>).
unpublish_gap_pagePOST /v1/gap-pages/unpublishscope: gap_pages:publishReturn a published gap page to draft status.
7. Google Search performance (Search Console)
Real, measured Google Search data for a company — clicks, impressions, CTR, impression-weighted average position, a daily trend, and the top 25 queries and pages ranked by impressions. Sourced live from Google Search Console via the connected Google account for that client, so these are actuals, not a vendor estimate. This is the classical-search counterpart to get_visibility_scores (Share of AI Voice): pair them to show a customer both halves of discoverability in one view. Included on every tier and metered at zero credits, because Search Console is a free first-party connection.
get_gsc_performanceGET /v1/gsc/performanceClicks, impressions, CTR, average position + top queries/pages.
list_gsc_propertiesGET /v1/gsc/propertiesVerified properties covering this company’s site + the bound one.
select_gsc_propertyPOST /v1/gsc/propertyscope: analyzeBind one property to the company for all later reads.
7. Prompt-to-page mapping, engines & PR narrative
The mirror image of gap pages: which existing page best answers each tracked question, which answer engines a company can be measured across, and which publishers and authors the engines actually cite when they describe the brand. All read-only.
get_analyze_visibility_statusGET /v1/visibility/statusscope: readPoll an async analyze_ai_visibility job until it finishes.
list_prompt_page_mappingsGET /v1/prompts/pagesscope: readFor every tracked question, the best existing page that answers it plus a relevance score.
get_prompt_page_mappingGET /v1/prompts/:id/pagesscope: readBest and second-best page for a single tracked question.
list_enginesGET /v1/enginesAnswer engines this company can be measured across, and which its plan includes.
list_citation_sourcesGET /v1/pr/sourcesPublishers and domains the engines cite about this brand and category.
list_cited_authorsGET /v1/pr/authorsJournalists and analysts whose bylined articles the engines cite.
get_narrative_analysisGET /v1/pr/narrativeTrailing-window narrative view with reinforce and respond action lists.
8. Attribution, projects, workflow & idea generation
Tie visibility work to real traffic, segment an OEM footprint into projects, check how fresh a client's data is, and generate grounded recommendations for a weak benchmark metric.
sync_ai_referralsPOST /v1/attribution/syncscope: analyzePull AI-referred sessions from Google Analytics 4.
get_ai_referral_summaryGET /v1/attribution/summaryBefore-and-after AI referral traffic around a pivot date.
list_projectsGET /v1/projectsscope: projects:readOEM only — list projects under the calling partner token.
create_projectPOST /v1/projectsscope: projects:writeOEM only — create a project.
assign_company_to_projectPOST /v1/projects/assignscope: projects:writeOEM only — map a company into one of the partner's projects.
resolve_companyGET /v1/company/resolvescope: readResolve a company visible to this token by url, host, brand name or id.
get_workflow_statusGET /v1/workflow/statusscope: readFreshness snapshot for a client, with a green/amber/red staleness verdict.
generate_benchmark_ideasPOST /v1/visibility/ideasGrounded recommendations for a weak benchmark metric.
8. Commerce — product / SKU visibility
Classic AI visibility answers "do the engines know this brand?". Commerce answers the harder retail question: for each individual product, does ChatGPT / Gemini / Perplexity mention it, does it actually recommend it, where does it place it in a list, and which competitor products get named instead. The flow is: sync a catalog once (Shopify, WooCommerce, a Google Merchant / RSS feed, CSV, or a raw products[] payload), then scan on a schedule and read the rollup. Scans deliberately score a ROTATING, priority-weighted sample of the catalog rather than every SKU every cycle — thousands of engine calls per cycle would be unaffordable and the answers barely move day to day. High-priority SKUs are revisited often, the long tail is covered less frequently, so seeing fewer data points for a tail SKU is normal and not an error to retry around. Driving commerce headlessly over MCP / REST requires the Enterprise plan or an OEM agreement with commerce access switched on (in-app SKU monitoring is available on Pro and Agency). Unentitled calls return 403 plan_required; an agreed monthly SKU-check ceiling returns 429 commerce_cap_reached.
sync_product_catalogPOST /v1/commerce/catalog/syncscope: analyzeImport or refresh a product catalog so its SKUs can be monitored.
list_productsGET /v1/commerce/productsscope: readList monitored SKUs, highest priority first, with their last scan result.
scan_product_visibilityPOST /v1/commerce/scanscope: analyzeScore this cycle’s rotating SKU sample across the answer engines.
get_product_visibilityGET /v1/commerce/visibilityscope: readCommerce rollup + the invisible-SKU work queue.
10. Work log, go-live dates, connect links & new pages
Read and record the work: what was found and when it went live, Visibility recommendations, client connect links, and publishing new pages one at a time.
get_work_logGET /v1/work/logEach finding with its status, work rounds, went-live dates and the 14-day measurement wait.
get_reading_scheduleGET /v1/readings/scheduleWhen AI-answer readings were last taken and the next is due.
get_connect_link_statusGET /v1/connect-linksStatus of client connect links.
record_went_live_datePOST /v1/work/went-livescope: work:writeRecord the date changes went live.
list_visibility_recommendationsGET /v1/visibility/recommendationsRecommended next changes from stored readings, each with a key.
send_recommendation_to_opportunitiesPOST /v1/visibility/recommendations/sendscope: work:writeSend one recommendation to Opportunities.
send_client_connect_linkPOST /v1/connect-linksscope: connect_links:sendEmail the client a single-use 14-day connect link.
publish_new_pagePOST /v1/pages/publishscope: pages:publishPublish ONE approved new page to the connected website.
unpublish_new_pagePOST /v1/pages/unpublishscope: pages:publishUndo: take an app-published page off the website.
Quick start (REST)
Authentication is a bearer token on every request. The typical audit flow is discover → analyze → poll → read.
# 1. Enumerate the pages on a site
curl -X POST "https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/api/v1/discovery" \
-H "Authorization: Bearer $AGENTICSEO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
# 2. Queue an analysis over the pages you care about
curl -X POST "https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/api/v1/reports" \
-H "Authorization: Bearer $AGENTICSEO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","pages":["/","/pricing","/product"]}'
# 3. Poll the job, then read the finished report
curl "https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/api/v1/jobs/JOB_ID" -H "Authorization: Bearer $AGENTICSEO_TOKEN"
curl "https://hbzbbsodddymrhmreqkd.supabase.co/functions/v1/api/v1/reports/REPORT_ID" -H "Authorization: Bearer $AGENTICSEO_TOKEN"Scopes
Tokens are least-privilege: read-only by default, with write and spend capability granted per scope.
read— All GET endpoints (list_reports, get_report, get_visibility_scores, list_prompts, get_prompt_history, get_ai_crawler_access, list_publish_targets, get_llms_txt, get_gsc_performance, list_gsc_properties, list_products, get_product_visibility).analyze— Write / enqueue endpoints (analyze_site, analyze_ai_visibility, enable_visibility_monitoring, sync_product_catalog, scan_product_visibility).faq:draft— draft_faqs_for_gaps · POST /v1/faqs/draft.faq:publish— publish_faq_to_target · POST /v1/faqs/publish · resolve_gaps · POST /v1/gaps/resolve.competitors:write— add_competitors · remove_competitors · discover_competitors (persist=true). GET list_competitors and preview discover_competitors do NOT require this scope.gap_pages:read— list_gap_pages · get_gap_page (MCP) · GET /v1/gap-pages · GET /v1/gap-pages/{id_or_slug}.gap_pages:publish— publish_gap_pages · unpublish_gap_page (MCP) · POST /v1/gap-pages/publish · POST /v1/gap-pages/unpublish.work:write— record_went_live_date · send_recommendation_to_opportunities · POST /v1/work/went-live · POST /v1/visibility/recommendations/send.connect_links:send— send_client_connect_link · POST /v1/connect-links.pages:publish— publish_new_page · unpublish_new_page · POST /v1/pages/publish · POST /v1/pages/unpublish.commerce (account entitlement, not a token scope)— Headless product / SKU visibility: sync_product_catalog · scan_product_visibility · list_products · get_product_visibility, over both transports.
Getting a token
Tokens are issued by Traction Gap Partners; there is no self-serve key page. Email support@tractiongappartners.com with your company, the websites or brands the token should see, whether you need MCP, REST, or both, the scopes you need, and the technical owner of the integration. Tokens are scoped to your account and its clients, rate-limited per hour, and every call is attributed in the audit log. Headless commerce (product/SKU) functions require an Enterprise or OEM entitlement.
Programmatic access is available on Enterprise and OEM agreements. See pricing or write to info@tractiongappartners.com.
Quickstart you can send to a developer
The public /docs/quickstart page needs no sign-in. It covers both endpoints, the rule that the key stays on the server, every supported function with its permission, the audit sequence, and a paste-ready brief for an AI coding engine. A Word version downloads from the page.
Full reference
The complete integrator reference — parameter schemas, response bodies, MCP system prompt, calling flows, error envelope, rate limits, credit metering, and a downloadable Word version — lives at /docs/api. It is behind sign-in because it covers token handling and account-specific detail; ask support for access alongside your token request.
Related
- AI agents for SEO — how autonomous agents run the audit-and-fix loop.
- Free llms.txt generator — no token required.
- Security — tenant isolation, secret handling, publishing safety.
