Skip to main content
Glama

Product Admin by Nova (CIVAI)

update_product

Update product fields (partial patch — only send fields to change).

Input Schema

NameRequiredDescriptionDefault
idNoLowercase product id (letters, digits, hyphen, underscore).
nameNo
site_urlNo
mobile_pushNo
pipeline_typeNo
payment_configNo
content_enabledNoEnable/disable the content pipeline for this product.
default_countryNo
logistics_configNo
opportunity_rulesNoWhat counts as a worthwhile trend/opportunity for this product — used when picking seeds and expanding opportunities.
seed_picker_rulesNoGuidance for the seed-selection step specifically.
opportunity_systemNoSystem context for generation prompts: what this product is, in the product's own voice.
article_intent_rulesNoStructure/intent guidance for generated articles.
publish_destinationsNoWhere 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_marketsNoISO-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_frequencyNoWhen 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_directionNoFree-form style/voice guidance for generated content.
audience_resolver_publisher_tokenNoPublisher 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / content_target_markets
      Added value: +{
      +  "description": "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.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. Changed4 schema fields changed
    • addedInput schema / properties / content_posting_frequency / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "daily",
      +      "3x_week",
      +      "weekly",
      +      "off"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "properties": {
      +      "days": {
      +        "items": {
      +          "enum": [
      +            "mon",
      +            "tue",
      +            "wed",
      +            "thu",
      +            "fri",
      +            "sat",
      +            "sun"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "posts_per_day": {
      +        "maximum": 5,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "time": {
      +        "description": "HH:MM, 24-hour, Africa/Lagos",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "days"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / content_posting_frequency / description
      Previous value: -"How often this product's connected X account posts autonomous trend tweets. Defaults to 3x_week (Mon/Wed/Fri)."New value: +"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}."
    • removedInput schema / properties / content_posting_frequency / enum
      Removed value: -[
      -  "daily",
      -  "3x_week",
      -  "weekly",
      -  "off"
      -]
    • removedInput schema / properties / content_posting_frequency / type
      Removed value: -"string"
  3. Changed6 schema fields changed
    • addedInput schema / properties / article_intent_rules
      Added value: +{
      +  "description": "Structure/intent guidance for generated articles.",
      +  "type": "string"
      +}
    • addedInput schema / properties / content_posting_frequency
      Added value: +{
      +  "description": "How often this product's connected X account posts autonomous trend tweets. Defaults to 3x_week (Mon/Wed/Fri).",
      +  "enum": [
      +    "daily",
      +    "3x_week",
      +    "weekly",
      +    "off"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / intent_creative_direction
      Added value: +{
      +  "description": "Free-form style/voice guidance for generated content.",
      +  "type": "string"
      +}
    • addedInput schema / properties / opportunity_rules
      Added value: +{
      +  "description": "What counts as a worthwhile trend/opportunity for this product — used when picking seeds and expanding opportunities.",
      +  "type": "string"
      +}
    • addedInput schema / properties / opportunity_system
      Added value: +{
      +  "description": "System context for generation prompts: what this product is, in the product's own voice.",
      +  "type": "string"
      +}
    • addedInput schema / properties / seed_picker_rules
      Added value: +{
      +  "description": "Guidance for the seed-selection step specifically.",
      +  "type": "string"
      +}
  4. Changed5 schema fields changed
    • addedInput schema / properties / audience_resolver_publisher_token
      Added value: +{
      +  "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.",
      +  "type": "string"
      +}
    • changedInput schema / properties / publish_destinations / description
      Previous value: -"Where generated content publishes to. Each entry is either {type: 'webhook', webhook_url, webhook_secret?} or {type: 'x_post', twitter_account_id}."New value: +"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)."
    • addedInput schema / properties / publish_destinations / items / properties / audience_resolver_calendar_id
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / publish_destinations / items / properties / audience_resolver_project_id
      Added value: +{
      +  "type": "string"
      +}
    • changedInput schema / properties / publish_destinations / items / properties / type / enum
      Previous value: -[
      -  "webhook",
      -  "x_post"
      -]New value: +[
      +  "webhook",
      +  "x_post",
      +  "ar_calendar"
      +]
  5. Changed2 schema fields changed
    • addedInput schema / properties / content_enabled
      Added value: +{
      +  "description": "Enable/disable the content pipeline for this product.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / publish_destinations
      Added value: +{
      +  "description": "Where generated content publishes to. Each entry is either {type: 'webhook', webhook_url, webhook_secret?} or {type: 'x_post', twitter_account_id}.",
      +  "items": {
      +    "properties": {
      +      "twitter_account_id": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "webhook",
      +          "x_post"
      +        ],
      +        "type": "string"
      +      },
      +      "webhook_secret": {
      +        "type": "string"
      +      },
      +      "webhook_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  6. First observed

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose genuinely useful behavior — patch semantics implying unspecified fields are preserved — but says nothing about permissions/auth, whether changes are reversible, or side effects such as triggering content regeneration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste, and the parenthetical earns its place by conveying patch semantics rather than restating the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter tool with nested objects, an enum, no annotations, and no output schema, the description is far too thin. It leaves the sibling-overlap ambiguity unresolved and provides no signal about which fields matter or what the response looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 61% across 18 parameters, so seven fields (name, site_url, mobile_push, pipeline_type, payment_config, default_country, logistics_config) are undocumented in both schema and description. The description adds only the generic patch instruction and no per-field meaning, so it does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update product fields') and the parenthetical clarifies the mutation style (partial patch). The name alone already separates it from create_product/delete_product/get_product siblings, but the description does not itself contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Only send fields to change' is an invocation hint, not usage guidance. Nothing tells the agent when to use this tool rather than the overlapping siblings set_payment_config, set_logistics_config, set_mobile_push_config, or connect_audience_resolver, which all touch fields present in this schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources