audit
Publisher revenue audit: ads.txt and ad-stack checks, Sulvo onboarding, and Boost ad-block recovery
¿Debería usar esto?
Calidad y seguridad
Hallazgos (10)
- LOWen get_sulvo_signup_status
- LOWen get_sulvo_revenue_onboarding_status
- LOWen review_sulvo_placement_recommendations
- LOWen get_sulvo_installation_instructions
- LOWen verify_sulvo_placement_installation
- LOWen submit_sulvo_activation_workspace
- LOWen get_sulvo_activation_smoke_status
- LOWen get_publisher_revenue_audit_checklist
- LOWen get_publisher_monetization_benchmarks
- LOWen create_sulvo_interstitial_units
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"audit": {
"command": "npx",
"args": [
"publisher-revenue-audit-mcp"
]
}
}
}Paquetes ejecutables
0.2.1stdioPuntos de conexión remotos
https://publisher-revenue-audit.sulvo.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (41)
🟢check_https_certificate(domain, outputFormat)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Publisher domain, for example example.com."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json",
"csv"
],
"default": "markdown"
}
},
"required": [
"domain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢run_agentic_readiness_audit(domain, outputFormat)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Publisher domain, for example example.com."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json",
"csv"
],
"default": "markdown"
}
},
"required": [
"domain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_crawler_blocks(domain, outputFormat)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Publisher domain, for example example.com."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json",
"csv"
],
"default": "markdown"
}
},
"required": [
"domain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_boost_setup(cdn)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"cdn": {
"type": "string",
"enum": [
"cloudflare",
"aws",
"fastly"
],
"description": "The CDN fronting the site; omit to get all three options."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡start_sulvo_revenue_onboarding(domain, auditArtifactId, goal, retagTiming, idempotencyKey, ...)
Create or resume a verified-account activation workspace after the public audit and signup steps.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"maxLength": 253
},
"auditArtifactId": {
"type": "string",
"minLength": 1,
"maxLength": 8192
},
"goal": {
"type": "string",
"enum": [
"demand",
"adblock_recovery"
],
"description": "The publisher's #1 goal: increase demand and CPMs, or recover ad-blocked impressions (Boost)."
},
"retagTiming": {
"type": "string",
"enum": [
"now",
"after_approval"
],
"description": "Demand goal only: retag now (requires passback/backup mapping) or after site approval (no passback)."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_revenue_onboarding_status(workspaceId, outputFormat)
Return the backend-owned journey stage, readiness dimensions, and one next best action.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴attach_sulvo_revenue_audit(workspaceId, input, idempotencyKey, outputFormat)
Attach a current public revenue audit artifact. Input requires expectedVersion and auditArtifactId.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡connect_sulvo_backup_provider(workspaceId, input, idempotencyKey, outputFormat)
Return the GAM or AdSense authorization URL. Input requires provider set to gam or adsense.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴import_sulvo_backup_units(workspaceId, input, idempotencyKey, outputFormat)
Import connected provider units. Input requires provider and expectedVersion.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴review_sulvo_placement_recommendations(workspaceId, input, idempotencyKey, outputFormat)
Save accept, edit, or reject decisions. Input requires expectedVersion and decisions.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡save_sulvo_placement_plan(workspaceId, input, idempotencyKey, outputFormat)
Save a placement revision. Input requires expectedVersion and payload.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"properties": {
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0
},
"payload": {
"type": "object",
"properties": {
"placements": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {}
},
"minItems": 1,
"maxItems": 50
},
"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."
}
},
"required": [
"placements"
],
"additionalProperties": true
}
},
"required": [
"expectedVersion",
"payload"
],
"additionalProperties": true,
"description": "A revision containing from 1 to 50 placements plus the consent/runtime attestations preflight requires."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId",
"input"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴map_sulvo_placement_backup(workspaceId, input, idempotencyKey, outputFormat)
Map a display placement backup. Input requires expectedVersion, stablePlacementId, provider, and providerId.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_installation_instructions(workspaceId, input, idempotencyKey, outputFormat)
Return installation values for the locked revision. Input is empty.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪verify_sulvo_placement_installation(workspaceId, input, idempotencyKey, outputFormat)
Verify every stable placement container and the inert loader for the locked revision.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴lock_sulvo_placement_revision(workspaceId, input, idempotencyKey, outputFormat)
Lock the exact mapped revision. Input requires expectedVersion and revisionId.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪run_sulvo_activation_preflight(workspaceId, input, idempotencyKey, outputFormat)
Run the complete bounded activation preflight for the locked workspace revision.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪verify_sulvo_site_ownership(workspaceId, input, idempotencyKey, outputFormat)
Verify the required ads.txt and inert Sulvo head-tag ownership evidence.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴submit_sulvo_activation_workspace(workspaceId, input, idempotencyKey, outputFormat)
Submit the proven revision. Input requires expectedVersion and revisionId.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴submit_sulvo_site_for_approval(workspaceId, input, idempotencyKey, outputFormat)
Retag-after-approval journeys: submit the bare site for Google approval (ads.txt ownership only, no tags). Input requires expectedVersion.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴set_sulvo_onboarding_journey(workspaceId, input, idempotencyKey, outputFormat)
Set or change the journey intake answers on the workspace. Input requires expectedVersion plus at least one of mode, goal, retagTiming.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴rollback_sulvo_activation(workspaceId, input, idempotencyKey, outputFormat)
Return the workspace domain to publisher-owned backup-only serving.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_activation_smoke_status(workspaceId, input, idempotencyKey, outputFormat)
Return active-probe, real-page, and remediation status for the latest activation attempt.
Esquema de entrada
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Activation workspace identifier returned by the start or status tool."
},
"input": {
"type": "object",
"additionalProperties": {},
"default": {},
"description": "Fields required by this journey action."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Optional retry key. Reuse it when retrying the same mutation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢run_publisher_revenue_audit(domain, vertical, metrics, options)
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.
Esquema de entrada
{
"type": "object",
"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."
},
"vertical": {
"type": "string",
"enum": [
"news",
"sports",
"entertainment",
"technology",
"education",
"gaming",
"other"
],
"description": "Optional publisher vertical used for interpretation."
},
"metrics": {
"type": "object",
"properties": {
"impressionsPerPageview": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"impressionsPerSession": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"pageviewsPerSession": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"dashboardViewabilityRate": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"fillRate": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"averageCpm": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"revenuePerSession": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"monthlyPageviews": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000000,
"description": "Actual monthly pageview volume. When provided, the yield simulator uses this scale instead of the standard 100k baseline."
},
"monthlySessions": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000000,
"description": "Actual monthly session count. Used with pageviewsPerSession to derive scale when monthlyPageviews is not supplied directly."
}
},
"additionalProperties": false,
"description": "Optional publisher-supplied metrics used for directional revenue interpretation."
},
"options": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"json",
"markdown_and_json"
],
"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",
"minimum": 1,
"maximum": 5,
"default": 2
},
"includeEvidence": {
"type": "boolean",
"default": true
},
"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."
},
"includeScreenshots": {
"type": "boolean",
"default": false,
"description": "When true with enableBrowser, save a full-page screenshot artifact using a relative artifact path."
},
"artifactsDir": {
"type": "string",
"minLength": 1,
"default": "audit-artifacts",
"description": "Relative directory for optional artifacts. Absolute paths, current-directory output, and parent traversal are rejected."
},
"enablePageSpeed": {
"type": "boolean",
"default": false,
"description": "When true, request public PageSpeed/Core Web Vitals diagnostics."
},
"pageSpeedStrategy": {
"type": "string",
"enum": [
"mobile",
"desktop"
],
"default": "mobile"
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"default": 2,
"description": "Maximum number of audit collection tasks to run at once."
},
"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."
},
"partnerId": {
"type": "string",
"description": "Optional referral or partner tracking identifier embedded in call-to-action URLs."
}
},
"additionalProperties": false,
"description": "Optional output and audit controls."
}
},
"required": [
"domain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴apply_for_sulvo_account(domain, email, outputFormat)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Primary publisher domain to submit for Sulvo account review. The current signup backend accepts root publisher domains."
},
"email": {
"type": "string",
"format": "email",
"description": "Applicant email address Sulvo should use for follow-up."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain",
"email"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴start_sulvo_signup(domain, email, monthlyPageviews, outputFormat)
Run normal Sulvo signup step 1: verify the publisher domain and create the unauthenticated signup lead.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Primary publisher root domain to submit for Sulvo signup."
},
"email": {
"type": "string",
"format": "email",
"description": "Applicant email address."
},
"monthlyPageviews": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Optional expected monthly pageviews to carry into the response. The current lead API stores traffic during account creation."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain",
"email"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴create_sulvo_signup_account(domain, email, firstName, lastName, password, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Primary publisher root domain used in signup start."
},
"email": {
"type": "string",
"format": "email",
"description": "Applicant email address."
},
"firstName": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"lastName": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"password": {
"type": "string",
"minLength": 6,
"description": "Password for the pending Sulvo account. This is required by the current signup backend."
},
"monthlyPageviews": {
"type": "number",
"exclusiveMinimum": 0
},
"phone": {
"type": "string"
},
"mixpanelId": {
"type": "string"
},
"utmSource": {
"type": "string"
},
"utmMedium": {
"type": "string"
},
"utmContent": {
"type": "string"
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain",
"email",
"firstName",
"lastName",
"password",
"monthlyPageviews"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_sulvo_signup_company(userId, website, address, city, zip, ...)
Run normal Sulvo signup step 3: save optional company information for a pending Sulvo signup.
Esquema de entrada
{
"type": "object",
"properties": {
"userId": {
"type": "string",
"minLength": 1
},
"website": {
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"zip": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"employeeCount": {
"type": "number",
"exclusiveMinimum": 0
},
"monthlyAdRevenue": {
"type": "number",
"exclusiveMinimum": 0
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"userId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_signup_ads_txt(userId, outputFormat)
Run normal Sulvo signup step 4a: fetch the ads.txt lines the publisher must add for site ownership verification.
Esquema de entrada
{
"type": "object",
"properties": {
"userId": {
"type": "string",
"minLength": 1
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"userId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪verify_sulvo_signup_ads_txt(userId, outputFormat)
Run normal Sulvo signup step 4b: verify whether the submitted publisher domain has the required Sulvo ads.txt lines.
Esquema de entrada
{
"type": "object",
"properties": {
"userId": {
"type": "string",
"minLength": 1
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"userId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_signup_status(userId, outputFormat)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"userId": {
"type": "string",
"minLength": 1
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"userId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢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.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_publisher_revenue_audit_checklist
Return the public checklist and interpretation notes used by the publisher revenue-readiness screen.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_publisher_monetization_benchmarks(vertical)
Get comparative yield and CPM industry benchmarks by publisher vertical to compare standard stacks (AdSense and managed wrappers) against Sulvo Premium Ad Units.
Esquema de entrada
{
"type": "object",
"properties": {
"vertical": {
"type": "string",
"enum": [
"news",
"sports",
"entertainment",
"technology",
"education",
"gaming",
"other"
],
"description": "Optional publisher vertical to retrieve benchmarks for. Defaults to other."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_sulvo_ad_unit(domain, type, size, placement, custom, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Publisher domain the ad unit belongs to."
},
"type": {
"type": "string",
"enum": [
"display",
"native_multi",
"sticky_display",
"sticky_mobile",
"sticky_display_custom",
"sticky_mobile_custom",
"sticky_video",
"interstitial_desktop",
"interstitial_mobile",
"offerwall"
],
"description": "Ad unit type."
},
"size": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"exclusiveMinimum": 0
},
"responsive": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false,
"description": "Ad size as width/height, or a responsive token like responsive_all. Required by the backend for most non-interstitial types."
},
"placement": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Optional placement weight (0-1)."
},
"custom": {
"type": "string",
"minLength": 1,
"description": "Optional custom unit name."
},
"focusedAd": {
"type": "boolean",
"description": "Only valid for the display type."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain",
"type"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_sulvo_interstitial_units(domain, adTypes, outputFormat)
Create Sulvo interstitial ad units (tagless) for an approved publisher. Requires SULVO_API_KEY (with the inventory:write scope) in the server environment.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Publisher domain the units belong to."
},
"adTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"interstitial_desktop",
"interstitial_mobile"
]
},
"minItems": 1,
"description": "One or more interstitial ad types to create."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain",
"adTypes"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_sulvo_auto_sticky_units(domain, adTypes, outputFormat)
Create Sulvo auto-sticky ad units for an approved publisher. Requires SULVO_API_KEY (with the inventory:write scope) in the server environment.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1,
"description": "Publisher domain the units belong to."
},
"adTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"sticky_display",
"sticky_mobile"
]
},
"minItems": 1,
"description": "One or more sticky ad types to create."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"required": [
"domain",
"adTypes"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_sulvo_ad_unit(adId)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"adId": {
"type": "string",
"minLength": 1,
"description": "The ad unit id to delete."
}
},
"required": [
"adId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_sulvo_report(reportType, start, end, domains, adRoots, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"reportType": {
"type": "string",
"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"
],
"description": "Which report to fetch."
},
"start": {
"type": "string",
"description": "Start date (YYYY-MM-DD or ISO). Required by most date-bounded reports."
},
"end": {
"type": "string",
"description": "End date (YYYY-MM-DD or ISO)."
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter to these publisher domains."
},
"adRoots": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter to these ad unit roots."
},
"adProvider": {
"type": "string",
"description": "Optional provider filter (e.g. relabe, adsense)."
},
"directBidder": {
"type": "string",
"description": "Required for direct-bidder-analysis: the bidder name."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json",
"csv"
],
"default": "markdown"
}
},
"required": [
"reportType"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_sulvo_advanced_reports(outputFormat)
List the saved Sulvo advanced reports for the account. Requires SULVO_API_KEY (with the reports:read scope) in the server environment.
Esquema de entrada
{
"type": "object",
"properties": {
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json",
"csv"
],
"default": "markdown"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴save_sulvo_advanced_report(reportType, toAddress, immediateRun, start, end, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"reportType": {
"type": "string",
"enum": [
"adUnit",
"dimensions",
"customData"
],
"description": "Advanced report type."
},
"toAddress": {
"type": "string",
"format": "email",
"description": "Email address the report is delivered to."
},
"immediateRun": {
"type": "boolean",
"description": "true to run now (emailed), false to only schedule (requires frequency)."
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"domains": {
"type": "array",
"items": {
"type": "string"
}
},
"adRoots": {
"type": "array",
"items": {
"type": "string"
}
},
"dimensions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"country",
"device",
"os"
]
}
},
"utms": {
"type": "array",
"items": {
"type": "string"
},
"description": "customData (UTM) reports only."
},
"utmHourlyBreakdown": {
"type": "boolean"
},
"frequency": {
"type": "string",
"enum": [
"daily",
"weekly",
"biweekly",
"monthly"
],
"description": "Required when immediateRun is false."
},
"timeZone": {
"type": "string",
"description": "IANA timezone for scheduled delivery."
},
"name": {
"type": "string"
},
"reportId": {
"type": "string",
"description": "Provide to update an existing saved report."
},
"outputFormat": {
"type": "string",
"enum": [
"markdown",
"json",
"csv"
],
"default": "markdown"
}
},
"required": [
"reportType",
"toAddress",
"immediateRun"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_sulvo_advanced_report(reportId)
Delete a saved Sulvo advanced report by id. Requires SULVO_API_KEY (with the reports:write scope) in the server environment.
Esquema de entrada
{
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1,
"description": "The advanced report id to delete."
}
},
"required": [
"reportId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia