Skip to main content
Glama

list_plans

Check if a plan name is already in use or confirm a saved plan file exists by listing all plan names in the plan directory.

Instructions

List plan names found in the plan directory (~/.claude/plans, or $PLAN_DIR). No parameters.

Returns the '.json' stem of every file in that directory, not just fresh, ingestable plan sources — an already-ingested plan's '.manifest.json' surfaces as '.manifest', and a story journal or notification log contributes its own noisy stem too. Treat a returned name as a candidate to inspect, not a guarantee it is a valid target for save_plan/ingest_plan.

Call this to check whether a plan name is already taken before save_plan, or to confirm a plan file actually landed on disk after saving it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden. It candidly discloses that results are noisy, that manifest files surface as '.manifest', that story journal/notification logs contribute stems, and that returned names are only candidates, not guaranteed ingestable plans. This is rich and honest behavioral detail.

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 longer than minimal, but every sentence adds distinct value: directory location, no parameters, noisy-stem behavior, candidate semantics, and concrete use cases. It is structured with a clear purpose, caveat, and usage; only mild redundancy about 'not a guarantee' could be trimmed.

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?

Given zero params and the presence of an output schema, the description covers everything needed to call and interpret results: directory source, return stem semantics, noise sources, validity caveat, and practical call scenarios. Nothing important is missing.

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?

The tool takes zero parameters and the description explicitly says 'No parameters.' With no params, there is nothing to document; the baseline 4 applies because the description accurately confirms the schema's empty parameter set.

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 and resource: 'List plan names found in the plan directory'. It distinguishes itself from fresh/ingestable plan sources by explaining the directory scan includes noisy stems, which differentiates it from sibling tools like list_ready_stories.

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?

Explicitly tells when to call the tool: to check if a plan name is taken before save_plan, or to confirm a plan file landed on disk. It does not name an alternative tool to use instead, but the guidance is clear and actionable.

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