Skip to main content
Glama

Minds: Synthetic Market Research

List Studies

list_studies
Read-onlyIdempotent

Lists the authenticated user's Studies, most recently updated first, one page at a time: limit (default 20) and offset, with nextOffset to continue. Each row carries the Study's Audiences with their Mind counts, stored message count, sharing state and links. searchQuery filters by name (case-insensitive, all matches, paged). Minds and per-question results come from the Study status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoStudies per page, newest first (default 20, max 100).
offsetNoNumber of Studies to skip; pass nextOffset from the previous page to continue.
searchQueryNoFilters by name (case-insensitive, all matches, paged with limit/offset); the closest name when nothing matches. Omit to browse.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoPage size used.
offsetNoOffset of this page.
studiesNoStudies: id, name, question count, dates, sharing state, Audiences with Mind counts, and links.
nextOffsetNoOffset of the next page; absent on the last page.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / searchQuery / description
      Previous value: -"Search for a Study by name (fuzzy matching supported). Returns the best match."New value: +"Filters by name (case-insensitive, all matches, paged with limit/offset); the closest name when nothing matches. Omit to browse."
  2. Changed10 schema fields changed
    • removedOutput schema / properties / limit / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / limit / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / nextOffset / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / nextOffset / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / offset / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / offset / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / shownCount / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / shownCount / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / totalCount / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / totalCount / type
      Added value: +[
      +  "number",
      +  "null"
      +]
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "limit": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Page size used."
      +    },
      +    "nextOffset": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Offset of the next page; absent on the last page."
      +    },
      +    "offset": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Offset of this page."
      +    },
      +    "shownCount": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Number of items in this response."
      +    },
      +    "studies": {
      +      "anyOf": [
      +        {
      +          "items": {},
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Studies: id, name, question count, dates, sharing state, Audiences with Mind counts, and links."
      +    },
      +    "totalCount": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Total number of items available."
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed3 schema fields changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Studies per page, newest first (default 20, max 100).",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Number of Studies to skip; pass nextOffset from the previous page to continue.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / searchQuery / description
      Previous value: -"Search for a Study by name (fuzzy matching supported)"New value: +"Search for a Study by name (fuzzy matching supported). Returns the best match."
  5. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond them: page-at-a-time iteration with nextOffset, default page size, newest-first ordering, and the notable edge case that searchQuery returns the closest name when nothing matches.

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?

Dense and front-loaded with the resource and ordering first, then pagination, then filtering. The middle sentences are slightly run-on and interleave return-shape detail with parameter behavior, but nearly every clause carries information.

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 fully described, yet the description still summarizes row contents (Audiences, Mind counts, message count, sharing state) and the pagination continuation. Combined with full annotation coverage, an agent has essentially everything needed; only the absence of any routing to sibling list tools leaves a small gap.

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 100%, so the schema already documents limit (default 20, max 100), offset (continue via nextOffset), and searchQuery semantics. The description restates these rather than adding format or syntax detail, so the baseline 3 applies.

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?

States a specific verb and resource (Lists the authenticated user's Studies) plus scope, ordering (most recently updated first), and pagination model. An agent can distinguish it from list_audiences, list_study_drafts, and list_study_templates without opening any 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?

Gives clear context: use searchQuery to filter by name, 'Omit to browse', and explicitly routes detail needs elsewhere ('Minds and per-question results come from the Study status'). It never states exclusions or when a different list tool is preferable (e.g. list_audiences vs this), so it stops short of a 5.

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.