Skip to main content
Glama

List signed card index rows

list_cards
Read-onlyIdempotent

The published signed-card index (https://councilof.ai/signed/card_index.json): what the index declares (n_cards) and how many rows it actually carries, reported next to — never reconciled with — the count the card store endpoint (https://councilof.ai/api/cards) reports for itself. Two labelled numbers from two surfaces; if they disagree, this tool shows the disagreement rather than picking one. Optional filters return recent rows: axis, limit. Each row carries card_url, the signed body; pass it, or the row's 64-hex card id, to verify_card.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
axisNoOnly list rows whose axis matches this name (case-insensitive).
limitNoHow many rows to include in the listing (newest first). Default 10. The two counts are always reported in full regardless of this limit.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsNo
indexNo
stateNoRead state of the signed card index on this call: LIVE (read now) or UNREACHABLE. Listing is not verification; verify_card checks a row.
doctrineNo
axis_queryNo
state_basisNo
not_a_certificationNo
card_store_count_endpointNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / state
      Added value: +{
      +  "description": "Read state of the signed card index on this call: LIVE (read now) or UNREACHABLE. Listing is not verification; verify_card checks a row.",
      +  "enum": [
      +    "LIVE",
      +    "UNREACHABLE"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / state_basis
      Added value: +{
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / rows / items / properties / card_url
      Added value: +{
      +  "description": "The signed card body, https://councilof.ai/signed/cards/{id}.json. verify_card takes this URL or the bare card id.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "axis_query": {
      +      "properties": {
      +        "asked": {
      +          "type": "string"
      +        },
      +        "canonical": {
      +          "type": "string"
      +        },
      +        "index_names_matched": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "spellings": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "card_store_count_endpoint": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "doctrine": {
      +      "type": "string"
      +    },
      +    "index": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "not_a_certification": {
      +      "type": "boolean"
      +    },
      +    "rows": {
      +      "items": {
      +        "properties": {
      +          "axis": {
      +            "type": "string"
      +          },
      +          "card": {
      +            "type": "string"
      +          },
      +          "signed": {},
      +          "ts": {}
      +        },
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "axis_query": {
      -      "properties": {
      -        "asked": {
      -          "type": "string"
      -        },
      -        "canonical": {
      -          "type": "string"
      -        },
      -        "index_names_matched": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "spellings": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "card_store_count_endpoint": {
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "doctrine": {
      -      "type": "string"
      -    },
      -    "index": {
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "not_a_certification": {
      -      "type": "boolean"
      -    },
      -    "rows": {
      -      "items": {
      -        "properties": {
      -          "axis": {
      -            "type": "string"
      -          },
      -          "card": {
      -            "type": "string"
      -          },
      -          "signed": {},
      -          "ts": {}
      -        },
      -        "type": "object"
      -      },
      -      "type": [
      -        "array",
      -        "null"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "axis_query": {
      +      "properties": {
      +        "asked": {
      +          "type": "string"
      +        },
      +        "canonical": {
      +          "type": "string"
      +        },
      +        "index_names_matched": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "spellings": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "card_store_count_endpoint": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "doctrine": {
      +      "type": "string"
      +    },
      +    "index": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "not_a_certification": {
      +      "type": "boolean"
      +    },
      +    "rows": {
      +      "items": {
      +        "properties": {
      +          "axis": {
      +            "type": "string"
      +          },
      +          "card": {
      +            "type": "string"
      +          },
      +          "signed": {},
      +          "ts": {}
      +        },
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "axis_query": {
      -      "properties": {
      -        "asked": {
      -          "type": "string"
      -        },
      -        "canonical": {
      -          "type": "string"
      -        },
      -        "index_names_matched": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "spellings": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "card_store_count_endpoint": {
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "doctrine": {
      -      "type": "string"
      -    },
      -    "index": {
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "not_a_certification": {
      -      "type": "boolean"
      -    },
      -    "rows": {
      -      "items": {
      -        "properties": {
      -          "axis": {
      -            "type": "string"
      -          },
      -          "card": {
      -            "type": "string"
      -          },
      -          "signed": {},
      -          "ts": {}
      -        },
      -        "type": "object"
      -      },
      -      "type": [
      -        "array",
      -        "null"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "axis_query": {
      +      "properties": {
      +        "asked": {
      +          "type": "string"
      +        },
      +        "canonical": {
      +          "type": "string"
      +        },
      +        "index_names_matched": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "spellings": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "card_store_count_endpoint": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "doctrine": {
      +      "type": "string"
      +    },
      +    "index": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "not_a_certification": {
      +      "type": "boolean"
      +    },
      +    "rows": {
      +      "items": {
      +        "properties": {
      +          "axis": {
      +            "type": "string"
      +          },
      +          "card": {
      +            "type": "string"
      +          },
      +          "signed": {},
      +          "ts": {}
      +        },
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  8. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety bar is met. The description adds genuinely useful behavior: the two counts are reported next to each other and deliberately never reconciled, and rows are returned newest-first with the full counts reported regardless of the limit. That is meaningful context beyond the annotations, though it does not mention rate limits or the size of the index.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences that are information-dense to the point of being hard to parse, with em-dash-heavy asides. The purpose is front-loaded, but the reconciliation caveat and the counts-regardless-of-limit note are repeated from the schema, so not every clause earns its place.

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?

With an output schema present, return-value shape need not be spelled out, yet the description still explains the index's declared-vs-actual count semantics and how to chain into verify_card. For a two-optional-param read tool this is close to complete; only the index's scale and pagination beyond 'newest first' are unaddressed.

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 description coverage is 100%, so the baseline is 3. The description names axis and limit and notes they return 'recent rows' newest-first, but this largely restates what the schema already documents, including the schema's own note that the two counts are always reported in full regardless of the limit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/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: list the rows of the published signed-card index, and report the declared count (n_cards) alongside the actual row count. It distinguishes itself from the card store endpoint and names verify_card as the follow-on tool, so an agent can place it. The dense, clause-heavy opening sentence slightly muddies the core action.

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?

It says optional filters (axis, limit) return recent rows and that card_url or the row's card id should be passed to verify_card for verification, which gives implied routing context. However, it never states when to reach for this tool versus siblings like get_card, board_totals, or measurement_index, so usage is only inferable.

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.