Skip to main content
Glama

Minds: Synthetic Market Research

List Study Templates

list_study_templates
DestructiveIdempotent

Lists owned/team-shared template summaries, most used first; templateId returns full configuration, revision, questions, response settings and attachments. configuration.questions is the fixed instrument; configuration.methodId the research method it runs with. Listing provisions starters or overwrites eligible untouched older starters. Exact-template reads skip provisioning.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_study_templates"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoTemplates per page, most used first (default 20, max 50).
offsetNoNumber of templates to skip; pass nextOffset from the previous page to continue.
templateIdNoExact template to return in full. Omit to list template summaries.
searchQueryNoCase-insensitive part of the template name; returns every match, paged.

Output Schema

NameRequiredDescriptionDefault
dataNoOne page of template summaries (id, name, revision, methodId, questionCount), or the complete template requested by templateId.
limitNoPage size used.
offsetNoOffset of this page.
nextOffsetNoOffset of the next page; absent on the last page.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.
searchQueryNoThe name search this page answers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Templates per page, most used first (default 20, max 50).",
      +  "maximum": 50,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Number of templates to skip; pass nextOffset from the previous page to continue.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / searchQuery
      Added value: +{
      +  "description": "Case-insensitive part of the template name; returns every match, paged.",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / templateId / description
      Previous value: -"Omit to list your own and team-shared Study templates."New value: +"Exact template to return in full. Omit to list template summaries."
    • changedOutput schema / properties / data / description
      Previous value: -"Study templates."New value: +"One page of template summaries (id, name, revision, methodId, questionCount), or the complete template requested by templateId."
    • addedOutput schema / properties / limit
      Added value: +{
      +  "description": "Page size used.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nextOffset
      Added value: +{
      +  "description": "Offset of the next page; absent on the last page.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "Offset of this page.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / searchQuery
      Added value: +{
      +  "description": "The name search this page answers.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / shownCount
      Added value: +{
      +  "description": "Number of items in this response.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / totalCount
      Added value: +{
      +  "description": "Total number of items available.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "data": {
      +      "description": "Study templates."
      +    }
      +  },
      +  "type": "object"
      +}
  3. Added

TDQS

A4.5/5.0
Behavior5/5

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

The annotations declare destructiveHint=true and readOnlyHint=false, but give no explanation; the description supplies the missing why — 'Listing provisions starters or overwrites eligible untouched older starters' — and scopes the blast radius to 'eligible untouched older starters'. It also states the exception ('Exact-template reads skip provisioning'), which is precisely the behavioral nuance no annotation conveys.

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?

It is front-loaded with the listing behavior before the templateId exception, and each sentence carries distinct information about mode, return shape, or side effect. It is dense and term-heavy ('starters', 'the fixed instrument') to the point of mild ambiguity, and the configuration.questions/methodId sentence sits awkwardly in a listing tool's description.

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?

An output schema exists, so return values need not be explained, yet the description still names the key fields returned by templateId — useful, if slightly redundant. The main unresolved gap is what 'starters' and 'eligible untouched older starters' concretely mean, and searchQuery's behavior is left entirely to the schema; for a tool with a destructive listing side effect, one clarifying clause on eligibility would close the loop.

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

Parameters4/5

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

Schema coverage is 100% and each parameter is described, so the baseline is 3. The description adds genuine meaning beyond the schema for templateId (full configuration, revision, questions, response settings, attachments) and frames configuration.questions as the 'fixed instrument' and configuration.methodId as the method it runs with, which clarifies return-shape semantics rather than argument syntax. It says nothing extra about limit, offset, or searchQuery beyond what the schema already states.

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 first clause gives a specific verb plus resource and scope ('Lists owned/team-shared template summaries, most used first'), then immediately distinguishes the two modes: summary listing vs. 'templateId returns full configuration...'. An agent can tell what this tool does and that it has a dual read shape without opening the schema.

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 clearly states the condition that selects each mode ('templateId returns full configuration', 'Omit to list template summaries') and notes that exact-template reads skip provisioning. The gap is sibling routing: it never points to use_study_template, save_study_template, update_study_template, or delete_study_template for the adjacent template lifecycle operations, which is where an agent is most likely to hesitate.

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.