Product Admin by Nova (CIVAI)
I manage your Nova products, create/update/delete, payment & logistics config, icons, webhook secre…
사용해야 할까요
품질 및 안전성
발견 사항 (6)
- LOWget_webhook_secret에서
- LOWrotate_webhook_secret에서
- LOWassign_bank_credit에서
- LOWdismiss_bank_credit에서
- LOWlist_audience_resolver_projects에서
- LOWlist_audience_resolver_calendars에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"product-admin": {
"url": "https://nova.civai.co/mcp/agents/product-admin"
}
}
}원격 엔드포인트
https://nova.civai.co/mcp/agents/product-adminstreamable-http할 수 있는 일
도구 목록
도구 (30)
🟢list_products
List all products for the signed-in owner.
입력 스키마
{
"type": "object",
"properties": {}
}🟢get_product(product_id)
Return full product detail including payment/logistics/mobile-push config.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}🟢get_webhook_secret(product_id)
Return the product's fulfillment webhook signing secret.
입력 스키마
{
"type": "object",
"properties": {
"product_id": {
"type": "string"
}
},
"required": [
"product_id"
]
}⚪rotate_webhook_secret(product_id)
Rotate the product's fulfillment webhook signing secret.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"alert_source_emails": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"alert_source_emails"
]
}⚪rotate_inbox
Rotate the bank-alert forwarding inbox address.
입력 스키마
{
"type": "object",
"properties": {}
}🟢list_bank_alert_guides
List supported banks and their alert-forwarding setup guides.
입력 스키마
{
"type": "object",
"properties": {}
}🟢test_parse_bank_alert(from_addr, subject, text, html)
Test-parse a bank alert email (debug the alert parser).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"credit_id": {
"type": "string"
}
},
"required": [
"credit_id"
]
}커뮤니티
증거