Skip to main content
Glama

perspective_list_conversations

Read-onlyIdempotent

Lists conversations for a perspective, with optional filters by status, trust score range, and date range. Each item includes conversation_id, status, structured-output fields, trust score, and a transcript URL. Opt in to stored participant metadata via include_participant_metadata=true.

Behavior:

  • Read-only.

  • Errors when the perspective is not found or you do not have access.

  • Pass nextCursor back as cursor for the next page. Empty results return an empty array.

  • This list view does NOT include transcripts or summaries — metadata only.

  • participant_metadata is omitted by default. When include_participant_metadata=true, it is the stored flat string map, matching exports and webhooks without prompt sanitization or truncation, or null when no metadata exists. Request it only when participant context is needed; full maps can be large.

  • date_from / date_to must be ISO 8601 strings (e.g. "2026-04-28T00:00:00Z"). Malformed dates are rejected at the schema level rather than silently treated as no-filter.

When to use this tool:

  • Picking specific conversations by status / trust / date before deep-diving.

  • Showing the user a browsable list of responses.

When NOT to use this tool:

  • Need transcript or summary for one conversation — use perspective_get_conversation.

  • Bulk analysis across many conversations — use perspective_get_conversations (batch with optional transcripts).

  • Aggregate counts/rates only — use perspective_get_stats.

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": {
      "workspace_id": "<workspace_id>",
      "perspective_id": "<perspective_id>"
    },
    "name": "perspective_list_conversations"
  }
}

Input Schema

NameRequiredDescriptionDefault
cursorNoPagination cursor from previous response
statusNoFilter by conversation status
date_toNoFilter to date (ISO 8601)
date_fromNoFilter from date (ISO 8601)
workspace_idYesWorkspace ID (from workspace_get_default or workspace_list) or workspace slug (uniqueName)
perspective_idYesPerspective ID (from perspective_list or perspective_create)
trust_score_maxNoMaximum trust score (0-100)
trust_score_minNoMinimum trust score (0-100)
include_participant_metadataNoInclude full stored participant metadata maps. Default false to reduce payload size and unnecessary data exposure. Set true only when participant context is needed.

Output Schema

NameRequiredDescriptionDefault
errorNo
has_moreYesTrue if more results exist beyond this page
nextCursorYesCursor for next page, null if no more results
conversationsYes
perspective_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / cursor / maxLength
      Added value: +128
    • addedInput schema / properties / date_from / maxLength
      Added value: +40
    • addedInput schema / properties / date_to / maxLength
      Added value: +40
    • addedInput schema / properties / perspective_id / maxLength
      Added value: +128
    • addedInput schema / properties / workspace_id / maxLength
      Added value: +128
  2. Changed2 schema fields changed
    • addedInput schema / properties / include_participant_metadata
      Added value: +{
      +  "default": false,
      +  "description": "Include full stored participant metadata maps. Default false to reduce payload size and unnecessary data exposure. Set true only when participant context is needed.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / conversations / items / properties / participant_metadata
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Stored participant metadata as a flat string map, matching export participant.metadata and webhook participant_metadata. Values are not prompt-sanitized or truncated. Null when no metadata exists."
      +}
  3. Changed10 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"
    • changedInput schema / properties / date_from / pattern
      Previous 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)))$"New 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)))$"
    • changedInput schema / properties / date_to / pattern
      Previous 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)))$"New 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)))$"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / properties / conversations / items / properties / completed_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / conversations / items / properties / completed_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / conversations / items / properties / trust_score / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / conversations / items / properties / trust_score / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / nextCursor / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / nextCursor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  4. Changed4 schema fields changed
    • addedInput schema / properties / date_from / format
      Added value: +"date-time"
    • addedInput schema / properties / date_from / 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 / date_to / format
      Added value: +"date-time"
    • addedInput schema / properties / date_to / 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)))$"
  5. Changed2 schema fields changed
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "True if more results exist beyond this page",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "perspective_id",
      -  "conversations",
      -  "nextCursor"
      -]New value: +[
      +  "perspective_id",
      +  "conversations",
      +  "nextCursor",
      +  "has_more"
      +]
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds material context beyond them: error conditions (perspective not found / no access), pagination via nextCursor, empty-result behavior, and the important caveat that this view excludes transcripts and summaries. It also warns that participant metadata maps can be large and should be requested only when needed.

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?

Front-loaded with purpose and return shape, then organized under clear Behavior / When to use / When NOT to use headings, so every bullet is scannable. It runs long and repeats the participant-metadata caveat in both the opening and the Behavior section, which is mild redundancy.

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

Completeness5/5

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

Covers filtering, pagination, error paths, payload-size tradeoffs, and the negative scope of what is not returned. With an output schema present, the description need not define return types, and nothing an agent needs to call this correctly is missing.

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%, so the baseline is 3; the description still earns extra credit by specifying ISO 8601 date syntax with an example and noting malformed dates are rejected at the schema level rather than silently ignored, plus explaining the null/sanitization semantics of participant_metadata. It does not explain how trust_score_min/max interact or how cursor expiry works.

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?

Opens with a specific verb+resource ('Lists conversations for a perspective') and immediately scopes it with the available filters and the per-item fields returned. An agent can distinguish it from perspective_get_conversation, perspective_get_conversations, and perspective_get_stats without opening a schema.

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?

Has explicit 'When to use' and 'When NOT to use' sections, and each exclusion names the correct alternative (perspective_get_conversation for transcripts, perspective_get_conversations for bulk, perspective_get_stats for aggregates). This is the full routing information an agent needs.

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.