Skip to main content
Glama
dearlordylord

D&D 5e SRD Oracle

List Characters

list_characters
Read-onlyIdempotent

Retrieve all finalized characters in a play session with current HP, spell slots, and battle availability. Use the returned characterId to inspect or query detailed character state.

Instructions

List all finalized characters in this Play Session, including characterId, Battle availability, and build-derived facts. Available rows include mutable sheet state, current and maximum HP, Hit Dice, spell slots, Pact Slots, and feature resources; characters in Battle are marked unavailable, and unfinished drafts are excluded. Use a returned characterId with inspect_character_session for stored details or query_character_session for a calculated projection.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
playSessionIdYesPlay Session handle returned by create_play_session for follow-up stateful calls in the same local process or authenticated account.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly and idempotent, and the description adds behavior beyond that: only finalized characters are returned, drafts are excluded, Battle participants are marked unavailable, and available rows include mutable sheet state and resources such as HP, Hit Dice, spell slots, Pact Slots, and feature resources.

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

Conciseness5/5

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

Three sentences carry the purpose, the inclusion/exclusion rules, the available fields, and the exact follow-up tool routing with no filler. The most important scoping information ('all finalized characters') is front-loaded.

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?

With an output schema present and annotations covering safety and idempotency, the description supplies everything an agent needs to call correctly: scope, filters, availability semantics, and how to use the returned characterIds. No important behavioral gap remains.

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 coverage is 100% and the single playSessionId parameter is already documented with a pattern and meaning. The description adds the scoping phrase 'in this Play Session,' but no extra syntax or edge-case detail is needed because one fully documented parameter exists.

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 and resource: 'List all finalized characters in this Play Session' and enumerates the payload fields (characterId, Battle availability, build-derived facts). It distinguishes itself from sibling list tools such as list_stat_blocks and list_catalog_units by scoping to Play Session characters and by explicitly excluding unfinished drafts.

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?

It states conditions for inclusion ('finalized', 'unfinished drafts are excluded', 'characters in Battle are marked unavailable') and routes follow-up use to 'inspect_character_session for stored details or query_character_session for a calculated projection.' This gives an agent explicit when-to-use and which-alternative guidance.

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