Skip to main content
Glama

Read any presentation

read_presentation
Read-onlyIdempotent

Read any presentation you can see (not private, or shared with you) the way a person sees it: slide by slide, the texts in reading order, pictures' descriptions, code, and where every button or link leads. A card (a shape with a link and the blocks on it that lead to the same place) is one entry of type "card" with the ids of all its blocks. format "markdown" (default) is compact; "json" is structured.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoRead the texts in this language (default: the one it is written in); what is not translated shows in its own language.
slugYesThe presentation's slug (its address: /movie/<slug>/).
formatNoResult format: "markdown" (default, compact) or "json" (structured).
slide_idsNoOnly these slides (ids).
to_numberNoOnly the slides up to this number (inclusive).
from_numberNoOnly the slides from this number on (1-based).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
urlNoThe address people open in a browser.
langNoThe language its texts are written in; "tr" holds the others.
slugNoThe address of the presentation: /movie/<slug>/.
ownerNoUser name of the author.
themeNo
titleNo
accessNoopen, public or private.
slidesNo
projectNoThe project it belongs to, or null.
versionNoStamp of the content as it is now: give it back as "base_version" to change it only if nobody else did meanwhile.
can_editNoWhether you may change it.
markdownNo
title_trNoThe same text in the other languages of the site: {"en": "..."}.
languagesNoThe languages of the site.
shown_langNoThe language of the texts shown.
cover_slideNoId of the slide shown as its cover in the lists (null: an uploaded picture, or no slides).
descriptionNo
slides_totalNoSlides of the whole presentation (a part may be shown).
missing_translationsNoWhat is not translated yet into the other languages of the site (add it): the first ones; "missing_translations_count" says how many there are.
missing_translations_countNoHow many texts are not translated yet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / from_number
      Added value: +{
      +  "description": "Only the slides from this number on (1-based).",
      +  "type": "integer"
      +}
    • addedInput schema / properties / slide_ids
      Added value: +{
      +  "description": "Only these slides (ids).",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / to_number
      Added value: +{
      +  "description": "Only the slides up to this number (inclusive).",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / missing_translations / description
      Previous value: -"What is not translated yet into the other languages of the site (add it)."New value: +"What is not translated yet into the other languages of the site (add it): the first ones; \"missing_translations_count\" says how many there are."
    • addedOutput schema / properties / missing_translations_count
      Added value: +{
      +  "description": "How many texts are not translated yet.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / slides_total
      Added value: +{
      +  "description": "Slides of the whole presentation (a part may be shown).",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / version
      Added value: +{
      +  "description": "Stamp of the content as it is now: give it back as \"base_version\" to change it only if nobody else did meanwhile.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / cover_slide
      Added value: +{
      +  "description": "Id of the slide shown as its cover in the lists (null: an uploaded picture, or no slides).",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
  3. Changed6 schema fields changed
    • addedInput schema / properties / lang
      Added value: +{
      +  "description": "Read the texts in this language (default: the one it is written in); what is not translated shows in its own language.",
      +  "enum": [
      +    "ru",
      +    "en"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / lang
      Added value: +{
      +  "description": "The language its texts are written in; \"tr\" holds the others.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / languages
      Added value: +{
      +  "description": "The languages of the site.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / missing_translations
      Added value: +{
      +  "description": "What is not translated yet into the other languages of the site (add it).",
      +  "items": {
      +    "properties": {
      +      "block_id": {
      +        "type": "integer"
      +      },
      +      "lang": {
      +        "type": "string"
      +      },
      +      "slide_id": {
      +        "type": "integer"
      +      },
      +      "slide_number": {
      +        "type": "integer"
      +      },
      +      "what": {
      +        "description": "title, slide name or block.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / shown_lang
      Added value: +{
      +  "description": "The language of the texts shown.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / title_tr
      Added value: +{
      +  "description": "The same text in the other languages of the site: {\"en\": \"...\"}.",
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / project
      Added value: +{
      +  "description": "The project it belongs to, or null.",
      +  "properties": {
      +    "slug": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  5. Changed2 schema fields changed
    • addedInput schema / properties / format / description
      Added value: +"Result format: \"markdown\" (default, compact) or \"json\" (structured)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "With format \"markdown\" (default): {\"markdown\"}; with \"json\": the presentation slide by slide.",
      +  "properties": {
      +    "access": {
      +      "description": "open, public or private.",
      +      "type": "string"
      +    },
      +    "can_edit": {
      +      "description": "Whether you may change it.",
      +      "type": "boolean"
      +    },
      +    "description": {
      +      "type": "string"
      +    },
      +    "id": {
      +      "type": "integer"
      +    },
      +    "markdown": {
      +      "type": "string"
      +    },
      +    "owner": {
      +      "description": "User name of the author.",
      +      "type": "string"
      +    },
      +    "slides": {
      +      "items": {
      +        "properties": {
      +          "blocks": {
      +            "description": "Texts, pictures, code and links in reading order.",
      +            "items": {
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "has_background_picture": {
      +            "type": "boolean"
      +          },
      +          "id": {
      +            "type": "integer"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "number": {
      +            "type": "integer"
      +          },
      +          "url": {
      +            "description": "The address people open in a browser.",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "slug": {
      +      "description": "The address of the presentation: /movie/<slug>/.",
      +      "type": "string"
      +    },
      +    "theme": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "The address people open in a browser.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  6. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral value by describing the nature of the returned content (person-like slide-by-slide reading, image descriptions, link destinations, and the 'card' aggregation concept), which goes beyond the annotation set.

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 the core action and appropriately sized for a rich read tool. The parenthetical defining a 'card' is slightly tangential but earns its place by explaining a json output entry type.

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?

With an output schema present, the description need not enumerate return values, yet it still conveys the shape of the content and the format trade-off. Combined with complete annotations and full schema coverage, an agent has enough to invoke it correctly; only sibling disambiguation is missing.

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% and every parameter (lang, slug, format, slide_ids, from_number, to_number) is documented in the schema itself. The description only restates the markdown-vs-json format distinction and the card concept, adding no syntax or behavioral detail beyond the structured fields, so baseline 3 applies.

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 a specific verb (read) and resource (presentation) and details exactly what 'reading' yields: slide-by-slide text in reading order, picture descriptions, code, and link targets. It is clear and concrete, but never names the obvious competing siblings (get_presentation, preview_slides, get_slide, export_presentation), so an agent cannot tell from the description alone why it should prefer this tool.

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

Usage Guidelines3/5

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

It gives an access precondition ('any presentation you can see (not private, or shared with you)'), which is useful scoping, but there is no explicit when-to-use-vs-alternative guidance despite several overlapping read tools in the sibling list. Usage is implied rather than stated.

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