Website monetization for AI agents: apply, integrate ads, reporting, and payouts — all over MCP.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Catalog only — reading this is not an application. Call apply next with site_url, contact_email, publisher_name, and agent_name. Also covers the one-tag integration model, payout terms, and the full tool list. No authentication required.
This tool takes no arguments.
Catalog only — reading this is not an application. Call apply next with site_url, contact_email, publisher_name, and agent_name. Also covers the one-tag integration model, payout terms, and the full tool list. No authentication required.
No arguments.
{
"type": "object",
"additionalProperties": false
}View or update your account (authenticate with your API token sk_...; an approved account's Bearer web session — the in-page agent on rocketsloth.ai — is also accepted, so do not ask the user to paste an sk_ token when you already have a working session). action: view (default; account and site status) | update (contact_email, agent_name, and/or google_email — set google_email when the Google account email on file already has an Ad Manager account or invitation; the application resubmits automatically within about an hour) | rotate_token (revoke the current API token and issue a new one; not available to web sessions — sessions rotate via https://rocketsloth.ai/recover).
| Argument | Type | Description |
|---|---|---|
| token | string | Your API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| action | string | One of: view (default), update, rotate_token. |
| agent_name | string | For action=update: a new agent name. |
| google_email | string | For action=update: the Google account email your Ad Manager invitation goes to. Set this when the current one already has an Ad Manager account or invitation. |
| contact_email | string | For action=update: a new contact email. |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "One of: view (default), update, rotate_token."
},
"agent_name": {
"type": "string",
"description": "For action=update: a new agent name."
},
"google_email": {
"type": "string",
"description": "For action=update: the Google account email your Ad Manager invitation goes to. Set this when the current one already has an Ad Manager account or invitation."
},
"contact_email": {
"type": "string",
"description": "For action=update: a new contact email."
}
},
"additionalProperties": false
}View and adjust ad settings for your site (authenticate with your API token sk_...; an approved account's Bearer web session — the in-page agent on rocketsloth.ai — is also accepted, so do not ask the user to paste an sk_ token when you already have a working session). Pass resource and action; call with no action to see what's available. Rocket Sloth ad products: resource=anchor (sitewide sticky anchor: get/update enabled, position, expansion), resource=video_formats (get/enable/disable the floating outstream and universal video players), resource=rewarded (get enabled state, update the content lock).
| Argument | Type | Description |
|---|---|---|
| token | string | Your API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| action | string | The action to perform on the resource. Omit to list what's available. |
| params | object | Optional additional parameters for the action. |
| resource | string | The resource to act on. Call with no action to discover available resources and actions. |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "The action to perform on the resource. Omit to list what's available."
},
"params": {
"type": "object",
"description": "Optional additional parameters for the action.",
"additionalProperties": true
},
"resource": {
"type": "string",
"description": "The resource to act on. Call with no action to discover available resources and actions."
}
},
"additionalProperties": false
}Check an application's status using its application token (at_...). While pending, your placed units serve Rocket Sloth house creatives; on approval the first call returns your API token (sk_...) exactly once and your units upgrade to full demand automatically — your page never changes. The automated review checks a pending site every hour but pauses 30 days after signup or the last check-again — pass action=request_review (pending applications only) to restart another 30 days of checks. If Google disapproved an approved account's site, fix the site and pass action=resubmit_site to send it back to Google for a new review; each resubmit doubles the wait before the next one is allowed. A Bearer web session (the in-page agent on rocketsloth.ai) also authenticates this tool: the session is enough, no API token is issued on that path, and you must not ask the user to paste an at_ or sk_ token.
| Argument | Type | Description |
|---|---|---|
| token | string | Your application token (at_...). May instead be sent as an Authorization: Bearer header. |
| action | string | Optional. Omit for a normal status poll. Pass request_review to restart the 30-day automated review check when it has paused (pending applications only). Pass resubmit_site to send a site Google disapproved back to Google for a new review (approved accounts only; each resubmit doubles the wait before the next). |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your application token (at_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "Optional. Omit for a normal status poll. Pass request_review to restart the 30-day automated review check when it has paused (pending applications only). Pass resubmit_site to send a site Google disapproved back to Google for a new review (approved accounts only; each resubmit doubles the wait before the next)."
}
},
"additionalProperties": false
}Call this first after connecting. Connecting the MCP server is not an application. Requires site_url (http/https; need not be live yet), contact_email, publisher_name (the site owner's name — not your agent name), and agent_name; description is optional. Humans can sign up at https://rocketsloth.ai/signup. Returns an application token (at_...). Call integration immediately with it. Rocket Sloth never asks for payment card, bank account, government ID, or health information in chat. No authentication required; rate limited per IP.
| Argument | Type | Description |
|---|---|---|
| site_url* | string | The publisher site to monetize, as an http or https URL (e.g. https://example.com). Need not be live yet — apply now, integrate while you build; full demand starts once the site is live with the tag. |
| agent_name* | string | Your name (the agent/operator applying on the publisher's behalf), e.g. 'claude-code'. |
| description | string | Optional short description of the site or its content. |
| google_email | string | Optional. The email address that will receive Google's Ad Manager invitation later in the process; it must belong to a Google account the site owner can sign in to. Defaults to contact_email when omitted. |
| contact_email* | string | A contact email for the account. Used as the account login. |
| publisher_name* | string |
Ask the Rocket Sloth setup agent anything about integration, ad units, application, reporting, or payments. Pass the returned thread_id on follow-up questions to keep context. No authentication required; rate limited per IP.
| Argument | Type | Description |
|---|---|---|
| question* | string | Your question about integration, ad units, application, reporting, or payments. |
| thread_id | string | Pass the thread_id returned by a previous ask call to continue the same conversation. Omit to start a new thread. |
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "Your question about integration, ad units, application, reporting, or payments."
},
"thread_id": {
"type": "string",
"description": "Pass the thread_id returned by a previous ask call to continue the same conversation. Omit to start a new thread."
}
},
"additionalProperties": false
}Your onboarding checklist (authenticate with your application token at_... or API token sk_...; a Bearer web session from the in-page agent on rocketsloth.ai also works — never ask the user to paste a token when the session already authenticates you). Returns every step to full-demand serving with its status (complete/pending/action_required/blocked), who must act (agent/account_owner/automatic), and concrete instructions, plus next_action — the single next thing to do. The same checklist is also embedded in application_status.
| Argument | Type | Description |
|---|---|---|
| token | string | Your application token (at_...) or API token (sk_...). May instead be sent as an Authorization: Bearer header. |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your application token (at_...) or API token (sk_...). May instead be sent as an Authorization: Bearer header."
}
},
"additionalProperties": false
}Get your exact script tag and ad-unit markup, plus placement guidance (authenticate with your application token at_... or API token sk_...; a Bearer web session from the in-page agent on rocketsloth.ai also works — never ask the user to paste a token when the session already authenticates you). Available immediately after apply. Pass verify=true to fetch your site and confirm the tag and at least one ad unit are installed.
| Argument | Type | Description |
|---|---|---|
| token | string | Your application token (at_...) or API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| verify | boolean | When true, Rocket Sloth fetches your site and confirms the script tag and at least one ad unit are installed. |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your application token (at_...) or API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"verify": {
"type": "boolean",
"description": "When true, Rocket Sloth fetches your site and confirms the script tag and at least one ad unit are installed."
}
},
"additionalProperties": false
}View your payout status (authenticate with your API token sk_...; an approved account's Bearer web session — the in-page agent on rocketsloth.ai — is also accepted, so do not ask the user to paste an sk_ token when you already have a working session). action: settings (payout method name and threshold) | history (amount owed, this-month earnings, and payout rows). Read-only: payment method and tax setup are not yet available in Rocket Sloth. For help, email [email protected]. Never send bank or tax details in chat or email.
| Argument | Type | Description |
|---|---|---|
| token | string | Your API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| action | string | One of: settings (default; payout method name and threshold), history (amount owed, this-month earnings, and payout rows). |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "One of: settings (default; payout method name and threshold), history (amount owed, this-month earnings, and payout rows)."
}
},
"additionalProperties": false
}Free up a site that has an inactive previous registration. If apply says the site is already registered, use action=start to get domain-ownership verification options (DNS TXT record, hosted file, or meta tag), complete one, then action=verify with the method used. Once released, call apply again.
| Argument | Type | Description |
|---|---|---|
| action* | string | One of: start (get domain-ownership verification options) or verify (check that one method is in place and release the previous registration). |
| method | string | For action=verify: the ownership proof method used — one of dns, file, or meta. |
| site_url* | string | The site to reclaim, as an http or https URL (e.g. https://example.com). |
{
"type": "object",
"required": [
"action",
"site_url"
],
"properties": {
"action": {
"type": "string",
"description": "One of: start (get domain-ownership verification options) or verify (check that one method is in place and release the previous registration)."
},
"method": {
"type": "string",
"description": "For action=verify: the ownership proof method used — one of dns, file, or meta."
},
"site_url": {
"type": "string",
"description": "The site to reclaim, as an http or https URL (e.g. https://example.com)."
}
},
"additionalProperties": false
}Recover access when application or API tokens are lost. action=start with site_url emails a short-lived code to the account owner's contact address on file; action=confirm with site_url and code verifies the emailed code, revokes all old tokens, and returns a fresh application token (and API token if already approved). No authentication required; rate limited per IP and per site.
| Argument | Type | Description |
|---|---|---|
| code | string | For action=confirm: the recovery code emailed to the account owner's contact address. |
| action* | string | One of: start (email a recovery code to the account owner) or confirm (submit the code and receive fresh tokens). |
| site_url* | string | The publisher site URL previously registered with apply (http or https). |
{
"type": "object",
"required": [
"action",
"site_url"
],
"properties": {
"code": {
"type": "string",
"description": "For action=confirm: the recovery code emailed to the account owner's contact address."
},
"action": {
"type": "string",
"description": "One of: start (email a recovery code to the account owner) or confirm (submit the code and receive fresh tokens)."
},
"site_url": {
"type": "string",
"description": "The publisher site URL previously registered with apply (http or https)."
}
},
"additionalProperties": false
}Revenue and traffic reporting for your account (authenticate with your API token sk_...; an approved account's Bearer web session — the in-page agent on rocketsloth.ai — is also accepted, so do not ask the user to paste an sk_ token when you already have a working session). action: overview | earnings_history | epmv_trend | demand_partners | top_earning_pages | ad_format_revenue. Optional start_date/end_date (YYYY-MM-DD).
| Argument | Type | Description |
|---|---|---|
| token | string | Your API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| action | string | One of: overview (default), earnings_history, epmv_trend, demand_partners, top_earning_pages, ad_format_revenue. |
| end_date | string | End date YYYY-MM-DD (optional). |
| start_date | string | Start date YYYY-MM-DD (optional; upstream default applies when omitted). |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "One of: overview (default), earnings_history, epmv_trend, demand_partners, top_earning_pages, ad_format_revenue."
},
"end_date": {
"type": "string",
"description": "End date YYYY-MM-DD (optional)."
},
"start_date": {
"type": "string",
"description": "Start date YYYY-MM-DD (optional; upstream default applies when omitted)."
}
},
"additionalProperties": false
}Manage reader subscriptions and donations (authenticate with your API token sk_...; an approved account's Bearer web session — the in-page agent on rocketsloth.ai — is also accepted, so do not ask the user to paste an sk_ token when you already have a working session). Pass resource and action; call with no action to see what's available.
| Argument | Type | Description |
|---|---|---|
| token | string | Your API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| action | string | The action to perform on the resource. Omit to list what's available. |
| params | object | Optional additional parameters for the action. |
| resource | string | The resource to act on. Call with no action to discover available resources and actions. |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "The action to perform on the resource. Omit to list what's available."
},
"params": {
"type": "object",
"description": "Optional additional parameters for the action.",
"additionalProperties": true
},
"resource": {
"type": "string",
"description": "The resource to act on. Call with no action to discover available resources and actions."
}
},
"additionalProperties": false
}Manage video monetization (authenticate with your API token sk_...; an approved account's Bearer web session — the in-page agent on rocketsloth.ai — is also accepted, so do not ask the user to paste an sk_ token when you already have a working session). Pass resource and action (e.g. resource=player action=list); call with no action to see what's available. Use resource=embed to get the content-player unit markup (<div data-rs-video>) and where video ids come from.
| Argument | Type | Description |
|---|---|---|
| token | string | Your API token (sk_...). May instead be sent as an Authorization: Bearer header. |
| action | string | The action to perform on the resource. Omit to list what's available. |
| params | object | Optional additional parameters for the action. |
| resource | string | The resource to act on. Call with no action to discover available resources and actions. |
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Your API token (sk_...). May instead be sent as an Authorization: Bearer header."
},
"action": {
"type": "string",
"description": "The action to perform on the resource. Omit to list what's available."
},
"params": {
"type": "object",
"description": "Optional additional parameters for the action.",
"additionalProperties": true
},
"resource": {
"type": "string",
"description": "The resource to act on. Call with no action to discover available resources and actions."
}
},
"additionalProperties": false
}| The site owner's name for the publisher account (e.g. 'Jane Doe'), provided with the owner's consent — used only to create the account and its Google Ad Manager invitation. Not your agent name. |
{
"type": "object",
"required": [
"site_url",
"contact_email",
"publisher_name",
"agent_name"
],
"properties": {
"site_url": {
"type": "string",
"description": "The publisher site to monetize, as an http or https URL (e.g. https://example.com). Need not be live yet — apply now, integrate while you build; full demand starts once the site is live with the tag."
},
"agent_name": {
"type": "string",
"description": "Your name (the agent/operator applying on the publisher's behalf), e.g. 'claude-code'."
},
"description": {
"type": "string",
"description": "Optional short description of the site or its content."
},
"google_email": {
"type": "string",
"description": "Optional. The email address that will receive Google's Ad Manager invitation later in the process; it must belong to a Google account the site owner can sign in to. Defaults to contact_email when omitted."
},
"contact_email": {
"type": "string",
"description": "A contact email for the account. Used as the account login."
},
"publisher_name": {
"type": "string",
"description": "The site owner's name for the publisher account (e.g. 'Jane Doe'), provided with the owner's consent — used only to create the account and its Google Ad Manager invitation. Not your agent name."
}
},
"additionalProperties": false
}