Skip to main content
Glama

Product Admin by Nova (CIVAI)

create_product

Create a new product.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>",
      "name": "<name>",
      "site_url": "<site_url>"
    },
    "name": "create_product"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesLowercase product id (letters, digits, hyphen, underscore).
nameYes
site_urlYes
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

C2/5.0
Behavior1/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, yet it discloses nothing beyond the bare purpose sentence. It says nothing about side effects, required permissions, generated content pipelines, publishing destinations, or defaults for the many optional config fields — all of which are material for an 18-parameter mutation.

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

Conciseness2/5

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

A single short sentence is technically concise, but here the brevity reflects under-specification rather than efficiency — the sentence only restates the tool name and earns no additional place in the definition.

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

Completeness1/5

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

For an 18-parameter mutation tool with nested objects, an enum, no annotations, and no output schema, the description is completely inadequate. An agent receives no information about required inputs, side effects, or defaults needed to call it correctly.

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 coverage is only 61%, and the description supplies no parameter meaning at all. Notably, the required fields 'name' and 'site_url' have no descriptions anywhere, and the description does not mention required fields, the id format requirement, or the mutually exclusive publish destination shapes.

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

Purpose3/5

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

"Create a new product" states a verb and a resource, so the basic intent is decipherable, but it adds nothing beyond what the tool name create_product already conveys. It does not distinguish this tool from siblings like update_product, delete_product, or get_product in any substantive way.

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?

There is no indication of when to use this tool versus update_product, get_product, or list_products, nor any prerequisites such as which fields are mandatory. The agent is left to infer the entire usage context from the sibling names.

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