Skip to main content
Glama

List Studies

list_studies
Read-onlyIdempotent

List lightweight studies, sorted by updated_at descending then ID. Filter before pagination by provisioning status, recruiting method, creation date, or report availability. interview_count is completed visible non-test interviews; use get_study for the full plan, screeners, and targeting.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
statusNo
page_sizeNo
has_reportNo
created_afterNo
organization_idNoPlatform admins only: select an organization for this operation. Required when changing another organization’s study or using its wallet.
recruiting_methodNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYesPaginated study summaries.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / organization_id
      Added value: +{
      +  "description": "Platform admins only: select an organization for this operation. Required when changing another organization’s study or using its wallet.",
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Changed30 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / created_after / pattern
      Added value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • addedInput schema / properties / page / maximum
      Added value: +9007199254740991
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / properties / result / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / result / properties / page / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / result / properties / page_size / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / result / properties / studies / items / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / result / properties / studies / items / properties / byop_config / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / result / properties / studies / items / properties / byop_config / properties / auto_send_incentives / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/byop_config/properties/is_incentives_enabled"
    • addedOutput schema / properties / result / properties / studies / items / properties / byop_config / properties / auto_send_incentives / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / result / properties / studies / items / properties / dashboard_url / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/name"
    • addedOutput schema / properties / result / properties / studies / items / properties / dashboard_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / result / properties / studies / items / properties / expected_duration_seconds / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / result / properties / studies / items / properties / expected_duration_seconds / minimum
      Added value: +-9007199254740991
    • changedOutput schema / properties / result / properties / studies / items / properties / interview_count / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / result / properties / studies / items / properties / language / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/name"
    • addedOutput schema / properties / result / properties / studies / items / properties / language / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / result / properties / studies / items / properties / recruiting_method / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/name"
    • addedOutput schema / properties / result / properties / studies / items / properties / recruiting_method / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / result / properties / studies / items / properties / study_link / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/name"
    • addedOutput schema / properties / result / properties / studies / items / properties / study_link / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / result / properties / studies / items / properties / updated_at / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/created_at"
    • addedOutput schema / properties / result / properties / studies / items / properties / updated_at / description
      Added value: +"ISO 8601 timestamp."
    • addedOutput schema / properties / result / properties / studies / items / properties / updated_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / result / properties / studies / items / properties / use_case / $ref
      Removed value: -"#/properties/result/properties/studies/items/properties/name"
    • addedOutput schema / properties / result / properties / studies / items / properties / use_case / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / result / properties / total_count / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / result / properties / total_count / minimum
      Added value: +-9007199254740991
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, the description adds useful behavioral context: the sort order (updated_at descending then ID), the instruction to filter before pagination, and the meaning of interview_count (completed visible non-test interviews). It does not cover rate limits or authentication, but with strong annotation coverage this is largely sufficient.

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

Conciseness5/5

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

The description is three tight sentences with no wasted words. It front-loads the core action and sorting, then adds filtering behavior, and finally clarifies a key output field and points to the alternative tool.

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?

Given 8 optional parameters, rich annotations, and an existing output schema, the description covers the essential behaviors (lightweight listing, sorting, filtering, interview_count semantics, and the get_study alternative). It is slightly incomplete in not explaining the name parameter, but overall it provides enough context for correct invocation.

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 only 13%, so the description must compensate, and it partially does by mapping four filter categories to parameters (provisioning status → status, recruiting method → recruiting_method, creation date → created_after, report availability → has_report). However, it omits any mention of name, page, and page_size, leaving three parameters undocumented beyond their schema types.

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 states a specific verb (List) and resource (lightweight studies), including the ordering (updated_at descending then ID). It also distinguishes this tool from get_study by indicating that this returns lightweight data and directing users to get_study for the full plan, screeners, and targeting.

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

Usage Guidelines5/5

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

The description explicitly names the alternative tool (get_study) and the condition under which to use it (when you need the full plan, screeners, and targeting). It also notes that filtering should happen before pagination, giving clear operational guidance.

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