Skip to main content
Glama

get_asset

Read-onlyIdempotent

Fetch a Skilljar asset by ID and receive a working download link. Use this to get the actual file directly, with a presigned URL that requires no additional credentials.

Instructions

Fetch one asset, INCLUDING A WORKING DOWNLOAD LINK.

    `id` is the asset id, as `list_assets` returns and as a lesson's
    `content_asset_id` refers to.

    THE RETURNED download_url IS THE FILE, NOT A REFERENCE TO IT. It is a presigned
    link that needs NO Skilljar credentials and works for roughly an hour, and it is
    different every time this is called.
    Anyone who can read the URL can download the content.

    So: do not put it anywhere it will be seen by someone who should not have the
    file, and do not store or cache it - a saved URL expires and then looks like a
    broken asset rather than an expired link.

    If you only need to know an asset exists, or what type it is, use `list_assets`,
    which returns no link at all.

    Requires `CSA_SKILLJAR_V1_API_KEY`, a separate credential from the v2 client.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
warningNo
asset_typeNo
download_urlNo
embed_link_urlNo
sync_completionNo
Install Server

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description thoroughly discloses behavior: the returned URL is a presigned link, valid for roughly an hour, requires no Skilljar credentials, changes every call, and grants anyone with the URL download access. It also surfaces the separate CSA_SKILLJAR_V1_API_KEY credential requirement.

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?

The description is front-loaded with the most important fact—working download link—and then organized into scannable paragraphs covering id semantics, link behavior, security caveats, alternative usage, and auth. Every sentence adds necessary context without padding.

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?

Given an output schema exists, the description does not need to explain return shape. It covers id sourcing, link expiration, security handling, the alternative tool, and required credentials, making it fully sufficient for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Though schema coverage is 0%, the description fully explains the only parameter: 'id is the asset id, as list_assets returns and as a lesson's content_asset_id refers to.' This gives the agent concrete source semantics for the parameter beyond the bare 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?

The description states a specific verb and resource: 'Fetch one asset, INCLUDING A WORKING DOWNLOAD LINK.' It clearly distinguishes itself from list_assets by emphasizing the download link and by naming the alternative for cases where a link is not needed.

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?

Explicit guidance is provided: use list_assets instead if you only need existence/type, because it returns no link. It also gives strong negative guidance about when not to use the returned link, such as not storing or caching it due to expiration.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CloudSecurityAlliance/csa-skilljar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server