Skip to main content
Glama

One public-root card-v0 leaf

get_card
Read-onlyIdempotent

GET one public-root card-v0 leaf by sha256 (64 hex) from https://councilof.ai/cards/{sha16}.json. UNMEASURED cells stay visible. States: VALID (fetched); NOT_IN_THIS_CORPUS (the id is in the signed card index, not the public root, so use verify_card on it); INVALID (in neither the live root nor the signed card index); UNCHECKABLE (a source could not be read). Not a GSPC measurement-card.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sha256Yes64-char hex payload SHA-256 of the card-v0 leaf.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nextNoWith NOT_IN_THIS_CORPUS: the tool call that checks this id.
stateYesVALID, NOT_IN_THIS_CORPUS, INVALID or UNCHECKABLE
corpusNoWith NOT_IN_THIS_CORPUS: the set the id belongs to (signed_card_index).
reasonNo
sha256No
sourceNo
surfaceNo
card_urlNoWith NOT_IN_THIS_CORPUS: the signed card body to pass to verify_card.
not_gspcNo
unmeasuredNo
sig_ed25519No

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / card_url
      Added value: +{
      +  "description": "With NOT_IN_THIS_CORPUS: the signed card body to pass to verify_card.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / corpus
      Added value: +{
      +  "description": "With NOT_IN_THIS_CORPUS: the set the id belongs to (signed_card_index).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / next
      Added value: +{
      +  "description": "With NOT_IN_THIS_CORPUS: the tool call that checks this id.",
      +  "type": "object"
      +}
    • changedOutput schema / properties / state / description
      Previous value: -"VALID, INVALID or UNCHECKABLE"New value: +"VALID, NOT_IN_THIS_CORPUS, INVALID or UNCHECKABLE"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "not_gspc": {
      +      "type": "boolean"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "sha256": {
      +      "type": "string"
      +    },
      +    "sig_ed25519": {},
      +    "source": {
      +      "type": "string"
      +    },
      +    "state": {
      +      "description": "VALID, INVALID or UNCHECKABLE",
      +      "type": "string"
      +    },
      +    "surface": {},
      +    "unmeasured": {}
      +  },
      +  "required": [
      +    "state"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "not_gspc": {
      -      "type": "boolean"
      -    },
      -    "reason": {
      -      "type": "string"
      -    },
      -    "sha256": {
      -      "type": "string"
      -    },
      -    "sig_ed25519": {},
      -    "source": {
      -      "type": "string"
      -    },
      -    "state": {
      -      "description": "VALID, INVALID or UNCHECKABLE",
      -      "type": "string"
      -    },
      -    "surface": {},
      -    "unmeasured": {}
      -  },
      -  "required": [
      -    "state"
      -  ],
      -  "type": "object"
      -}New value: +null
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "not_gspc": {
      +      "type": "boolean"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "sha256": {
      +      "type": "string"
      +    },
      +    "sig_ed25519": {},
      +    "source": {
      +      "type": "string"
      +    },
      +    "state": {
      +      "description": "VALID, INVALID or UNCHECKABLE",
      +      "type": "string"
      +    },
      +    "surface": {},
      +    "unmeasured": {}
      +  },
      +  "required": [
      +    "state"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "not_gspc": {
      -      "type": "boolean"
      -    },
      -    "reason": {
      -      "type": "string"
      -    },
      -    "sha256": {
      -      "type": "string"
      -    },
      -    "sig_ed25519": {},
      -    "source": {
      -      "type": "string"
      -    },
      -    "state": {
      -      "description": "VALID, INVALID or UNCHECKABLE",
      -      "type": "string"
      -    },
      -    "surface": {},
      -    "unmeasured": {}
      -  },
      -  "required": [
      -    "state"
      -  ],
      -  "type": "object"
      -}New value: +null
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "not_gspc": {
      +      "type": "boolean"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "sha256": {
      +      "type": "string"
      +    },
      +    "sig_ed25519": {},
      +    "source": {
      +      "type": "string"
      +    },
      +    "state": {
      +      "description": "VALID, INVALID or UNCHECKABLE",
      +      "type": "string"
      +    },
      +    "surface": {},
      +    "unmeasured": {}
      +  },
      +  "required": [
      +    "state"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds genuinely new behavioral context: the four outcome states (VALID, NOT_IN_THIS_CORPUS, INVALID, UNCHECKABLE) and that UNMEASURED cells remain visible. This goes well beyond the annotations, though the states partly overlap with the output schema.

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?

Front-loaded with the core action and key format, followed by state semantics and the sibling routing. Dense and telegraphic but nearly every clause earns its place; the state enumeration is the only portion that could be considered verbose.

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?

An output schema exists so return values need not be re-explained, and the single parameter is fully covered by the schema. The description still supplies state meanings, an alternative-tool route, and a scope exclusion, leaving nothing an agent needs in order to call it correctly.

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 the param already documents the 64-char hex requirement, so the baseline is 3. The description adds the URL construction detail, showing the payload id maps to {sha16}.json, which is extra meaning beyond the schema, though the sha16 truncation is only implied and slightly ambiguous.

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), resource (one public-root card-v0 leaf), and lookup key (sha256, 64 hex) plus the exact endpoint pattern. It is clearly distinguishable from siblings like get_root, list_cards, and verify_card.

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 explicit routing for one state: when the id is NOT_IN_THIS_CORPUS, the agent is told to use verify_card instead. It also excludes GSPC measurement-cards. However, it gives no general when-to-use guidance versus verify_card or list_cards for the common case.

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.