Skip to main content
Glama

get_by_id

Fetch the full SKILL.md content and metadata for a single artifact. Provide EXACTLY ONE of artifactId (the UUID returned by search) or slug (the URL-safe identifier, e.g. from a /p/<slug> link). Passing both or neither returns a validation_failed error. Use this after search to retrieve the body of a hit the user wants to read, summarize, apply, or fork. Returns the artifact's name, description, type, contributor, version, timestamps, the full SKILL.md text (YAML frontmatter + markdown body, up to 256 KB), the number of bundled extras (bundledCount), their filenames (bundledFilenames), per-file metadata in bundledFiles (each entry has key, filename, and originalRef — the EXACT body-relative reference string the importer matched, or null when the file was bundled without a body reference; use this to translate a link span in the body back to its bundle filename), and the public-surface fields slug, authorCredit, industries. To fetch a bundled extra, read it as a resource at artifact://<artifactId>/bundled/<filename>.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug for the artifact (e.g. `brand-voice`). Take this from the `slug` field of a `search` result or a /p/<slug> link. Mutually exclusive with `artifactId`.
artifactIdNoUUID of the artifact. Take this from the `artifactId` field of a `search` result. Mutually exclusive with `slug`.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries full burden and fully delivers: it discloses the validation error behavior, the 256 KB size cap, the structure of bundled extras (`bundledCount`, `bundledFilenames`, `bundledFiles`, including `originalRef` semantics), and how to fetch a bundled extra via `artifact://` URI. This exceeds minimal expectations.

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?

The description is long but information-dense and well-structured: it starts with a clear thesis, then details usage, constraints, return fields, and bundle handling. Every sentence carries technical value, though some could be tightened without loss.

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 the tool's complexity, the absence of an output schema, and two optional but mutually exclusive parameters, the description is remarkably complete. It covers input validation, output shape, size limits, bundle metadata semantics, and follow-up resource URIs, leaving little ambiguity for an agent.

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 coverage is 100% and both parameters already have detailed descriptions with mutual-exclusivity. The description adds practical sourcing context (take `artifactId`/`slug` from a `search` result or `/p/<slug>` link) and clarifies the exact error condition, going beyond the schema baseline.

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 opens with a specific verb+resource: "Fetch the full SKILL.md content and metadata for a single artifact." It clearly distinguishes itself from the sibling `search` tool by focusing on retrieving one artifact's full content after search.

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?

Provides explicit usage guidance: exactly one of `artifactId` or `slug` must be provided, both/neither causes a `validation_failed` error, and states to use it after `search` to retrieve content the user wants to read, summarize, apply, or fork. This is strong when-to-use and what-not-to-do guidance.

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.

TDQS

A4.4/5.0
Disambiguation5/5

search is for finding artifacts and returns metadata, while get_by_id retrieves the full content of a single artifact. Their purposes are fully distinct with no overlap, and the descriptions explicitly reference each other to form a clear two-step flow.

Naming Consistency4/5

Both tools use snake_case and are readable, but one is a bare verb ('search') while the other follows a verb_preposition_noun pattern ('get_by_id'). This is a minor inconsistency but not confusing.

Tool Count3/5

With only two tools, the server feels quite thin. The read-only search-and-fetch scope justifies a small set, but it is on the borderline of being too minimal for a tool server.

Completeness2/5

The server only supports searching and fetching artifacts. There are no tools for creating, updating, deleting, or contributing artifacts, despite the descriptions hinting at 'contributing' as a use case. This is a significant functional gap.

Resources