Skip to main content
Glama

presentation_read

Read-onlyIdempotent

Access the presentation read operations listed below. Compatibility dispatcher; prefer the individually named tool when available. Select operation and its matching payload. Supported operations: get_pending_presentation_requests, get_presentation, get_presentation_authoring_brief, list_presentations. Effects and required fields depend on that operation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
payloadYesArguments for the selected operation. Follow its matching oneOf branch; fields and side effects differ by operation.
operationYesExact operation to dispatch; prefer its individually named tool when available.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "operation": {
      -        "const": "get_pending_presentation_requests",
      -        "type": "string"
      -      },
      -      "payload": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "executionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "presentationId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "projectId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "requestId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "sessionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "projectId"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "payload"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "operation": {
      -        "const": "get_presentation",
      -        "type": "string"
      -      },
      -      "payload": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "executionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "presentationId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "projectId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "requestId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "sessionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "projectId",
      -          "presentationId"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "payload"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "operation": {
      -        "const": "get_presentation_authoring_brief",
      -        "type": "string"
      -      },
      -      "payload": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "executionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "presentationId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "projectId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "requestId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "sessionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "projectId",
      -          "requestId"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "payload"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "operation": {
      -        "const": "list_presentations",
      -        "type": "string"
      -      },
      -      "payload": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "executionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "presentationId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "projectId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "requestId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          },
      -          "sessionId": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "projectId"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "payload"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "operation": {
      +        "const": "get_pending_presentation_requests",
      +        "description": "Select this exact operation; payload must match this branch.",
      +        "type": "string"
      +      },
      +      "payload": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "executionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "presentationId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "projectId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "requestId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "sessionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "projectId"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "operation",
      +      "payload"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "operation": {
      +        "const": "get_presentation",
      +        "description": "Select this exact operation; payload must match this branch.",
      +        "type": "string"
      +      },
      +      "payload": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "executionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "presentationId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "projectId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "requestId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "sessionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "projectId",
      +          "presentationId"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "operation",
      +      "payload"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "operation": {
      +        "const": "get_presentation_authoring_brief",
      +        "description": "Select this exact operation; payload must match this branch.",
      +        "type": "string"
      +      },
      +      "payload": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "executionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "presentationId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "projectId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "requestId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "sessionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "projectId",
      +          "requestId"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "operation",
      +      "payload"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "operation": {
      +        "const": "list_presentations",
      +        "description": "Select this exact operation; payload must match this branch.",
      +        "type": "string"
      +      },
      +      "payload": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "executionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "presentationId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "projectId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "requestId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          },
      +          "sessionId": {
      +            "description": "Owned project ID returned by list_linked_projects or map_project; do not use a local path or repository URL.",
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+~-]*$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "projectId"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "operation",
      +      "payload"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / operation / description
      Added value: +"Exact operation to dispatch; prefer its individually named tool when available."
    • addedInput schema / properties / payload / description
      Added value: +"Arguments for the selected operation. Follow its matching oneOf branch; fields and side effects differ by operation."
  2. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that 'effects and required fields depend on that operation,' which is genuinely useful context for a dispatcher but remains vague — it doesn't say what each operation returns or what side effects differ. With annotations doing the heavy lifting, a 3 is appropriate.

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?

Four compact sentences, front-loaded with the dispatcher role before the operation list and the routing preference. Every sentence contributes; no filler.

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

Completeness3/5

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

For a dispatcher fanning out to four operations with no output schema, the description lists the operations but never explains what each one does or returns (e.g., get_presentation vs list_presentations), leaving the agent to infer semantics from sibling tool names. Adequate given the sibling tools exist, but not complete on its own.

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 baseline is 3. The description adds that the required fields and payload shape vary by selected operation, which is real value over the schema — especially since the schema's per-field descriptions are boilerplate (every field, including requestId/sessionId/presentationId, repeats the projectId description), meaning the description does not compensate for that misleading schema text.

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

Purpose4/5

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

The description states this is a compatibility dispatcher for presentation read operations and enumerates all four supported operations (get_pending_presentation_requests, get_presentation, get_presentation_authoring_brief, list_presentations). It distinguishes itself from siblings by explicitly directing the agent to the individually named tools. The 'read' verb plus the operation list makes the resource scope clear.

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 explicit routing guidance: 'prefer the individually named tool when available,' which names the alternative set and the condition selecting it. It does not spell out when this dispatcher itself is the correct choice (presumably only when the individual tools are unavailable), leaving a small gap, but the exclusion guidance is unusually clear.

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