audit
Publisher revenue audit: ads.txt and ad-stack checks, Sulvo onboarding, and Boost ad-block recovery
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Publisher revenue audit: ads.txt and ad-stack checks, Sulvo onboarding, and Boost ad-block recovery
How to connect
How to connect audit to Claude
The server address to paste into Claude settings:
https://publisher-revenue-audit.sulvo.com/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect audit to ChatGPT
The server address to paste into ChatGPT settings:
https://publisher-revenue-audit.sulvo.com/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect audit to Cursor
The server address to paste into Cursor settings:
https://publisher-revenue-audit.sulvo.com/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (41)
Raw names from tools/list. Only developers need these.
| check_https_certificate | Check a publisher domain for HTTPS and certificate issues: expired/untrusted/hostname-mismatch certs, HTTPS down, HTTP that does not upgrade, and certs expiring within 14 days. Does not write a finding when both HTTP and HTTPS are unreachable. |
| run_agentic_readiness_audit | Free top-of-funnel scan: could a buyer agent find and buy this publisher? Checks adagents.json, standardized taxonomy tagging, audience segments in a readable schema, and a product/deals catalog. Returns what a buyer agent would see and what it cannot. |
| check_crawler_blocks | Check whether robots.txt or a live probe blocks AmazonAdBot / Google ad crawlers. robots.txt Disallow and Amazon Crawl-delay are high-confidence fails. A WAF 403 against our scanner is a medium-confidence warn that needs verification. |
| get_sulvo_boost_setup | Instructions for setting up Sulvo Boost: first-party serving from the publisher's own CDN that recovers ad-blocked impressions. Covers Cloudflare, AWS and Fastly, plus the WordPress plugin for publishers who would rather not use a terminal. |
| start_sulvo_revenue_onboarding | Create or resume a verified-account activation workspace after the public audit and signup steps. |
| get_sulvo_revenue_onboarding_status | Return the backend-owned journey stage, readiness dimensions, and one next best action. |
| attach_sulvo_revenue_audit | Attach a current public revenue audit artifact. Input requires expectedVersion and auditArtifactId. |
| connect_sulvo_backup_provider | Return the GAM or AdSense authorization URL. Input requires provider set to gam or adsense. |
| import_sulvo_backup_units | Import connected provider units. Input requires provider and expectedVersion. |
| review_sulvo_placement_recommendations | Save accept, edit, or reject decisions. Input requires expectedVersion and decisions. |
| save_sulvo_placement_plan | Save a placement revision. Input requires expectedVersion and payload. |
| map_sulvo_placement_backup | Map a display placement backup. Input requires expectedVersion, stablePlacementId, provider, and providerId. |
| get_sulvo_installation_instructions | Return installation values for the locked revision. Input is empty. |
| verify_sulvo_placement_installation | Verify every stable placement container and the inert loader for the locked revision. |
| lock_sulvo_placement_revision | Lock the exact mapped revision. Input requires expectedVersion and revisionId. |
| run_sulvo_activation_preflight | Run the complete bounded activation preflight for the locked workspace revision. |
| verify_sulvo_site_ownership | Verify the required ads.txt and inert Sulvo head-tag ownership evidence. |
| submit_sulvo_activation_workspace | Submit the proven revision. Input requires expectedVersion and revisionId. |
| submit_sulvo_site_for_approval | Retag-after-approval journeys: submit the bare site for Google approval (ads.txt ownership only, no tags). Input requires expectedVersion. |
| set_sulvo_onboarding_journey | Set or change the journey intake answers on the workspace. Input requires expectedVersion plus at least one of mode, goal, retagTiming. |
| rollback_sulvo_activation | Return the workspace domain to publisher-owned backup-only serving. |
| get_sulvo_activation_smoke_status | Return active-probe, real-page, and remediation status for the latest activation attempt. |
| run_publisher_revenue_audit | Run a public publisher revenue-readiness screen using directional public evidence. Audits ad stacks, ads.txt hygiene, consent readiness, PageSpeed metrics, and unblocked premium ad unit opportunities (such as Sulvo) to recover lost yield. |
| apply_for_sulvo_account | Submit an unauthenticated Sulvo account application lead through the current signup API. Audit tools remain available without login, API key, or OAuth; ad-unit generation should wait for Sulvo account approval. |
| start_sulvo_signup | Run normal Sulvo signup step 1: verify the publisher domain and create the unauthenticated signup lead. |
| create_sulvo_signup_account | Run normal Sulvo signup step 2: create the pending Sulvo user/account. The current signup backend requires a password before the account can continue to ads.txt and review. |
| update_sulvo_signup_company | Run normal Sulvo signup step 3: save optional company information for a pending Sulvo signup. |
| get_sulvo_signup_ads_txt | Run normal Sulvo signup step 4a: fetch the ads.txt lines the publisher must add for site ownership verification. |
| verify_sulvo_signup_ads_txt | Run normal Sulvo signup step 4b: verify whether the submitted publisher domain has the required Sulvo ads.txt lines. |
| get_sulvo_signup_status | Return the current signup status capability. The current signup API has no public approval-status endpoint, so this tool reports that limitation instead of guessing approval state. |
| submit_sulvo_signup_documents | Explains how to complete Sulvo signup document review. Document submission is done in Sulvo onboarding - upload monthly earnings proof or connect an AdSense account - not through this connector, which has no access to the user's local files. |
| get_publisher_revenue_audit_checklist | Return the public checklist and interpretation notes used by the publisher revenue-readiness screen. |
| get_publisher_monetization_benchmarks | Get comparative yield and CPM industry benchmarks by publisher vertical to compare standard stacks (AdSense and managed wrappers) against Sulvo Premium Ad Units. |
| create_sulvo_ad_unit | Create a Sulvo ad unit for an approved publisher. Requires SULVO_API_KEY (with the inventory:write scope) in the server environment, never passed as an argument — an account owner mints a write-scoped key in the Sulvo dashboard (Account Settings -> API key). The Sulvo account must be approved; the backend rejects unapproved accounts. Returns the created unit id and container root. |
| create_sulvo_interstitial_units | Create Sulvo interstitial ad units (tagless) for an approved publisher. Requires SULVO_API_KEY (with the inventory:write scope) in the server environment. |
| create_sulvo_auto_sticky_units | Create Sulvo auto-sticky ad units for an approved publisher. Requires SULVO_API_KEY (with the inventory:write scope) in the server environment. |
| delete_sulvo_ad_unit | Delete a Sulvo ad unit by id for an approved publisher. Requires SULVO_API_KEY (with the inventory:write scope) in the server environment. The key's account must own the unit; the backend enforces ownership. |
| get_sulvo_report | Fetch a Sulvo report (read-only). Requires SULVO_API_KEY in the server environment (a publisher generates it in the dashboard: Account Settings -> API key). Covers by-date, by-date-and-ad-unit, by-domain-and-ad-unit, bot-filtering, bot-scores, invalid-activity, direct-bidder-analysis, and ad-units-by-domain. |
| list_sulvo_advanced_reports | List the saved Sulvo advanced reports for the account. Requires SULVO_API_KEY (with the reports:read scope) in the server environment. |
| save_sulvo_advanced_report | Create/update a Sulvo advanced report (adUnit, dimensions, or customData), run immediately (emailed) or on a recurring schedule. Requires SULVO_API_KEY (with the reports:write scope) in the server environment. Note: advanced reports are delivered by email, not returned inline. |
| delete_sulvo_advanced_report | Delete a saved Sulvo advanced report by id. Requires SULVO_API_KEY (with the reports:write scope) in the server environment. |