Product Admin by Nova (CIVAI)
I manage your Nova products, create/update/delete, payment & logistics config, icons, webhook secre…
¿Debería usar esto?
Calidad y seguridad
Hallazgos (6)
- LOWen get_webhook_secret
- LOWen rotate_webhook_secret
- LOWen assign_bank_credit
- LOWen dismiss_bank_credit
- LOWen list_audience_resolver_projects
- LOWen list_audience_resolver_calendars
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": {
"product-admin": {
"url": "https://nova.civai.co/mcp/agents/product-admin"
}
}
}Puntos de conexión remotos
https://nova.civai.co/mcp/agents/product-adminstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (30)
🟢list_products
List all products for the signed-in owner.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢get_product(product_id)
Return full product detail including payment/logistics/mobile-push config.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}🟡list_twitter_accounts
List connected X/Twitter accounts available to use as an x_post publish destination.
Esquema de entrada
{
"type": "object",
"properties": {}
}⚪connect_audience_resolver(product_id, publisher_token)
Connect 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.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"publisher_token": {
"type": "string"
}
},
"required": [
"product_id",
"publisher_token"
]
}🟢list_audience_resolver_projects(product_id)
List the Audience Resolver projects reachable by this product's connected publisher token.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}🟢list_audience_resolver_calendars(product_id, project_id)
List the content calendars within an Audience Resolver project.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"project_id": {
"type": "string"
}
},
"required": [
"product_id",
"project_id"
]
}🟡create_product(id, name, site_url, default_country, content_enabled, ...)
Create a new product.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Lowercase product id (letters, digits, hyphen, underscore)."
},
"name": {
"type": "string"
},
"site_url": {
"type": "string"
},
"default_country": {
"type": "string"
},
"content_enabled": {
"type": "boolean",
"description": "Enable/disable the content pipeline for this product."
},
"pipeline_type": {
"type": "string",
"enum": [
"seo_intent",
"reward_intent"
]
},
"opportunity_system": {
"type": "string",
"description": "System context for generation prompts: what this product is, in the product's own voice."
},
"opportunity_rules": {
"type": "string",
"description": "What counts as a worthwhile trend/opportunity for this product — used when picking seeds and expanding opportunities."
},
"article_intent_rules": {
"type": "string",
"description": "Structure/intent guidance for generated articles."
},
"intent_creative_direction": {
"type": "string",
"description": "Free-form style/voice guidance for generated content."
},
"seed_picker_rules": {
"type": "string",
"description": "Guidance for the seed-selection step specifically."
},
"content_posting_frequency": {
"type": "string",
"enum": [
"daily",
"3x_week",
"weekly",
"off"
],
"description": "How often this product's connected X account posts autonomous trend tweets. Defaults to 3x_week (Mon/Wed/Fri)."
},
"publish_destinations": {
"type": "array",
"description": "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).",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"webhook",
"x_post",
"ar_calendar"
]
},
"webhook_url": {
"type": "string"
},
"webhook_secret": {
"type": "string"
},
"twitter_account_id": {
"type": "string"
},
"audience_resolver_project_id": {
"type": "string"
},
"audience_resolver_calendar_id": {
"type": "string"
}
},
"required": [
"type"
]
}
},
"audience_resolver_publisher_token": {
"type": "string",
"description": "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."
},
"payment_config": {
"type": "object"
},
"logistics_config": {
"type": "object"
},
"mobile_push": {
"type": "object"
}
},
"required": [
"id",
"name",
"site_url"
]
}🟡update_product(id, name, site_url, default_country, content_enabled, ...)
Update product fields (partial patch — only send fields to change).
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Lowercase product id (letters, digits, hyphen, underscore)."
},
"name": {
"type": "string"
},
"site_url": {
"type": "string"
},
"default_country": {
"type": "string"
},
"content_enabled": {
"type": "boolean",
"description": "Enable/disable the content pipeline for this product."
},
"pipeline_type": {
"type": "string",
"enum": [
"seo_intent",
"reward_intent"
]
},
"opportunity_system": {
"type": "string",
"description": "System context for generation prompts: what this product is, in the product's own voice."
},
"opportunity_rules": {
"type": "string",
"description": "What counts as a worthwhile trend/opportunity for this product — used when picking seeds and expanding opportunities."
},
"article_intent_rules": {
"type": "string",
"description": "Structure/intent guidance for generated articles."
},
"intent_creative_direction": {
"type": "string",
"description": "Free-form style/voice guidance for generated content."
},
"seed_picker_rules": {
"type": "string",
"description": "Guidance for the seed-selection step specifically."
},
"content_posting_frequency": {
"type": "string",
"enum": [
"daily",
"3x_week",
"weekly",
"off"
],
"description": "How often this product's connected X account posts autonomous trend tweets. Defaults to 3x_week (Mon/Wed/Fri)."
},
"publish_destinations": {
"type": "array",
"description": "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).",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"webhook",
"x_post",
"ar_calendar"
]
},
"webhook_url": {
"type": "string"
},
"webhook_secret": {
"type": "string"
},
"twitter_account_id": {
"type": "string"
},
"audience_resolver_project_id": {
"type": "string"
},
"audience_resolver_calendar_id": {
"type": "string"
}
},
"required": [
"type"
]
}
},
"audience_resolver_publisher_token": {
"type": "string",
"description": "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."
},
"payment_config": {
"type": "object"
},
"logistics_config": {
"type": "object"
},
"mobile_push": {
"type": "object"
}
},
"required": [
"product_id"
]
}🔴delete_product(product_id)
Permanently delete a product.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}🟡set_payment_config(product_id, payment_config)
Set/merge the product's payment_config (enable payments, catalog_mode, skus, discount, custom_fields, webhook URLs, return URLs, sandbox).
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"payment_config": {
"type": "object"
}
},
"required": [
"product_id",
"payment_config"
]
}🟡set_logistics_config(product_id, logistics_config)
Set the product's logistics_config.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"logistics_config": {
"type": "object"
}
},
"required": [
"product_id",
"logistics_config"
]
}🟡set_mobile_push_config(product_id, mobile_push)
Set the product's mobile_push config.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"mobile_push": {
"type": "object"
}
},
"required": [
"product_id",
"mobile_push"
]
}🟡upload_product_icon(product_id, image_base64, content_type)
Upload a product icon/logo (base64-encoded JPEG/PNG/WebP, max 2MB).
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"image_base64": {
"type": "string"
},
"content_type": {
"type": "string",
"enum": [
"image/jpeg",
"image/jpg",
"image/png",
"image/webp"
]
}
},
"required": [
"product_id",
"image_base64",
"content_type"
]
}🔴remove_product_icon(product_id)
Remove the product's icon/logo.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}🟢get_webhook_secret(product_id)
Return the product's fulfillment webhook signing secret.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}⚪rotate_webhook_secret(product_id)
Rotate the product's fulfillment webhook signing secret.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}🟢get_onboarding_status(product_id)
Bank-transfer onboarding status (merchant bank, alert inbox, auto-approve).
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
}
}🟡save_merchant_bank(bank_name, account_name, account_number, auto_approve_enabled, product_id, ...)
Save the merchant bank account used to receive bank-transfer payments.
Esquema de entrada
{
"type": "object",
"properties": {
"bank_name": {
"type": "string"
},
"account_name": {
"type": "string"
},
"account_number": {
"type": "string",
"description": "10-digit NUBAN account number."
},
"auto_approve_enabled": {
"type": "boolean"
},
"product_id": {
"type": "string"
},
"alert_source_emails": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"bank_name",
"account_name",
"account_number"
]
}🟡save_alert_sources(alert_source_emails)
Save the allowlist of bank-alert source email addresses.
Esquema de entrada
{
"type": "object",
"properties": {
"alert_source_emails": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"alert_source_emails"
]
}⚪rotate_inbox
Rotate the bank-alert forwarding inbox address.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢list_bank_alert_guides
List supported banks and their alert-forwarding setup guides.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢test_parse_bank_alert(from_addr, subject, text, html)
Test-parse a bank alert email (debug the alert parser).
Esquema de entrada
{
"type": "object",
"properties": {
"from_addr": {
"type": "string"
},
"subject": {
"type": "string"
},
"text": {
"type": "string"
},
"html": {
"type": "string"
}
},
"required": [
"from_addr",
"text"
]
}🟢list_deposits(product_id, status, limit, offset)
List payment deposits for a product.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"expired"
]
},
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
}
},
"required": [
"product_id"
]
}⚪approve_deposit(product_id, deposit_id)
Approve a pending/expired deposit and run fulfillment.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"deposit_id": {
"type": "string"
}
},
"required": [
"product_id",
"deposit_id"
]
}⚪reject_deposit(product_id, deposit_id, reason)
Reject a deposit.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"deposit_id": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"product_id",
"deposit_id"
]
}🟡set_deposit_refund_status(product_id, deposit_id, refund_status, note)
Set the refund_status on an approved deposit.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"deposit_id": {
"type": "string"
},
"refund_status": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"product_id",
"deposit_id",
"refund_status"
]
}⚪resend_deposit_fulfillment(product_id, deposit_id)
Resend/retry fulfillment for an approved deposit.
Esquema de entrada
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"deposit_id": {
"type": "string"
}
},
"required": [
"product_id",
"deposit_id"
]
}🟢list_bank_credits(status)
List unmatched/review bank credits for reconciliation.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"unmatched",
"review",
"matched",
"dismissed"
]
}
}
}⚪assign_bank_credit(credit_id, deposit_id)
Assign an unmatched bank credit to a pending deposit.
Esquema de entrada
{
"type": "object",
"properties": {
"credit_id": {
"type": "string"
},
"deposit_id": {
"type": "string"
}
},
"required": [
"credit_id",
"deposit_id"
]
}⚪dismiss_bank_credit(credit_id)
Dismiss a bank credit as not a sale.
Esquema de entrada
{
"type": "object",
"properties": {
"credit_id": {
"type": "string"
}
},
"required": [
"credit_id"
]
}Comunidad
Evidencia