Skip to main content
Glama

Verify a skill's polygraph attestation

verify_skill_attestation
Read-onlyIdempotent

Verify a skill's published safety grade (A/B/D/F) from Polygraph before installation. Returns attestation UID, evidence CID, and content hash for integrity check.

Instructions

Read a Claude Code / Agent Skill's already-published polygraph grade — without running anything — before an agent installs or trusts it.

When a grade is published it returns the letter (A/B/D/F), the attestation UID, the evidence CID, and the attested contentHash. The caller MUST then recompute the skill's content hash (sha256 over every file the SKILL.md can load, including lazily-referenced files) and require it to equal contentHash before installing — a passing attestation can otherwise front for different bytes (a swapped bundled script). The ref/version is advisory; the contentHash is the trust anchor.

Grade publishing for skills is rolling out, so this commonly returns not_available: that means UNEVALUATED (neither safe nor unsafe), not a failing grade — to grade a local skill yourself, use run_skill_litmus. A lookup_failed result means the lookup itself failed (index/chain unreachable); the grade is unknown, not unevaluated.

Input: skill_ref — e.g. github//# or marketplace//.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
skill_refYesSkill identifier, e.g. github/<owner>/<repo>#<path> or marketplace/<owner>/<name>.
Behavior5/5

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

Annotations already indicate readOnly, idempotent, non-destructive. Description adds context: explains that not_available is not a failing grade, the need to recompute contentHash for trust, and details of return fields.

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?

Well-structured with purpose first, then details, then error cases, then input format. Slightly lengthy but each sentence adds value.

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?

Covers return fields, error codes, usage context, and required post-processing. Lacks explicit output schema but description provides sufficient detail for an agent to act correctly.

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 already provides 100% coverage for skill_ref with examples. Description repeats the same format without adding new semantics, so baseline score 3 applies.

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?

Description clearly states the tool reads a published polygraph grade without running anything. It identifies the resource (attestation) and distinguishes from sibling tools like run_skill_litmus, which is for local grading.

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?

Explicitly states when to use: before installing or trusting a skill. Provides guidance on error states (not_available means unevaluated, lookup_failed means index unreachable) and directs to run_skill_litmus for local grading.

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

Install Server

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/polygraphso/litmus'

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