Skip to main content
Glama
Upload-Post

Upload-Post

Official

Get recent media from connected accounts

get_media
Read-only

Fetch recent media from a profile's connected social accounts to see what's already posted before publishing. Paginated for easy browsing.

Instructions

Retrieve recent media (videos, photos, text posts) pulled directly from a profile's connected social accounts. Supports instagram, tiktok, youtube, linkedin, facebook, x, threads, pinterest, bluesky, reddit. Useful for browsing what already exists on a platform before posting more. Paginated: the response carries pagination = { limit, next_cursor, has_more }; pass next_cursor back as cursor for the next page (the last page returns next_cursor null and has_more false).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
userNoProfile username to scope the query to.
limitNoItems per page. Defaults to 25 and is clamped to 1-100. Per-platform caps: TikTok 20, YouTube 50, everything else 100.
cursorNoOpaque cursor from a previous response's `pagination.next_cursor`. LinkedIn, Discord and Telegram do not support cursors — passing one there fails with HTTP 400; use `limit` alone on those platforms.
page_urnNoLinkedIn only. Numeric organization ID (e.g. '12345'), full URN ('urn:li:organization:12345'), or 'me' to force the personal profile. When omitted, accounts linked as an organization admin auto-resolve to the first administered organization; otherwise the personal profile is used.
platformNoRestrict to a single platform key.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.11.1
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed3 schema fields changedv0.7.0
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "Opaque cursor from a previous response's `pagination.next_cursor`. LinkedIn, Discord and Telegram do not support cursors — passing one there fails with HTTP 400; use `limit` alone on those platforms.",
      +  "type": "string"
      +}
    • addedInput schema / properties / limit / description
      Added value: +"Items per page. Defaults to 25 and is clamped to 1-100. Per-platform caps: TikTok 20, YouTube 50, everything else 100."
    • changedInput schema / properties / limit / maximum
      Previous value: -200New value: +100
  3. First observedv0.4.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds the full pagination contract (pagination field names, passing next_cursor back as cursor, and terminal conditions for the last page), which is the meaningful behavioral detail beyond the annotations. It does not mention rate limits or auth expectations, but it adds real value without contradicting the 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?

Four sentences, each earning its place: the core operation and types, the platform scope and use case, and the compact pagination contract. It stays front-loaded and avoids repetition of the schema's parameter docs.

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 5 parameters, an output schema, and readOnly/destructive annotations protecting the safety domain, the description is nearly complete: it clarifies the tool's orientation and the only behavioral protocol agents must implement correctly (pagination). Per-platform caveats such as cursor failures on LinkedIn/Discord/Telegram are left to the schema, which is acceptable given the schema's high detail.

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 description coverage is 100%, so the qualitative baseline is 3. The description adds value by enumerating supported platforms (the 'platform' param has no enum in the schema in the schema) and by explaining how cursor and pagination fit together, which helps agents use the cursor parameter correctly beyond the schema's own description.

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?

States the specific verb ('Retrieve'), the resource ('recent media from connected social accounts'), the content types (videos, photos, text posts), and the supported platforms. The phrase 'browsing what already exists... before posting more' clearly distinguishes it from the many upload/post/comment sibling tools, even without naming one.

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?

Provides a clear use-case ('browsing what already exists on a platform before posting more') that orients the agent against posting and media-upload siblings, and it gives explicit pagination steps. It doesn't explicitly state when not to use this tool or name preferred alternatives, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.