MCP Server

audit

com.sulvo.publisher-revenue-audit/audit
Business & Operations Marketing & Advertising Public & reachable MCP 2025-11-25

What this MCP does

Audits publisher monetization readiness, ad technology configuration, crawler access, HTTPS, ads.txt, and consent-related issues, with tools for Sulvo onboarding and ad-unit management.

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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'description': 'Applicant email address Sulvo should use for follow-up.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Primary publisher domain to submit for Sulvo account review. The current signup backend accepts root publisher domains.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
attach_sulvo_revenue_audit
Attach a current public revenue audit artifact. Input requires expectedVersion and auditArtifactId.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain, for example example.com.'}, 'outputFormat': {'enum': ['markdown', 'json', 'csv'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain, for example example.com.'}, 'outputFormat': {'enum': ['markdown', 'json', 'csv'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
connect_sulvo_backup_provider
Return the GAM or AdSense authorization URL. Input requires provider set to gam or adsense.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'type'], 'properties': {'size': {'type': 'object', 'properties': {'width': {'type': 'number', 'exclusiveMinimum': 0}, 'height': {'type': 'number', 'exclusiveMinimum': 0}, 'responsive': {'type': 'string', 'minLength': 1}}, 'description': 'Ad size as width/height, or a responsive token like responsive_all. Required by the backend for most non-interstitial types.', 'additionalProperties': False}, 'type': {'enum': ['display', 'native_multi', 'sticky_display', 'sticky_mobile', 'sticky_display_custom', 'sticky_mobile_custom', 'sticky_video', 'interstitial_desktop', 'interstitial_mobile', 'offerwall'], 'type': 'string', 'description': 'Ad unit type.'}, 'custom': {'type': 'string', 'minLength': 1, 'description': 'Optional custom unit name.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain the ad unit belongs to.'}, 'focusedAd': {'type': 'boolean', 'description': 'Only valid for the display type.'}, 'placement': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Optional placement weight (0-1).'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'adTypes'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain the units belong to.'}, 'adTypes': {'type': 'array', 'items': {'enum': ['sticky_display', 'sticky_mobile'], 'type': 'string'}, 'minItems': 1, 'description': 'One or more sticky ad types to create.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'adTypes'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain the units belong to.'}, 'adTypes': {'type': 'array', 'items': {'enum': ['interstitial_desktop', 'interstitial_mobile'], 'type': 'string'}, 'minItems': 1, 'description': 'One or more interstitial ad types to create.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'email', 'firstName', 'lastName', 'password', 'monthlyPageviews'], 'properties': {'email': {'type': 'string', 'format': 'email', 'description': 'Applicant email address.'}, 'phone': {'type': 'string'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Primary publisher root domain used in signup start.'}, 'lastName': {'type': 'string', 'maxLength': 30, 'minLength': 1}, 'password': {'type': 'string', 'minLength': 6, 'description': 'Password for the pending Sulvo account. This is required by the current signup backend.'}, 'firstName': {'type': 'string', 'maxLength': 30, 'minLength': 1}, 'utmMedium': {'type': 'string'}, 'utmSource': {'type': 'string'}, 'mixpanelId': {'type': 'string'}, 'utmContent': {'type': 'string'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'monthlyPageviews': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adId'], 'properties': {'adId': {'type': 'string', 'minLength': 1, 'description': 'The ad unit id to delete.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reportId'], 'properties': {'reportId': {'type': 'string', 'minLength': 1, 'description': 'The advanced report id to delete.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'vertical': {'enum': ['news', 'sports', 'entertainment', 'technology', 'education', 'gaming', 'other'], 'type': 'string', 'description': 'Optional publisher vertical to retrieve benchmarks for. Defaults to other.'}}, 'additionalProperties': False}
get_publisher_revenue_audit_checklist
Return the public checklist and interpretation notes used by the publisher revenue-readiness screen.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_sulvo_activation_smoke_status
Return active-probe, real-page, and remediation status for the latest activation attempt.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cdn': {'enum': ['cloudflare', 'aws', 'fastly'], 'type': 'string', 'description': 'The CDN fronting the site; omit to get all three options.'}}, 'additionalProperties': False}
get_sulvo_installation_instructions
Return installation values for the locked revision. Input is empty.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reportType'], 'properties': {'end': {'type': 'string', 'description': 'End date (YYYY-MM-DD or ISO).'}, 'start': {'type': 'string', 'description': 'Start date (YYYY-MM-DD or ISO). Required by most date-bounded reports.'}, 'adRoots': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter to these ad unit roots.'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter to these publisher domains.'}, 'adProvider': {'type': 'string', 'description': 'Optional provider filter (e.g. relabe, adsense).'}, 'reportType': {'enum': ['by-date', 'by-date-and-ad-unit', 'by-domain-and-ad-unit', 'bot-filtering', 'bot-scores', 'invalid-activity', 'direct-bidder-analysis', 'ad-units-by-domain'], 'type': 'string', 'description': 'Which report to fetch.'}, 'directBidder': {'type': 'string', 'description': 'Required for direct-bidder-analysis: the bidder name.'}, 'outputFormat': {'enum': ['markdown', 'json', 'csv'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
get_sulvo_revenue_onboarding_status
Return the backend-owned journey stage, readiness dimensions, and one next best action.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
get_sulvo_signup_ads_txt
Run normal Sulvo signup step 4a: fetch the ads.txt lines the publisher must add for site ownership verification.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
import_sulvo_backup_units
Import connected provider units. Input requires provider and expectedVersion.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'outputFormat': {'enum': ['markdown', 'json', 'csv'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
lock_sulvo_placement_revision
Lock the exact mapped revision. Input requires expectedVersion and revisionId.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
map_sulvo_placement_backup
Map a display placement backup. Input requires expectedVersion, stablePlacementId, provider, and providerId.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
review_sulvo_placement_recommendations
Save accept, edit, or reject decisions. Input requires expectedVersion and decisions.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
rollback_sulvo_activation
Return the workspace domain to publisher-owned backup-only serving.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain, for example example.com.'}, 'outputFormat': {'enum': ['markdown', 'json', 'csv'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Publisher domain to screen, for example example.com. Private/local targets, raw IPs, internal hosts, and non-standard ports are rejected.'}, 'metrics': {'type': 'object', 'properties': {'fillRate': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'averageCpm': {'type': 'number', 'maximum': 100000, 'minimum': 0}, 'monthlySessions': {'type': 'number', 'maximum': 1000000000000, 'description': 'Actual monthly session count. Used with pageviewsPerSession to derive scale when monthlyPageviews is not supplied directly.', 'exclusiveMinimum': 0}, 'monthlyPageviews': {'type': 'number', 'maximum': 1000000000000, 'description': 'Actual monthly pageview volume. When provided, the yield simulator uses this scale instead of the standard 100k baseline.', 'exclusiveMinimum': 0}, 'revenuePerSession': {'type': 'number', 'maximum': 100000, 'minimum': 0}, 'pageviewsPerSession': {'type': 'number', 'maximum': 100000, 'exclusiveMinimum': 0}, 'impressionsPerSession': {'type': 'number', 'maximum': 1000, 'exclusiveMinimum': 0}, 'impressionsPerPageview': {'type': 'number', 'maximum': 100, 'exclusiveMinimum': 0}, 'dashboardViewabilityRate': {'type': 'number', 'maximum': 100, 'minimum': 0}}, 'description': 'Optional publisher-supplied metrics used for directional revenue interpretation.', 'additionalProperties': False}, 'options': {'type': 'object', 'properties': {'format': {'enum': ['markdown', 'json', 'markdown_and_json'], 'type': 'string', 'default': 'markdown'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'When true with JSON output, return the compact agent-oriented report shape instead of the full report object.'}, 'maxPages': {'type': 'integer', 'default': 2, 'maximum': 5, 'minimum': 1}, 'partnerId': {'type': 'string', 'description': 'Optional referral or partner tracking identifier embedded in call-to-action URLs.'}, 'whiteLabel': {'type': 'boolean', 'default': False, 'description': 'When true, format the audit report as a white-labeled pitch presentation for ad-ops consultants/agencies to present directly to their publisher clients.'}, 'concurrency': {'type': 'integer', 'default': 2, 'maximum': 5, 'minimum': 1, 'description': 'Maximum number of audit collection tasks to run at once.'}, 'artifactsDir': {'type': 'string', 'default': 'audit-artifacts', 'minLength': 1, 'description': 'Relative directory for optional artifacts. Absolute paths, current-directory output, and parent traversal are rejected.'}, 'enableBrowser': {'type': 'boolean', 'default': False, 'description': 'When true, run optional Playwright diagnostics for rendered slots, provider-aware network/console errors, selected provider privacy-review signals, and bfcache signals.'}, 'enablePageSpeed': {'type': 'boolean', 'default': False, 'description': 'When true, request public PageSpeed/Core Web Vitals diagnostics.'}, 'includeEvidence': {'type': 'boolean', 'default': True}, 'pageSpeedStrategy': {'enum': ['mobile', 'desktop'], 'type': 'string', 'default': 'mobile'}, 'includeScreenshots': {'type': 'boolean', 'default': False, 'description': 'When true with enableBrowser, save a full-page screenshot artifact using a relative artifact path.'}}, 'description': 'Optional output and audit controls.', 'additionalProperties': False}, 'vertical': {'enum': ['news', 'sports', 'entertainment', 'technology', 'education', 'gaming', 'other'], 'type': 'string', 'description': 'Optional publisher vertical used for interpretation.'}}, 'additionalProperties': False}
run_sulvo_activation_preflight
Run the complete bounded activation preflight for the locked workspace revision.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reportType', 'toAddress', 'immediateRun'], 'properties': {'end': {'type': 'string'}, 'name': {'type': 'string'}, 'utms': {'type': 'array', 'items': {'type': 'string'}, 'description': 'customData (UTM) reports only.'}, 'start': {'type': 'string'}, 'adRoots': {'type': 'array', 'items': {'type': 'string'}}, 'domains': {'type': 'array', 'items': {'type': 'string'}}, 'reportId': {'type': 'string', 'description': 'Provide to update an existing saved report.'}, 'timeZone': {'type': 'string', 'description': 'IANA timezone for scheduled delivery.'}, 'frequency': {'enum': ['daily', 'weekly', 'biweekly', 'monthly'], 'type': 'string', 'description': 'Required when immediateRun is false.'}, 'toAddress': {'type': 'string', 'format': 'email', 'description': 'Email address the report is delivered to.'}, 'dimensions': {'type': 'array', 'items': {'enum': ['country', 'device', 'os'], 'type': 'string'}}, 'reportType': {'enum': ['adUnit', 'dimensions', 'customData'], 'type': 'string', 'description': 'Advanced report type.'}, 'immediateRun': {'type': 'boolean', 'description': 'true to run now (emailed), false to only schedule (requires frequency).'}, 'outputFormat': {'enum': ['markdown', 'json', 'csv'], 'type': 'string', 'default': 'markdown'}, 'utmHourlyBreakdown': {'type': 'boolean'}}, 'additionalProperties': False}
save_sulvo_placement_plan
Save a placement revision. Input requires expectedVersion and payload.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId', 'input'], 'properties': {'input': {'type': 'object', 'required': ['expectedVersion', 'payload'], 'properties': {'payload': {'type': 'object', 'required': ['placements'], 'properties': {'placements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'maxItems': 50, 'minItems': 1}, 'consentDeclaration': {'type': 'boolean', 'description': 'Attest that consent requirements are accounted for. Preflight requires true.'}, 'runtimeDeclaration': {'type': 'boolean', 'description': 'Attest that runtime placement behavior has been reviewed. Preflight requires true.'}}, 'additionalProperties': True}, 'expectedVersion': {'type': 'integer', 'exclusiveMinimum': 0}}, 'description': 'A revision containing from 1 to 50 placements plus the consent/runtime attestations preflight requires.', 'additionalProperties': True}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
start_sulvo_revenue_onboarding
Create or resume a verified-account activation workspace after the public audit and signup steps.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'goal': {'enum': ['demand', 'adblock_recovery'], 'type': 'string', 'description': "The publisher's #1 goal: increase demand and CPMs, or recover ad-blocked impressions (Boost)."}, 'domain': {'type': 'string', 'maxLength': 253, 'minLength': 1}, 'retagTiming': {'enum': ['now', 'after_approval'], 'type': 'string', 'description': 'Demand goal only: retag now (requires passback/backup mapping) or after site approval (no passback).'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}, 'auditArtifactId': {'type': 'string', 'maxLength': 8192, 'minLength': 1}}, 'additionalProperties': False}
start_sulvo_signup
Run normal Sulvo signup step 1: verify the publisher domain and create the unauthenticated signup lead.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'description': 'Applicant email address.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Primary publisher root domain to submit for Sulvo signup.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'monthlyPageviews': {'type': 'number', 'description': 'Optional expected monthly pageviews to carry into the response. The current lead API stores traffic during account creation.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
submit_sulvo_activation_workspace
Submit the proven revision. Input requires expectedVersion and revisionId.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
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.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
update_sulvo_signup_company
Run normal Sulvo signup step 3: save optional company information for a pending Sulvo signup.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'userId': {'type': 'string', 'minLength': 1}, 'address': {'type': 'string'}, 'country': {'type': 'string'}, 'website': {'type': 'string'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'employeeCount': {'type': 'number', 'exclusiveMinimum': 0}, 'monthlyAdRevenue': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
verify_sulvo_placement_installation
Verify every stable placement container and the inert loader for the locked revision.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
verify_sulvo_signup_ads_txt
Run normal Sulvo signup step 4b: verify whether the submitted publisher domain has the required Sulvo ads.txt lines.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}}, 'additionalProperties': False}
verify_sulvo_site_ownership
Verify the required ads.txt and inert Sulvo head-tag ownership evidence.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workspaceId'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Fields required by this journey action.', 'additionalProperties': {}}, 'workspaceId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Activation workspace identifier returned by the start or status tool.'}, 'outputFormat': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'idempotencyKey': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional retry key. Reuse it when retrying the same mutation.'}}, 'additionalProperties': False}
Added
delete_sulvo_advanced_report
Sept. 17, 2026, 12:37 p.m.
Added
save_sulvo_advanced_report
Sept. 17, 2026, 12:37 p.m.
Added
list_sulvo_advanced_reports
Sept. 17, 2026, 12:37 p.m.
Added
get_sulvo_report
Sept. 17, 2026, 12:37 p.m.
Added
delete_sulvo_ad_unit
Sept. 17, 2026, 12:37 p.m.
Added
create_sulvo_auto_sticky_units
Sept. 17, 2026, 12:37 p.m.
Added
create_sulvo_interstitial_units
Sept. 17, 2026, 12:37 p.m.
Added
create_sulvo_ad_unit
Sept. 17, 2026, 12:37 p.m.
Added
get_publisher_monetization_benchmarks
Sept. 17, 2026, 12:37 p.m.
Added
get_publisher_revenue_audit_checklist
Sept. 17, 2026, 12:37 p.m.
Added
submit_sulvo_signup_documents
Sept. 17, 2026, 12:37 p.m.
Added
get_sulvo_signup_status
Sept. 17, 2026, 12:37 p.m.
Added
verify_sulvo_signup_ads_txt
Sept. 17, 2026, 12:37 p.m.
Added
get_sulvo_signup_ads_txt
Sept. 17, 2026, 12:37 p.m.
Added
update_sulvo_signup_company
Sept. 17, 2026, 12:37 p.m.
Added
create_sulvo_signup_account
Sept. 17, 2026, 12:37 p.m.
Added
start_sulvo_signup
Sept. 17, 2026, 12:37 p.m.
Added
apply_for_sulvo_account
Sept. 17, 2026, 12:37 p.m.
Added
run_publisher_revenue_audit
Sept. 17, 2026, 12:37 p.m.
Added
get_sulvo_activation_smoke_status
Sept. 17, 2026, 12:37 p.m.
Added
rollback_sulvo_activation
Sept. 17, 2026, 12:37 p.m.
Added
set_sulvo_onboarding_journey
Sept. 17, 2026, 12:37 p.m.
Added
submit_sulvo_site_for_approval
Sept. 17, 2026, 12:37 p.m.
Added
submit_sulvo_activation_workspace
Sept. 17, 2026, 12:37 p.m.
Added
verify_sulvo_site_ownership
Sept. 17, 2026, 12:37 p.m.
Added
run_sulvo_activation_preflight
Sept. 17, 2026, 12:37 p.m.
Added
lock_sulvo_placement_revision
Sept. 17, 2026, 12:37 p.m.
Added
verify_sulvo_placement_installation
Sept. 17, 2026, 12:37 p.m.
Added
get_sulvo_installation_instructions
Sept. 17, 2026, 12:37 p.m.
Added
map_sulvo_placement_backup
Sept. 17, 2026, 12:37 p.m.