Skip to main content
Glama

pin_get

Read-only

Get the current pinned version for a key, returning its SHA-256 hash and byte/character counts to verify the stored body matches the agreed content.

Instructions

Get the current version of a pinned entry by key, or null if the key has never been pinned. Every pin response carries 'body_sha256' plus 'body_length_bytes' and 'body_length_chars'. The hash is sha256 over the body's RAW UTF-8 BYTES exactly as stored — no normalisation of any kind (no trailing-whitespace trimming, no newline conversion, no Unicode NFC), so two parties who hash the same text always get the same number. Length is published under two explicitly named fields because 'length' alone is ambiguous for non-ASCII text, where one character can take several bytes. The server publishes these; it does NOT verify anything with them — comparing the pinned body against what was agreed is the team's check, and now it has an authoritative number to check against.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, and the description adds substantial behavioral context: it explains the exact hashing algorithm (SHA-256 over raw UTF-8 bytes with no normalization), the meaning of length fields, and that the server does not verify anything—these are valuable beyond the annotation. No contradiction with annotations.

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 detailed and well-structured, front-loading the purpose and then explaining response fields and hashing semantics. While long, every sentence adds meaningful information without redundancy, earning a high score for conciseness relative to the content.

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?

Given the tool's simplicity (single param) and the presence of an output schema, the description adequately explains the return fields (body_sha256, body_length_bytes, body_length_chars) and the null case. It does not explicitly describe the response structure but covers the essential behavior, making it complete enough for an agent to call correctly.

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

Parameters2/5

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

Schema has one required parameter 'key' with no description and 0% coverage from the description. The description mentions 'by key' but does not clarify key format, constraints, or examples. Since schema coverage is low, the description should compensate but does not, leaving the parameter semantics under-specified.

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 a specific verb (get) and resource (pinned entry by key), and clearly distinguishes from siblings like pin_list and pin_history by specifying it retrieves the current version for a single key. The null behavior is explicitly mentioned, which adds clarity.

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?

The description implies usage for fetching a single pinned entry by key, but does not explicitly mention when to use this versus alternatives like pin_list or pin_history. No conditions or exclusions are provided, leaving the agent to infer the appropriate context.

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