Sitearc

MCP tool reference

Every tool the Sitearc MCP server registers, grouped by job. The page is generated from the server's own tool list.

Tools
130
Only read
61
May change or spend
69
Endpoint
app.sitearc.ai/mcp
  • No tool can approve a proposal or a preview.
  • A read-only API key sees only the 61 tools marked Reads.
  • Credits are billing v2 figures. One credit is $0.001.

How to connect your agentWhat your agent can do

Sites and the connection 9

Who is connected, which sites it reaches, and where to start a session.

7 only read, 2 may change something or spend. None of them spends credits.

  • whoami

    Reads

    Confirms the connected Sitearc account, server mode, token scopes, and current credit balance when the user asks to check their account or connection. Uses no credits; does not call DataForSEO.

    No credits

  • list_projects

    Reads

    Lists all projects in the user's organization (with an account-scoped key, in every workspace of the account the user can open, each tagged with its workspaceId and workspaceName). Uses no credits; does not call DataForSEO. Use this whenever you need a projectId for another Sitearc tool. Returns an array of {id, name, domain, locationCode, languageCode}; pass the id value as projectId. locationCode/languageCode are the project's default market; tools fall back to them when a call omits location/language args.

    No credits

  • create_project

    May change or spend

    Create a new project in the user's organization. Uses no credits; does not call DataForSEO. Provide a domain, and optionally a name (derived from the domain when omitted) and default market (locationCode/languageCode; a languageCode requires a locationCode). Returns the created {id, name, domain, locationCode, languageCode, url}; pass the returned id as projectId to other Sitearc tools. Call list_projects first to avoid creating a duplicate.

    No credits

  • get_project_brief

    Reads

    The starting point for any session on a project. Returns the site, its linked repository and framework, which measurement sources are connected (Search Console and Analytics), the active learnings, the running experiments and their predictions, recent confounders, and the shared project context. Uses no credits; does not call DataForSEO. Read this before proposing anything: it is how every session works from the same knowledge instead of guessing.

    No credits

  • get_budget_status

    Reads

    Reports the DataForSEO spend limits that apply to this project, its own and any global ones, with spend so far in the current period, alongside the DataForSEO account's own remaining balance so the two can be reconciled. Uses no credits: the account balance comes from a free, unmetered endpoint. Limits cannot be raised from here; a hard limit blocks further calls until the period resets or a human changes it.

    No credits

  • list_connected_accounts

    Reads

    Lists the provider accounts this workspace has connected (Google Search Console, Google Analytics, GitHub installations, Vercel teams), each account's status, and which websites use it. Use it to see which Google identity or GitHub installation a website's data comes from before reading reports. Read-only; uses no credits; never returns credentials.

    No credits

  • list_connected_account_resources

    Reads

    Lists, one bounded page at a time, the Search Console properties, Analytics properties, GitHub repositories or Vercel projects one connected account can reach, with likely matches for a website's domain flagged as suggestions (never chosen for you). Workspace owners and admins only. Read-only; it does not bind anything.

    No credits

  • list_website_connections

    Reads

    Shows which Search Console property, Analytics property, GitHub repository and Vercel project one website is bound to, through which connected account, and whether that account needs reconnecting. Use it to know where a report's numbers will come from. Read-only; uses no credits.

    No credits

Search Console and Analytics 12

Read your own search and visitor data. These never spend credits.

12 only read. None of them spends credits.

  • get_search_console_performance

    Reads

    Query the connected Search Console property's Search Analytics: clicks, impressions, CTR, and average position by query/page/country/device/date. First-party data; use it for what already ranks, near-ranking queries, and pages with real demand. ctr is a 0-1 fraction; position is a 1-based average; dates are Pacific Time; the last ~3 days may be incomplete. Read-only; uses no credits.

    No credits

  • inspect_urls

    Reads

    Run Google Search Console's URL Inspection on up to 10 URLs of the connected property: index/coverage state, last crawl time, Google-selected vs declared canonical, and mobile/rich-results verdicts. Use it to answer 'is this page indexed? why not?'. Per-URL failures are reported inline. Read-only; uses no credits.

    No credits

  • get_search_opportunities

    Reads

    Join Search Console pages ranking in positions 4 to 20 with GA4 organic landing-page outcomes, then score matched opportunities by demand, business value, and reachability. Unmatched pages remain visible and unscored. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_organic_overview

    Reads

    Answer whether organic traffic is improving with top-line sessions, users, engagement, key events, transactions, revenue, an equal-length previous-period comparison, and a daily or weekly trend. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_organic_landing_pages

    Reads

    Read organic-search landing page sessions, engagement, key events, transactions, and revenue from the project's connected GA4 property. Defaults to the last 28 complete property days. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_page_performance

    Reads

    Read page views, users, engagement duration, and key events from the connected GA4 property. Organic Search is the default; set channel to all to include every channel. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_traffic_acquisition

    Reads

    Compare session acquisition by channel group, source/medium, or campaign, including sessions, users, engagement, key events, transactions, and revenue. Previous-period comparison is available for channel group; source/medium also reports attribution-quality diagnostics. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_key_events

    Reads

    Read active GA4 key events with counts and users by event or organic landing page. Previous-period comparison is available for the event breakdown. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_audience_breakdown

    Reads

    Read device, country, or new-versus-returning users, sessions, engagement, and key events. Previous-period comparison is available for device and new-versus-returning breakdowns. No demographic or user-level dimensions. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_ecommerce_performance

    Reads

    Read item views, add-to-cart units, purchases, and item revenue by item, or transactions and purchase revenue by landing page. Returns a detected, none, or unknown activity state; landing pages can be limited to those with transactions. Organic Search is the default. Read-only and uses no Sitearc credits.

    No credits

  • get_google_analytics_measurement_health

    Reads

    Diagnose the connected property's data streams, web measurement IDs, enhanced-measurement settings, key events, and custom definitions. Read-only and uses no Sitearc credits.

    No credits

Site health and crawling 8

Audit a site, read its issues, and fetch or crawl pages.

3 only read, 5 may change something or spend. 4 can spend credits.

  • run_site_audit

    May change or spend

    Start a site audit: crawls the site (robots.txt-aware, same-origin), checks every page for SEO issues (broken links, duplicate/missing titles and descriptions, redirect chains, orphan pages, canonical problems, thin content, and more), and optionally runs Lighthouse on a sample of pages. Runs in the background; poll get_audit_status, then read get_audit_issues. If the site blocks our crawler, pages are honestly flagged as blocked rather than misreported.

    17 credits

    Lighthouse run, per page per strategy.

    Only when it runs Lighthouse tests.

  • get_audit_status

    May change or spend

    Check the progress of a site audit (phase, pages crawled, Lighthouse progress). Free; reads Sitearc state and may reconcile a dead workflow by marking its audit failed. Omit auditId for the most recent audit.

    No credits

  • get_audit_issues

    Reads

    Read the prioritized issue report from a completed site audit. Every issue carries a how_to_fix with concrete remediation steps an agent can act on. Free; reads Sitearc state. Omit auditId for the most recent audit.

    No credits

  • get_audit_pages

    Reads

    List crawled pages from a site audit with per-page SEO data (status, title, description, word count, indexability, crawl depth, link counts). Free; reads Sitearc state. Omit auditId for the most recent audit.

    No credits

  • fetch_page

    May change or spend

    Fetches one URL: SSRF-guarded, manual redirects (the whole chain is returned), a 15s timeout. Raw HTML is capped at 200 KB; a larger page comes back truncated with htmlTruncated:true. The plain fetch is free; pass render:true for a JS-rendered page whose plain fetch returns an empty shell; a render spends credits.

    2 credits

    Page render, free on Free, up to 500 a month.

    Only when it renders the page.

  • extract_page

    May change or spend

    Fetches one URL and extracts what an SEO review reads: title, meta description, canonical, headings tree, readable body content (as markdown), links, images, JSON-LD/schema blocks, Open Graph tags, hreflang, and contact/chat/booking signals. The plain fetch is free; pass render:true for a JS-rendered page whose plain fetch returns an empty shell; a render spends credits.

    2 credits

    Page render, free on Free, up to 500 a month.

    Only when it renders the page.

  • discover_urls

    Reads

    Reads robots.txt and every sitemap, plus the home page's own navigation links, and returns the same-origin URLs found (deduped, capped by the plan's crawl page limit). Does not fetch or extract any page beyond the home page used for discovery, and never returns raw HTML; use fetch_page or extract_page on any URL this returns.

    No credits

  • crawl_site

    May change or spend

    Crawls a site breadth-first (robots.txt-aware, same-origin), bounded by the plan's page cap. Raw fetch is the default; a page whose HTML looks like an unrendered app shell (SPA) is re-fetched with headless Chrome, which spends credits per rendered page. Returns a summary and the crawled page ids; fetch a page's full extraction with extract_page, or its raw HTML with fetch_page.

    2 credits

    Page render, free on Free, up to 500 a month.

    Only for pages it has to render.

Rankings and local search 14

Track keyword positions, and check how a business shows up in local results.

2 only read, 12 may change something or spend. 9 can spend credits.

  • create_rank_tracker

    May change or spend

    Create a rank tracking configuration for a project. Creating an empty tracker uses no credits and starts no check, but daily, weekly, and monthly trackers will spend credits after keywords are added. The domain defaults to the project's domain; market defaults to the project's market; devices default to mobile, search depth to 10, and schedule to manual. Use estimate_rank_tracker_cost before adding keywords to a scheduled tracker or starting a live run. Call get_rank_tracker first to avoid duplicates.

    No credits

    Scheduled checks spend credits later.

  • get_rank_tracker

    Reads

    Read-only access to rank tracker configs and their latest results. With trackerId, returns config + latest snapshot per keyword, including trackingKeywordId for removals. Without it, lists all trackers in the project. Uses no credits. Use create_rank_tracker when no tracker exists; then use add_rank_tracking_keywords, remove_rank_tracking_keywords, estimate_rank_tracker_cost, or run_rank_tracker to manage it. lastCheckedAt shows position freshness.

    No credits

  • add_rank_tracking_keywords

    May change or spend

    Add keywords to an existing rank tracker. The mutation itself uses no credits and does not start a check or fetch metrics, but scheduled trackers will spend credits on future recurring checks. For a scheduled tracker, call estimate_rank_tracker_cost with additionalKeywordCount, show the recurring estimate and live-fallback caveat to the user, and pass the approved nominal per-check estimate as maxEstimatedScheduledCheckCredits. This approval is not a runtime spending cap: rejected, failed, or timed-out queued tasks may use additional separately billed live fallback. Existing and repeated keywords are skipped, and added is the number actually inserted.

    No credits

    Scheduled checks spend credits later.

  • remove_rank_tracking_keywords

    May change or spend

    Stop tracking keywords by their trackingKeywordId. Uses no credits and preserves historical snapshots. Missing, stale, foreign, and repeated IDs are ignored; removed is the number actually deleted from this tracker.

    No credits

  • estimate_rank_tracker_cost

    Reads

    Estimate rank tracker cost without spending credits or starting a check. The live estimate covers one explicit run_rank_tracker check. For a scheduled tracker, the response also includes nominal queued per-check and approximate monthly recurring cost. Pass additionalKeywordCount before adding keywords to project the post-add cost. Scheduled estimates are not runtime caps; rejected, failed, or timed-out queued tasks may use additional separately billed live fallback.

    No credits

  • run_rank_tracker

    May change or spend

    Start an explicit live rank check for every keyword and configured device. This spends credits: call estimate_rank_tracker_cost, show the estimate to the user, and pass the approved credit amount as maxCostCredits. A fresh estimate above that ceiling is rejected. Hosted accounts require a paid plan. If a run is already in progress, its blocking run ID is reported without starting or charging another check. The schedule is unchanged.

    2 credits

    Rank check, per keyword, device and check, queued at depth 10. 20 at depth 100. Live checks 7 to 67.

    Within a credit limit you approve.

  • get_local_rank_grid

    May change or spend

    Runs one Google Maps search per point of a square grid around a coordinate and reports where the target business ranks at each point, plus each point's result count and #1 business, revealing how far its Maps visibility reaches. Cost scales with the grid: gridSize squared SERP calls (3x3 = 9, the sensible default; 5x5 = 25). Charges credits per grid point.

    63 credits

    Local rank grid, 3x3 grid. About 175 for 5x5.

  • search_local_businesses

    May change or spend

    Searches local business listings near a coordinate, with optional rating, review-count, and claimed-status filters. Use this to find local business candidates, nearby competitors, or unclaimed listings; it does not run Maps rank checks or Q&A. Returns a compact row per business (identity, contact, rating, claim status); use get_business_profile for one business's full profile. Charges credits.

    Spends credits

  • get_local_serp_results

    May change or spend

    Fetches one Google Maps or Local Finder SERP near a coordinate. Returns trimmed provider rows (identity, rank, rating, categories, hours) with rank fields intact; callers decide how to match a target business. Charges credits.

    Spends credits

  • get_business_profile

    May change or spend

    Reads one Google Business Profile: categories, rating and review count, rating breakdown, address, phone, website, claimed status, opening hours, and photo count. Use it to audit your own profile or to compare a competitor's. Charges credits.

    Spends credits

  • get_business_reviews

    May change or spend

    Collects Google reviews for a business, with rating, author, text, and whether the owner replied. Use it for review-gap analysis against competitors and to spot unanswered reviews. Usually completes within this call; if the queued job is still running you get status 'processing' plus a taskId; call again with that taskId in 30-60 seconds to collect the result at no extra cost. Charges credits.

    Spends credits

  • get_business_updates

    May change or spend

    Collects the posts (updates, offers, events) published on a Google Business Profile. Use it to check posting activity and recency on your profile or a competitor's. Usually completes within this call; a 'processing' response returns a taskId to call back with in 30-60 seconds at no extra cost. Charges credits.

    Spends credits

  • get_google_business_questions

    May change or spend

    Fetches Google Business Profile questions and answers for one business (by businessName, cid, or placeId) near a coordinate. Run this only when Q&A evidence is needed. Charges credits.

    Spends credits

  • list_business_categories

    May change or spend

    Lists the Google Business categories DataForSEO recognizes, ranked by how many businesses use them. Use it to find valid category slugs for search_local_businesses (e.g. 'pizza_restaurant'). The full list is cached for 7 days, so most calls cost nothing; a call that misses the cache fetches it from DataForSEO and spends this workspace's credits.

    Spends credits

    Usually free, because the list is cached for 7 days.

Research 13

Keywords, search results, competitors, backlinks and AI visibility. New lookups spend credits; saved keywords are free.

1 only read, 12 may change something or spend. 11 can spend credits.

  • research_keywords

    May change or spend

    Research keyword data (search volume, difficulty, CPC, related ideas) for 1-5 seed keywords in one call. Charges credits per seed. Returns per-seed results; a single bad seed won't fail the batch.

    80 credits

    Keyword search, per call. About 256 in auto mode (3 calls).

  • get_keyword_metrics

    May change or spend

    Hydrate up to 700 known keywords with search volume, keyword difficulty (KD), search intent, CPC, competition, and monthly trends in a single call. Use it to score candidate or known keywords, including Search Console striking-distance queries, by real demand and ranking difficulty. For countries served from Google Ads data (e.g. Iceland), KD and intent are null. Charges credits.

    Spends credits

  • list_saved_keywords

    Reads

    Lists keywords saved to a project (with cached metrics like search volume, difficulty, CPC, and tags if available). Uses no credits; reads from Sitearc's database, no DataForSEO call. Use tag filters when the user asks for a saved segment; multiple tags match ANY tag.

    No credits

  • save_keywords

    May change or spend

    Save keywords to a project's saved-keywords list. Uses no credits; does not call DataForSEO. Idempotent: re-saving an existing keyword is a no-op. If tags are provided, missing tags may be created. By default tags are appended; set tagMode=replace to remove existing tags from these saved keywords before applying the provided tags, which is useful for reorganizing keywords into page/topic clusters. Ask the user for confirmation before applying or replacing tags broadly.

    No credits

  • get_serp_results

    May change or spend

    Fetch live Google organic search results for 1-10 keywords. Use this to inspect who ranks for a query, verify competitors, compare SERPs across keywords, or gather source URLs before content planning. Charges credits per keyword. Does not save results to Sitearc. Per-keyword errors don't fail the batch.

    7 credits

    SERP analysis, at depth 10. About 67 at depth 100.

    Per keyword.

  • find_serp_competitors

    May change or spend

    Compares domains competing in Google results for a supplied keyword set in a country-level DataForSEO Labs market. Accepts location/language codes; not radius-based local SEO. Charges credits.

    128 credits

    Competitor research, estimate.

  • get_ranked_keywords

    May change or spend

    Returns market-specific keyword, URL, rank, search volume, CPC, intent, and traffic rows for a domain or page. Accepts country-level DataForSEO Labs location/language codes. Use this for strategy evidence; use get_domain_overview for aggregate domain footprint. Charges credits.

    Spends credits

  • get_domain_overview

    May change or spend

    Returns a high-level view of a domain's organic footprint: estimated organic traffic, organic keyword count, backlinks, and referring domains. Use this first for domain research; for the detailed ranked-keyword list, call get_domain_keyword_suggestions next. Free from the stored snapshot for this project's own domain; charged (cached 12 hours) with fresh true, or for any other domain.

    121 credits

    Domain overview.

    Free for your own site's stored snapshot.

  • get_domain_keyword_suggestions

    May change or spend

    Returns the organic keywords a domain ranks for, including position and available metrics. Use after get_domain_overview when you want the detailed keyword opportunity list for a competitor or reference domain. Charges credits. Cached for 12 hours.

    Spends credits

  • get_llm_visibility

    May change or spend

    Returns how often a domain is mentioned in AI assistant answers, broken down by platform, alongside the AI search volume behind those answers. Costs DataForSEO credits and counts against this project's spend budget. These are platform-wide totals for the domain, not per-page figures; do not attribute them to any single URL.

    2,086 credits

    AI visibility lookup, measured. Up to about 3,500.

  • get_llm_prompts

    May change or spend

    Returns the questions an AI assistant was answering when it cited this domain, with how often each is asked. Costs DataForSEO credits and counts against this project's spend budget. Use this to find what people actually ask around a topic before deciding what an EXISTING page should say; not to generate a page per question, which is scaled content abuse and is contradicted by the evidence that cited pages skew old and established.

    100 credits

    Prompt explorer, for 4 models, estimate.

Feedback and forms 11

Open client reviews, read their comments, and set up and test forms.

5 only read, 6 may change something or spend. None of them spends credits.

  • create_review

    May change or spend

    Opens a shareable feedback session over one or more pages of a site, and returns its share link. Requires an owner or member key: the share token is a bearer credential to the session, so a read-scoped key is refused before anything is created rather than handed a link it should not hold. Pages are captured lazily unless pagePaths pre-requests them, up to the plan's page cap.

    No credits

  • list_review_comments

    Reads

    Lists every comment on a review session, both what a reviewer left publicly and the team's own internal notes, for triage. Uses no credits. Never includes the pin's element snippet or the session's share token; use create_review's response or the dashboard for a shareable link. sessionId is a review id (default-<projectId> for the website's own review), not a live preview's renderer session id.

    No credits

  • resolve_review_comment

    May change or spend

    Marks one feedback comment resolved. Requires an owner or member key; a read-scoped key is refused. Pass spawnRecommendation to also queue the comment as a recommendation; the response carries the queue item's id, or null when none was created.

    No credits

  • list_forms

    Reads

    List forms for an authorized site, including their status and allowed origin. Uses no SEO credits.

    No credits

  • create_form

    May change or spend

    Create an endpoint for an existing website form. Omit fields to accept arbitrary bounded text fields; field definitions are optional validation for legacy forms. Returns the public POST URL. Does not edit or deploy the website, configure notifications, or prove delivery. Check list_forms first to avoid duplicates.

    No credits

  • get_form

    Reads

    Read the public submission endpoint, status, retention and optional field validation. This is configuration evidence, not a successful submission or notification test.

    No credits

  • submit_test_form

    May change or spend

    Save a clearly labeled test response using the form's field validation. This queues real test notifications to configured destinations, so use only when the user has authorized a notification test. Use synthetic contents. Reuse the same idempotency key when retrying. Tests backend validation and storage only: it does not visit the website or verify installation, browser origin behavior, or final email arrival. Use verify_form_receipt for saved and notification states.

    No credits

  • verify_form_receipt

    Reads

    Verify a real receipt returned by the public POST endpoint. Reports saved response and each queued notification's current state without exposing response contents. Provider acceptance does not prove delivery to a person's inbox. Poll pending deliveries after the background job runs; never claim success from configuration alone.

    No credits

  • list_form_destinations

    Reads

    Read configured email/webhook destinations and deployment capabilities. Signing secrets are never returned. Configuration is not proof of delivery.

    No credits

  • create_form_destination

    May change or spend

    Configure where future form responses will be sent. Only add a recipient explicitly authorized by the user. Hosted email is restricted to the verified account email. Webhooks require HTTPS and configured encryption. A webhook signing secret is returned once: save it in the authorized receiver's secret store, never commit or log it. List destinations first to avoid duplicates. Does not send a test or configure the receiving application.

    No credits

  • disable_form_destination

    May change or spend

    Stop future queued delivery to this destination. Notifications already sending or sent cannot be recalled. Saved responses remain in the inbox.

    No credits

Work queue and GitHub 15

Turn ideas into proposals, open pull requests and submit them for your review.

7 only read, 8 may change something or spend. None of them spends credits.

  • list_recommendations

    Reads

    Lists this site's work queue, including feedback, manual work and detector recommendations. Uses no credits. Feedback and manual tasks may have no prediction, severity or category. Follow nextCursor until null, keeping the same filters; a filtered page can be empty while more rows remain. Human review is still required for consequential changes.

    No credits

  • get_recommendation

    Reads

    Returns one recommendation in full: its evidence with source and tier, the concrete change it proposes, its prediction, its cost in credits, and the proposal it created (if any) once accepted. Uses no credits.

    No credits

  • update_recommendation_status

    May change or spend

    Accepts or dismisses a recommendation. Accepting a title_meta or internal_linking recommendation creates a loop proposal, pending review; it does not approve or ship anything. Dismissing always needs a reason: a recommendation dropped for no recorded reason is a decision nobody can account for later.

    No credits

  • create_proposal

    May change or spend

    Records a proposed change for a human to approve or reject. Uses no credits. It must carry the concrete edit (changeSpec), at least one evidence item with its source and tier, and a prediction naming the metric, the direction (improve or decline) and the window in days. Creating a proposal ships nothing: a person approves it in the dashboard, then you open the pull request. Only title_meta and internal_linking are accepted today.

    No credits

  • list_proposals

    Reads

    Lists this project's proposals and their decisions. Uses no credits. Approval happens in the dashboard, by a person; there is no tool that approves a proposal. A proposal in changes_requested carries the person's note in decisionNote; it will never ship, so raise a new proposal that addresses the note, passing its id as create_proposal's supersedesProposalId so the dashboard replaces it.

    No credits

  • get_proposal

    Reads

    Returns one proposal in full: its evidence with tiers, its prediction, its decision, and the concrete edit it proposes. Uses no credits. Read this back to see exactly what a human approved before you open the pull request.

    No credits

  • claim_work

    May change or spend

    Claim accepted or in-progress queue work for a fixed 5-minute lease before acting on it. Use one stable, unique UUID per agent worker as workerId. This only coordinates work; it does not implement, approve, ship, or publish any change. Renew before expiresAt and stop if renewal fails.

    No credits

  • renew_work_claim

    May change or spend

    Renew the current claim for another fixed 5 minutes. Use the same stable workerId and the latest leaseToken from claim_work or renew_work_claim. Renew before expiry. If renewal fails, stop working because another worker may own the item or the item is no longer eligible.

    No credits

  • release_work_claim

    May change or spend

    Release a live work claim when the worker is done or backing off. Use the same stable workerId and latest leaseToken. Releasing a claim does not mark the work implemented, approved, shipped, or published.

    No credits

  • github_open_pull_request

    May change or spend

    Opens a pull request on the project's linked GitHub repository through the connected GitHub App: one branch, one commit with every file supplied, labelled sitearc and recommendation. Uses no credits. Requires link_repo to have run and the GitHub App to be installed on the project. It merges nothing and deploys nothing; a human reviews and merges. Supply the complete new contents of each file, not a diff.

    No credits

  • resolve_preview_url

    Reads

    Resolves the preview deployment URL for a pull request, from GitHub's deployments API. Uses no credits. Read-only: this application has no write access to any site repository; you open the pull request yourself. Audit the returned URL with the launch-qa skill, then pass the verdict to ship_experiment. If the state is pending, call this again; it does not wait.

    No credits

  • submit_work_for_review

    May change or spend

    Submit structured work for an accepted or in-progress recommendation after claim_work succeeds. Include a fresh requestId UUID for each new revision; retry with the same requestId only for the exact same artifact. The service keeps up to 50 revisions and a 128 KiB artifact limit. This queues work for human review only: it does not approve, verify, deploy, publish, or ship anything. For website content work, read the site's content docs, positioning, brand, and compliance context first. When documentBinding names stored bytes, you MUST also send previewUrl: the public HTTPS address where the artifact you wrote can be read. Sitearc does not show article bodies, so a person can only review what that link opens, and a binding without one is refused.

    No credits

  • get_work_review

    Reads

    Read submitted work revisions and human review decisions for one recommendation. Uses no credits and does not approve, verify, deploy, publish, or ship anything.

    No credits

  • verify_work_revision

    May change or spend

    Fetch and save GitHub provider evidence for the current human-approved work revision. It records the observed PR head, merge state, merge commit, deployment state and preview match. It does not approve, merge, deploy, publish, or ship anything; use the returned evidence before ship_experiment.

    No credits

  • list_work_verifications

    Reads

    Read saved provider checks for one approved work revision. Uses no credits and does not contact GitHub, approve, merge, deploy, publish, or ship anything.

    No credits

Content 13

Briefs and drafts your agent writes, sent to a person before anything is published.

4 only read, 9 may change something or spend. None of them spends credits.

  • create_content_brief

    May change or spend

    Adds one keyword opportunity to this project's content backlog. A brief is a proposal, not a commitment: nothing is written or published until a person approves the brief, and there is no tool that approves one. Pass the work item you are answering as recommendationId so the brief appears on that work item, where a person approves it. A title or target keyword that already exists in this project is refused, compared ignoring case and extra spacing. Search volume and difficulty are required and must come from keyword research, not from an estimate.

    No credits

  • list_content_backlog

    Reads

    Lists this project's content briefs: keyword opportunities waiting on a person to approve or reject. Uses no credits. Each brief names its target keyword, its measured search volume and difficulty, its priority, and whether a person has decided on it yet. A brief with no approval stamp has not been approved, whatever else it says.

    No credits

  • get_content_document

    Reads

    Returns one content document in full: its body, its metadata, the state it is in, the review notes submitted with it, every earlier version of it, and every round of changes a reviewer has asked for. Uses no credits. A document with no verification result has not been verified; a null result is not a pass.

    No credits

  • start_content_draft

    May change or spend

    Creates or reopens a draft for a brief already approved by a person. Does not call a model, spend Sitearc credits, or send an email. Use revise_content_document to write the content and declare its business claims, then submit_content_for_approval after review. Existing content is returned unchanged. Sitearc does not write the draft: you, the agent, write it yourself, following the sitearc-write-content skill. This tool cannot approve or publish content.

    No credits

  • revise_content_document

    May change or spend

    Rewrites a draft as a new version. It is also how you write the body after start_content_draft opens an empty draft (see the sitearc-write-content skill), and how you make a mechanical fix you found while reviewing it: a link that goes nowhere, a word the compliance profile bans, a meta description over its length, a missing heading. Only a document in needs_review can be revised, and at least one field has to actually change. It never approves and never publishes: the new version lands back in needs_review with your note on it, the verifier runs over it again, and a person still reads it before anything ships. The version you rewrote stays readable beside it.

    No credits

  • request_content_changes

    May change or spend

    Sends a document that is awaiting approval back to the writer, recording a numbered round of changes with your notes on it. This is the only backward move the content workflow allows, and it is the opposite of approving: the document leaves the approval queue and goes back to needs_review. Only a document in needs_approval can be sent back.

    No credits

  • submit_content_for_approval

    May change or spend

    Puts a draft in front of a person for approval. It does not approve anything and it does not publish anything: a person makes that decision in the dashboard, and there is no tool that makes it for them. Refused unless the draft is the current version of its brief, its verification pass came back clean, and you have written your own review notes. A draft that has never been verified is refused: a missing result is not a pass.

    No credits

  • publish_content

    May change or spend

    Its WordPress path requires the WordPress plugin (not released).

    Publishes a draft a person has already approved, and never publishes it live. On the connected WordPress site it creates a DRAFT post, with the SEO title, description and focus keyword written through whichever SEO plugin the site runs, and, on a site running the Sitearc Connect plugin, the document id recorded in post meta so the post can be traced back to what wrote it (you are told when the site did not store it); the customer presses publish themselves. On a linked repository it opens a pull request adding one markdown file, for a person to review and merge. A generated draft carries no lead image: the engine writes alt text but has no image URL to pair it with, so an image reaches a piece only when someone attaches one while reviewing it, and a piece that has one is published with that image and its alt text. A draft whose image has no alt text is refused and nothing is sent. A document that has already been published is refused.

    No credits

  • schedule_content_publication

    May change or spend

    Its WordPress path requires the WordPress plugin (not released).

    Proposes that an approved artifact goes to a destination at an instant. PROPOSING IS NOT APPROVING: the intent lands in a state that waits for a person, nothing is sent, and no change to this record's artifact, destination, instant or approver can be made from here. An agent can propose a schedule and can cancel one it proposed; approving, cancelling a person's approved publication, and changing a time are the person's, behind an authenticated dashboard session with a write role. Publishing live to WordPress is reached only by carrying out an approval a person recorded, never by calling this.

    No credits

  • get_content_publication

    Reads

    Reads one publication's state: whether it is waiting for a person, approved and scheduled, going out, published, not sent, unconfirmed, or cancelled, together with the destination, the instant, who approved it and what the adapter reported. A publication whose state is unconfirmed is never retried blindly; it is reconciled against the destination first. Reads only.

    No credits

  • list_content_publications

    Reads

    Lists this website's scheduled publications, newest first, with their state, destination, due instant and outcome. Reads only. Use it to find a publication that is waiting for a person, one that failed before dispatch, or one whose remote outcome is still unconfirmed.

    No credits

  • cancel_content_publication

    May change or spend

    Cancels a publication that is waiting for approval, one an agent proposed, or one that failed before anything was sent. A publication a person approved can only be withdrawn by a person. A publication that is being dispatched right now is refused rather than raced, and one whose remote outcome is unconfirmed is refused until it is reconciled, because cancelling it would hide a real outcome. Nothing is sent by this call.

    No credits

  • request_content_publication_retry

    May change or spend

    Sends a publication that failed BEFORE anything left this server back to its approved, scheduled state, so the next scheduler tick tries it again. Only a failure that provably happened before dispatch can be retried; a publication whose remote outcome is unconfirmed is reconciled instead, and retrying it is refused, because that could write twice. The artifact, destination, instant and approval are untouched: this changes nothing a person decided, and it cannot be used to change them. Refused once the attempt limit is reached; a person decides what happens after that.

    No credits

Experiments and learnings 9

Record what shipped, measure it against holdout pages and keep what was learned.

5 only read, 4 may change something or spend. None of them spends credits.

  • ship_experiment

    May change or spend

    Records an approved proposal as a shipped experiment, and collects its pre-ship baseline from Search Console and Analytics. Uses no credits. This tool cannot approve anything: it refuses any proposal that is not already approved with a recorded decider, and there is no tool that approves one; a person does that in the dashboard. Supply the URL of a pull request you already opened, the exact approved work revision and artifact hash, the audited preview verdict, and the cohort URLs that changed. The server derives merge and deployment evidence from saved GitHub provider checks; a failed audit is refused, and missing applied evidence is refused.

    No credits

  • list_experiments

    Reads

    Lists this project's shipped experiments, running and concluded, with the measurement window each is being judged over. Uses no credits.

    No credits

  • get_experiment

    Reads

    Returns one shipped experiment in full: its pull request, its cohort and holdout, its pre-ship baseline window, the preview-audit verdict recorded when it shipped, and its conclusion if it has one. Uses no credits.

    No credits

  • get_measurements

    Reads

    Returns every measurement slice collected for one experiment, split into the pre-ship baseline and the post-ship treatment window, with each slice's window, source and tier. Uses no credits. Read-only: this shows you the before a conclusion reasons about, and it cannot conclude anything; conclude_experiment computes the verdict.

    No credits

  • conclude_experiment

    May change or spend

    Concludes a running experiment by evaluating the measurements against the prediction. Uses no credits. You do not supply the outcome: this tool computes it from the cohort, the holdout, the baseline, and any unresolved confounder overlapping the window, and returns inconclusive whenever the standard cannot be met. inconclusive is a real result; it means nothing was learned, which is worth knowing and is not a failure.

    No credits

  • record_confounder

    May change or spend

    Logs something that could contaminate a measurement window; an algorithm update, a competitor's campaign, seasonality, an incident. Uses no credits. Set endedAt if it is over; leave it unset if it is still running. Marking a confounder as no longer contaminating is a judgement a person records in the dashboard, not something this tool can do; an unresolved confounder overlapping an experiment's window forces that experiment to inconclusive, and that is the point.

    No credits

  • list_confounders

    Reads

    Lists the confounders that could contaminate this project's measurement windows, resolved and unresolved, with the interval each one covers. Uses no credits. Read-only: resolving a confounder is a judgement a person records in the dashboard, so this tool shows you why a conclusion is blocked without being able to unblock it.

    No credits

  • record_learning

    May change or spend

    Records something learned, for every future session to read. Uses no credits. You do not choose the tier. A learning linked to a concluded experiment is tier 1 or 2; whichever the measurements behind that conclusion earned. Everything else is tier 4: a hypothesis, stored and shown as one. Tiers are never raised by repetition or confidence.

    No credits

  • search_learnings

    Reads

    Reads the brain: this project's active learnings and the cross-project ones recorded against every site. Uses no credits. Each line leads with its tier, and a tier-4 line is marked HYPOTHESIS; treat those as untested guesses, not findings, however many times they appear. Superseded and retracted learnings are kept but not returned here.

    No credits

Brand kit and project memory 9

Read the brand kit and shared context, and propose changes to them.

6 only read, 3 may change something or spend. None of them spends credits.

  • get_brand_profile

    Reads

    Returns the current brand document for a project: identity, vocabulary, colors and type by role, and the rules copy has to follow, with the version number those rules belong to. Pass that version back to propose_brand_patch. A project that has not set one up has no document, and this says so rather than returning an empty one. Uses no credits.

    No credits

  • get_compliance_profile

    Reads

    Returns a project's compliance policy: banned words, banned claims, claim words that need hedging, and how names must be styled. Pass text to have it checked and get the violations back. A project with no policy is reported as having none: that is not the same as passing, and copy for it still needs a human read. Uses no credits.

    No credits

  • list_brand_assets

    Reads

    Lists the logo, imagery, font and document files uploaded to a website's brand library, with the stable asset id and the exact asset revision that can be fetched. Archived files are excluded unless you ask for them. Use the assetRevisionId with authorize_brand_asset to get a short-lived download or preview URL. Read-only, any member role may call it, and it uses no credits.

    No credits

  • authorize_brand_asset

    Reads

    Returns a short-lived, website-scoped URL for one exact brand asset revision, for download or for an in-page preview. The URL is not the asset's identity and it expires in minutes, so fetch it when you need it instead of storing it. A revision belonging to another website is reported as not found. Read-only, any member role may call it, and it uses no credits.

    No credits

  • propose_brand_patch

    May change or spend

    Files a proposed change to the brand document for a person to review. It is validated against the schema and stored as pending; it does NOT change the brand document, and there is no way to make it. A person applies or discards it in the project's brand page. Refused if the base version you name is not the current one, and refused if the same summary is already pending against the same version: a proposal a reviewer cannot tell from one already in their tray is not filed twice. Uses no credits.

    No credits

  • get_project_context

    Reads

    Reads a project's shared memory: business overview, current goal, positioning, writing preferences, custom sections, competitors, key pages, and the recent research log. Uses no credits. Call this before SEO work to ground it in what the user already told Sitearc, and check the research log before re-buying research. Sections listed as missing are the ones worth filling with update_project_context.

    No credits

  • update_project_context

    May change or spend

    Writes to a project's shared memory so the app and other agents see it. Uses no credits. Send a list of patch ops; sections are prose (~4,000 chars max), competitors and key pages are curated shortlists (100 max each), and appendResearchLog records what research was bought so nobody re-buys it. Confirm facts with the user before storing them.

    No credits

  • propose_context_change

    May change or spend

    Files a proposed change to a website's brand context for a person to review. It is validated against the context vocabulary, checked against the exact revision you name, and stored as pending; it does NOT change accepted state, and there is no argument that would make it. A person accepts or rejects it on the project's brand page. Refused for a viewer role, refused for an agent actor trying to accept rather than propose, and refused if the base revision has moved on. Uses no credits.

    No credits

  • get_accepted_context

    Reads

    Returns the accepted context for a project: the revision a person accepted, when, by whom, the brand document version it pins, the entities, sections and assets it pins at exact revisions, and which fields are still missing. A website with nothing accepted says so rather than returning an empty context. Use this before proposing a change; propose_context_change takes the accepted revision it returns. Read-only, any member role may call it, and it uses no credits.

    No credits

Setting up new sites 11

Plan a new Astro site or Google measurement. A person approves each plan first.

7 only read, 4 may change something or spend. None of them spends credits.

  • discover_setup_source

    Reads

    Read the connected GitHub account's actual new-repository capability or discover recent immutable revisions of a selected existing repository. Uses only this authorized workspace; no provider writes.

    No credits

  • list_setup_runs

    Reads

    Find the latest 20 durable setup runs in this authorized workspace before planning another setup. Reuse an existing run ID for retries. Managers only, no credentials.

    No credits

  • plan_astro_setup

    May change or spend

    Prepare a durable exact Astro/GitHub/Vercel setup plan using connected accounts in this workspace. For a new private repository use sourceMode=new, repositoryId=0 and commitSha=40 zeroes. Existing repositories require a discovered immutable revision. Does not create external resources. Return approvalUrl to the human; only an authenticated manager can approve in Sitearc. Agents cannot approve their own plans.

    No credits

  • get_setup_run

    Reads

    Read a tenant-scoped Astro setup, its separate provider/public verification status and human approval URL. Does not execute or approve.

    No credits

  • execute_setup_run

    May change or spend

    Execute or reconcile the SAME already human-approved durable setup. No approval input is accepted. Expired/unapproved/foreign runs fail closed. Resume by repeating the same run ID; never create a replacement plan to retry an ambiguous provider operation.

    No credits

  • discover_measurement_resources

    Reads

    List existing Google Analytics accounts, properties or web streams for explicitly selected shared Google accounts in the authorized workspace. Optional measurement consent + workspace authorization is required; no account creation or tokens returned. Page responses preserve Google's nextPageToken; this bounded initial page does not silently choose a resource.

    No credits

  • list_measurement_runs

    Reads

    Find the latest 10 measurement runs for an authorized website before planning another. Resume the same ID for uncertain operations; no provider call or credentials.

    No credits

  • plan_google_measurement

    May change or spend

    Prepare an exact human-approved GA4 property/web-stream reuse or creation plan under an EXISTING Analytics account, META ownership verification and GSC sitemap submission. Website origin comes from the selected Sitearc website. No Analytics account creation, terms acceptance, DNS writes or site-code changes. Human must approve in the app; generated consent-aware Astro component must be reviewed and deployed separately. No self-approval tool exists.

    No credits

  • get_measurement_run

    Reads

    Read separate GA4 configuration, review/deploy artifact, GSC ownership, sitemap submission and incoming-data states. Script generation/submission never means tracking or indexing is verified.

    No credits

  • execute_measurement_run

    May change or spend

    Execute only an already human-approved measurement run. Default configures GA4 and returns the exact reviewable Astro file. After the human reviews and deploys code, verify=true asks Google to verify URL-prefix ownership and submit the sitemap. No site edits/DNS writes. Retrying the same ID reconciles ambiguous creates, never creates a replacement resource blindly.

    No credits

  • check_measurement_collection

    Reads

    Read GA4 Core processed page_view evidence for an existing approved measurement run's exact property, stream and production hostname. No Google mutations or fresh write approval; can retry completed runs once per minute. Realtime totals cannot distinguish localhost. Empty data means awaiting processing/traffic, not broken instrumentation. Stored evidence never proves code review or consent compliance.

    No credits

WordPress 6

These need the Sitearc WordPress plugin, which is not released.

2 only read, 4 may change something or spend. None of them spends credits.

  • wp_list_posts

    ReadsNot released

    Requires the WordPress plugin (not released).

    Lists posts or pages on the project's connected WordPress site, newest first, twenty per page. Uses no credits. Read-only: it changes nothing. Use it to find the ID that wp_get_post, wp_update_post and wp_set_seo_meta need.

    No credits

  • wp_get_post

    ReadsNot released

    Requires the WordPress plugin (not released).

    Returns a single post or page from the project's connected WordPress site, including its body, excerpt and current status. Uses no credits. Read-only: it changes nothing. Read the post before updating it; wp_update_post replaces whatever field it is given.

    No credits

  • wp_update_post

    May change or spendNot released

    Requires the WordPress plugin (not released).

    Rewrites the title, body, excerpt or slug of an existing post or page on the project's connected WordPress site. Uses no credits. This applies the change to the live site immediately. There is no preview and no staging copy: the next visitor sees the result. It cannot publish or unpublish: publication state stays exactly as it is, and a person changes it. Each field supplied replaces the current one in full, so read the post with wp_get_post first. Only apply a recommendation a person has accepted.

    No credits

  • wp_create_draft

    May change or spendNot released

    Requires the WordPress plugin (not released).

    Creates a new post or page as a DRAFT on the project's connected WordPress site. Uses no credits. It cannot publish: 'publish' is rejected by the schema, and there is no other route to it from here. The draft is created on the live site immediately and appears in the site's editor for everyone who can edit it; it is not visible to the public until a person publishes it, and no preview step comes before that. Only act on a recommendation a person has accepted.

    No credits

  • wp_set_seo_meta

    May change or spendNot released

    Requires the WordPress plugin (not released).

    Writes the SEO title, meta description and focus keyword for one post or page on the project's connected WordPress site, through whichever SEO plugin the site runs. Uses no credits. This applies the change to the live site immediately. There is no preview and no staging copy: the next visitor sees the result. On a site with no SEO plugin some fields have nowhere to go; the reply says which were dropped rather than reporting a clean success. Only apply a recommendation a person has accepted.

    No credits

  • wp_upload_media

    May change or spendNot released

    Requires the WordPress plugin (not released).

    Downloads an image from a public URL and stores it in the media library of the project's connected WordPress site, with alt text. Uses no credits. Alt text is required and the upload is refused without it. This applies the change to the live site immediately. There is no preview and no staging copy: the next visitor sees the result. The file is added to the customer's own library, where it stays until a person removes it; nothing here deletes media. Attaching it to a page is a separate step.

    No credits