Skip to main content
Glama

Get a video

get_video
Read-only

Get a single video by platform + native post_id — your own or a public/analyzed one. 404s if the post isn't owned by you and hasn't been analyzed yet; ingest it first with analyze_post(url).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
post_idYesThe platform's native post id — the `post_id` field from list_videos / search_videos (NOT the composite `id`).
platformYesTarget platform — instagram, tiktok, or youtube (case-insensitive).
include_analysisNoAttach the video's full analysis inline.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
titleNo
captionNo
metricsNo
post_idYes
durationNo
platformYes
post_urlNo
owned_by_userNo
thumbnail_urlNo
analysis_previewNo
creator_usernameNo
post_created_timeNo
analysis_availableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / properties
      Added value: +{
      +  "analysis_available": {
      +    "default": false,
      +    "type": "boolean"
      +  },
      +  "analysis_preview": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "caption": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "creator_username": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "duration": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "id": {
      +    "type": "string"
      +  },
      +  "metrics": {
      +    "anyOf": [
      +      {
      +        "properties": {
      +          "comments": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "engagement_rate": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "likes": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "saves": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "shares": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "views": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "owned_by_user": {
      +    "default": false,
      +    "type": "boolean"
      +  },
      +  "platform": {
      +    "type": "string"
      +  },
      +  "post_created_time": {
      +    "anyOf": [
      +      {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "post_id": {
      +    "type": "string"
      +  },
      +  "post_url": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "thumbnail_url": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "title": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "id",
      +  "platform",
      +  "post_id"
      +]
  2. Changed3 schema fields changed
    • addedInput schema / properties / include_analysis / description
      Added value: +"Attach the video's full analysis inline."
    • addedInput schema / properties / platform / description
      Added value: +"Target platform — instagram, tiktok, or youtube (case-insensitive)."
    • addedInput schema / properties / post_id / description
      Added value: +"The platform's native post id — the `post_id` field from list_videos / search_videos (NOT the composite `id`)."
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Discloses critical behavior: returns 404 if post not owned and not analyzed, and provides a prerequisite (use analyze_post). Complements the readOnlyHint and openWorldHint annotations with concrete details, adding significant context beyond annotations.

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?

Two sentences, no wasted words. First sentence clearly states purpose, second adds essential behavioral note. Efficient and well-structured.

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?

For a simple retrieval tool with output schema, the description covers purpose, unique behavior, and prerequisites. No gaps; it's complete.

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 coverage is 100%, so baseline is 3. The description reinforces that post_id is native and platform is case-insensitive but adds no new information beyond what's in the schema.

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?

Clearly states it retrieves a single video by platform and native post_id. Specifies scope ('your own or a public/analyzed one') and distinguishes from siblings by mentioning the 404 condition and the alternative analyze_post.

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?

Explicitly states when to use (to get a video by platform+post_id) and covers an edge case (404 for unanalyzed non-owned posts, advising use of analyze_post). Could be improved by directly referencing sibling tools like list_videos or get_video_analysis.

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.