Product Admin by Nova (CIVAI)
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
I manage your Nova products, create/update/delete, payment & logistics config, icons, webhook secre…
| Author | co.civai.nova |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2621 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Product Admin by Nova (CIVAI)": {
"url": "https://nova.civai.co/mcp/agents/product-admin",
"transport": "streamable-http"
}
}
}
Measured tools (30)
list_productsList all products for the signed-in owner.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_productReturn full product detail including payment/logistics/mobile-push config.
Parameters:
product_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_twitter_accountsList connected X/Twitter accounts available to use as an x_post publish destination.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
connect_audience_resolverConnect an Audience Resolver publisher token to this product, so it can push content to an AR project's calendar. The token must be minted by hand from the Audience Resolver dashboard first — there's no way to generate one here.
Parameters:
product_id(required) — stringpublisher_token(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_audience_resolver_projectsList the Audience Resolver projects reachable by this product's connected publisher token.
Parameters:
product_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_audience_resolver_calendarsList the content calendars within an Audience Resolver project.
Parameters:
product_id(required) — stringproject_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_productCreate a new product.
Parameters:
id(required) — string — Lowercase product id (letters, digits, hyphen, underscore).name(required) — stringsite_url(required) — stringmobile_push— objectpipeline_type— stringpayment_config— objectcontent_enabled— boolean — Enable/disable the content pipeline for this product.default_country— stringlogistics_config— objectopportunity_rules— string — What counts as a worthwhile trend/opportunity for this product — used when picking seeds and expanding opportunities.seed_picker_rules— string — Guidance for the seed-selection step specifically.opportunity_system— string — System context for generation prompts: what this product is, in the product's own voice.article_intent_rules— string — Structure/intent guidance for generated articles.publish_destinations— array — Where generated content publishes to. Each entry is one of {type: 'webhook', webhook_url, webhook_secret?}, {type: 'x_post', twitter_account_id}, or {type: 'ar_calendar', audience_resolver_project_id, audience_resolver_calendar_id} (requires audience_resolver_publisher_token to be connected first).content_target_markets— array — ISO-2 country codes this product's autonomous trend tweets should draw trends from (e.g. ['NG'] for a Nigeria-only product, ['NG','US'] to target more than one market). Empty/unset falls back to [default_country]. Without this, trend-driven tweets pull from a US-only trend pool regardless of the product's actual audience.content_posting_frequency— When this product's connected X account posts autonomous trend tweets. Either the legacy string preset ('daily' | '3x_week' | 'weekly' | 'off', defaults to 3x_week = Mon/Wed/Fri) or the object {days: ['mon','wed','fri'], time: '09:00' (Africa/Lagos, 24h), posts_per_day: 1-5}.intent_creative_direction— string — Free-form style/voice guidance for generated content.audience_resolver_publisher_token— string — Publisher JWT minted from the Audience Resolver dashboard, connecting this product to an AR account so content can be pushed to its calendars. Set via connect_audience_resolver, not directly.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_productUpdate product fields (partial patch — only send fields to change).
Parameters:
product_id(required)id— string — Lowercase product id (letters, digits, hyphen, underscore).name— stringsite_url— stringmobile_push— objectpipeline_type— stringpayment_config— objectcontent_enabled— boolean — Enable/disable the content pipeline for this product.default_country— stringlogistics_config— objectopportunity_rules— string — What counts as a worthwhile trend/opportunity for this product — used when picking seeds and expanding opportunities.seed_picker_rules— string — Guidance for the seed-selection step specifically.opportunity_system— string — System context for generation prompts: what this product is, in the product's own voice.article_intent_rules— string — Structure/intent guidance for generated articles.publish_destinations— array — Where generated content publishes to. Each entry is one of {type: 'webhook', webhook_url, webhook_secret?}, {type: 'x_post', twitter_account_id}, or {type: 'ar_calendar', audience_resolver_project_id, audience_resolver_calendar_id} (requires audience_resolver_publisher_token to be connected first).content_target_markets— array — ISO-2 country codes this product's autonomous trend tweets should draw trends from (e.g. ['NG'] for a Nigeria-only product, ['NG','US'] to target more than one market). Empty/unset falls back to [default_country]. Without this, trend-driven tweets pull from a US-only trend pool regardless of the product's actual audience.content_posting_frequency— When this product's connected X account posts autonomous trend tweets. Either the legacy string preset ('daily' | '3x_week' | 'weekly' | 'off', defaults to 3x_week = Mon/Wed/Fri) or the object {days: ['mon','wed','fri'], time: '09:00' (Africa/Lagos, 24h), posts_per_day: 1-5}.intent_creative_direction— string — Free-form style/voice guidance for generated content.audience_resolver_publisher_token— string — Publisher JWT minted from the Audience Resolver dashboard, connecting this product to an AR account so content can be pushed to its calendars. Set via connect_audience_resolver, not directly.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete_productPermanently delete a product.
Parameters:
product_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_payment_configSet/merge the product's payment_config (enable payments, catalog_mode, skus, discount, custom_fields, webhook URLs, return URLs, sandbox).
Parameters:
product_id(required) — stringpayment_config(required) — object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_logistics_configSet the product's logistics_config.
Parameters:
product_id(required) — stringlogistics_config(required) — object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_mobile_push_configSet the product's mobile_push config.
Parameters:
product_id(required) — stringmobile_push(required) — object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
upload_product_iconUpload a product icon/logo (base64-encoded JPEG/PNG/WebP, max 2MB).
Parameters:
product_id(required) — stringimage_base64(required) — stringcontent_type(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
remove_product_iconRemove the product's icon/logo.
Parameters:
product_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_webhook_secretReturn the product's fulfillment webhook signing secret.
Parameters:
product_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rotate_webhook_secretRotate the product's fulfillment webhook signing secret.
Parameters:
product_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_onboarding_statusBank-transfer onboarding status (merchant bank, alert inbox, auto-approve).
Parameters:
product_id— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
save_merchant_bankSave the merchant bank account used to receive bank-transfer payments.
Parameters:
bank_name(required) — stringaccount_name(required) — stringaccount_number(required) — string — 10-digit NUBAN account number.product_id— stringalert_source_emails— arrayauto_approve_enabled— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
save_alert_sourcesSave the allowlist of bank-alert source email addresses.
Parameters:
alert_source_emails(required) — array
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rotate_inboxRotate the bank-alert forwarding inbox address.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_bank_alert_guidesList supported banks and their alert-forwarding setup guides.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
test_parse_bank_alertTest-parse a bank alert email (debug the alert parser).
Parameters:
from_addr(required) — stringtext(required) — stringhtml— stringsubject— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_depositsList payment deposits for a product.
Parameters:
product_id(required) — stringlimit— integeroffset— integerstatus— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
approve_depositApprove a pending/expired deposit and run fulfillment.
Parameters:
product_id(required) — stringdeposit_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
reject_depositReject a deposit.
Parameters:
product_id(required) — stringdeposit_id(required) — stringreason— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_deposit_refund_statusSet the refund_status on an approved deposit.
Parameters:
product_id(required) — stringdeposit_id(required) — stringrefund_status(required) — stringnote— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
resend_deposit_fulfillmentResend/retry fulfillment for an approved deposit.
Parameters:
product_id(required) — stringdeposit_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_bank_creditsList unmatched/review bank credits for reconciliation.
Parameters:
status— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
assign_bank_creditAssign an unmatched bank credit to a pending deposit.
Parameters:
credit_id(required) — stringdeposit_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
dismiss_bank_creditDismiss a bank credit as not a sale.
Parameters:
credit_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.