Skip to main content
Glama

extensions_propose

Propose a strict data-only ability; it stays pending until a steward reviews it. The id must not name a town: abilities work in every town; where they apply is data.

Input Schema

NameRequiredDescriptionDefault
idNoAn id such as commons.golf-round.
kindNo'commons' for a group's own use; 'commercial' for a business offer.
titleNoWhat it is called, at most 40 characters.
tokenNo
fieldsNoAt most 8 fields.
purposeNoOne sentence: what it helps a group know, at most 300 characters.
versionNo1 for a new ability; a changed one is the next version.
closesGapNo
extensionNoThe whole definition as one object { id, version, kind, title, purpose, fields }; or send those fields flat instead.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / fields / description
      Previous value: -"At most 8 fields. Each has key (^[a-z][a-zA-Z0-9]{0,31}$), label and type: text (with maxLength 1-80), number or range (optional min, max), choice (options), or yesno."New value: +"At most 8 fields."
    • changedInput schema / properties / id / description
      Previous value: -"Lowercase words joined by dots or hyphens, e.g. commons.golf-round or running-distance (pattern ^[a-z0-9]+(\\.[a-z0-9-]+)+$). Ids starting fathom, core or platform are reserved."New value: +"An id such as commons.golf-round."
    • changedInput schema / properties / kind / description
      Previous value: -"'commons' for a group's own use; 'commercial' for a business offer. Defaults to commons."New value: +"'commons' for a group's own use; 'commercial' for a business offer."
    • changedInput schema / properties / purpose / description
      Previous value: -"One sentence: what it helps a group know, at most 300 characters. No money, no personal data, never a condition for joining."New value: +"One sentence: what it helps a group know, at most 300 characters."
  2. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"Lowercase words joined by dots, e.g. commons.golf-round (pattern ^[a-z0-9]+(\\.[a-z0-9-]+)+$). Ids starting fathom, core or platform are reserved."New value: +"Lowercase words joined by dots or hyphens, e.g. commons.golf-round or running-distance (pattern ^[a-z0-9]+(\\.[a-z0-9-]+)+$). Ids starting fathom, core or platform are reserved."
  3. Changed11 schema fields changed
    • addedInput schema / properties / extension / description
      Added value: +"The whole definition as one object { id, version, kind, title, purpose, fields }; or send those fields flat instead."
    • addedInput schema / properties / fields / description
      Added value: +"At most 8 fields. Each has key (^[a-z][a-zA-Z0-9]{0,31}$), label and type: text (with maxLength 1-80), number or range (optional min, max), choice (options), or yesno."
    • addedInput schema / properties / fields / items / oneOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "maxLength": {
      +        "type": "number"
      +      },
      +      "type": {
      +        "const": "text",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "type",
      +      "maxLength"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "max": {
      +        "type": "number"
      +      },
      +      "min": {
      +        "type": "number"
      +      },
      +      "type": {
      +        "enum": [
      +          "number",
      +          "range"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "options": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "choice",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "type",
      +      "options"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "yesno",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / id / description
      Added value: +"Lowercase words joined by dots, e.g. commons.golf-round (pattern ^[a-z0-9]+(\\.[a-z0-9-]+)+$). Ids starting fathom, core or platform are reserved."
    • addedInput schema / properties / kind
      Added value: +{
      +  "description": "'commons' for a group's own use; 'commercial' for a business offer. Defaults to commons.",
      +  "enum": [
      +    "commons",
      +    "commercial"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / purpose / description
      Added value: +"One sentence: what it helps a group know, at most 300 characters. No money, no personal data, never a condition for joining."
    • addedInput schema / properties / title / description
      Added value: +"What it is called, at most 40 characters."
    • addedInput schema / properties / version / description
      Added value: +"1 for a new ability; a changed one is the next version."
    • addedInput schema / properties / version / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / version / minimum
      Added value: +-9007199254740991
    • changedInput schema / properties / version / type
      Previous value: -"number"New value: +"integer"
  4. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, open-world, non-destructive operation. The description adds useful behavioral context beyond that: the proposal stays pending until a steward reviews it, and the id must not name a town because abilities work in every town. It does not explain token/auth needs, but with annotations covering the safety profile this is solid.

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

Conciseness4/5

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

The description is two front-loaded sentences with no filler. The second sentence is dense and semicolon-heavy, but every clause carries a real constraint, so it is appropriately sized for the tool.

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

Completeness3/5

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

The description covers the key workflow (pending steward review) and the critical id constraint. However, for a 9-parameter write/proposal tool with no output schema, it does not address token semantics, closesGap, requiredness, or what happens after submission, so it is adequate but incomplete.

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

Parameters3/5

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

Schema description coverage is 78%, so the schema already carries most parameter meaning. The description adds an important semantic constraint for id (must not name a town; applicability is data), but it does not explain token or closesGap, leaving clear gaps for a 9-parameter tool.

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?

The description states a specific verb and resource: propose a strict data-only ability, with the added detail that it stays pending until steward review. It is clearly distinct from list/withdraw/report-gap siblings by implication, but it does not explicitly name or differentiate itself from other proposal tools such as propose_type or views_propose.

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

Usage Guidelines3/5

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

Usage is implied: call this when proposing a new data-only ability, which will remain pending until steward review. However, there is no explicit when-not guidance, no named alternatives, and no explanation of when to use extensions_propose versus propose_type or views_propose.

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