Skip to main content
Glama

devtune_list_positioning_answers

Read-onlyIdempotent

List the AI answers behind one positioning match cell: the statement (statementId) and who it credits (assignee: a brand id, or another_product, several or nobody), over the same window, filters and current competitor set as devtune_get_positioning, so the count matches that cell. Newest first; pass nextCursor verbatim for the next page and keep the other arguments unchanged. A page of exactly 100 rows reports more even when it is the last, so the following page can be empty. Each answer names its prompt, platform, date and verdict confidence; promptDeleted means the prompt has since been removed. Verdicts carry no quote, so read the answer itself for the wording.

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": {
      "statementId": "<statementId>",
      "assignee": "<assignee>"
    },
    "name": "devtune_list_positioning_answers"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoResults per page.
cursorNo
intentNo
windowNo
assigneeYes
pageSizeNoThe same setting as limit. Send either.
platformNo
statementIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / assignee / anyOf
      Previous value: -[
      -  {
      -    "format": "uuid",
      -    "type": "string"
      -  },
      -  {
      -    "enum": [
      -      "another_product",
      -      "several",
      -      "nobody"
      -    ],
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "format": "uuid",
      +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +    "type": "string"
      +  },
      +  {
      +    "enum": [
      +      "another_product",
      +      "several",
      +      "nobody"
      +    ],
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / pageSize / $ref
      Removed value: -"#/properties/limit"
    • addedInput schema / properties / pageSize / maximum
      Added value: +100
    • addedInput schema / properties / pageSize / minimum
      Added value: +1
    • addedInput schema / properties / pageSize / type
      Added value: +"integer"
    • addedInput schema / properties / statementId / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / window / anyOf
      Added value: +[
      +  {
      +    "const": "30",
      +    "type": "string"
      +  },
      +  {
      +    "const": "90",
      +    "type": "string"
      +  },
      +  {
      +    "const": 30,
      +    "type": "number"
      +  },
      +  {
      +    "const": 90,
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / window / enum
      Removed value: -[
      -  "30",
      -  "90",
      -  30,
      -  90
      -]
    • removedInput schema / properties / window / type
      Removed value: -[
      -  "string",
      -  "number"
      -]
  2. Changed3 schema fields changed
    • removedInput schema / properties / limit / default
      Removed value: -25
    • addedInput schema / properties / limit / description
      Added value: +"Results per page."
    • addedInput schema / properties / pageSize
      Added value: +{
      +  "$ref": "#/properties/limit",
      +  "description": "The same setting as limit. Send either."
      +}
  3. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark this read-only, idempotent and closed-world, and the description goes well beyond that: newest-first ordering, a pagination quirk where a full page of 100 falsely signals more results, the returned fields (prompt, platform, date, verdict confidence), the promptDeleted flag, and the caveat that verdicts carry no quote so the answer text must be read for wording. That is exactly the operational context annotations cannot supply.

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?

Purpose is front-loaded before the paging and return-shape caveats, and the pagination edge case and promptDeleted note genuinely earn their space. The single dense paragraph could be broken up, but there is little filler text.

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

Completeness4/5

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

With no output schema and 8 parameters at low schema coverage, the description covers return fields, ordering, paging behavior and the assignee semantics well enough for correct invocation. The remaining gap is that filter parameters (window, platform, intent) are only alluded to via 'same window, filters' without local meaning.

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 coverage is only 25%, so the description has to carry weight; it does explain statementId and the assignee value space (a brand id, or another_product/several/nobody), plus cursor paging. But window, platform, intent and the limit/pageSize equivalence are left entirely to the schema, and it calls the cursor 'nextCursor' while the actual parameter is 'cursor', forcing the agent to reconcile the name.

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

Purpose5/5

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

The description names a specific verb and resource ('List the AI answers behind one positioning match cell') and immediately scopes it to a single cell defined by statementId plus assignee. It explicitly ties the result set to devtune_get_positioning so an agent knows this is the drill-down companion, not a general answer listing.

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

Usage Guidelines4/5

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

It gives clear operational guidance: use the same window, filters and competitor set as devtune_get_positioning so counts agree, and pass the cursor verbatim while holding other arguments unchanged. It stops short of explicit when-not-to-use cases or naming a sibling as the alternative for a different kind of answer listing.

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