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

A
Calidad de la descripción
88%
Integridad del esquema
74%
Calidad de los nombres
95%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (6)

  • LOWTool 'get_webhook_secret' description lacks action verben get_webhook_secret
  • LOWTool 'rotate_webhook_secret' description lacks action verben rotate_webhook_secret
  • LOWTool 'assign_bank_credit' description lacks action verben assign_bank_credit
  • LOWTool 'dismiss_bank_credit' description lacks action verben dismiss_bank_credit
  • LOWTool 'list_audience_resolver_projects' name length outside 3-30 rangeen list_audience_resolver_projects
  • LOWTool 'list_audience_resolver_calendars' name length outside 3-30 rangeen list_audience_resolver_calendars

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,653Tokens (definiciones de herramientas)
~822 BTamaño de respuesta típico
Impacto significativo en la atención (2.07% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (30)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada30 herramientas