Skip to main content
Glama

List Projects

list_projects
Read-onlyIdempotent

Lists projects and folders, optionally filtered by parent or top level, so you can find the presentation workspace or container to open, organize, or work in.

Instructions

List projects, or folders with kind=FOLDER (optionally one container's children).

top_level=true keeps the caller's top level: no parent, or a parent they cannot reach. Not with parent_id. A project-bound key sees its project and the folders below it, with that project as its top.

Input Schema

NameRequiredDescriptionDefault
kindNoWhat a project row is: a knowledge-bearing project or a plain folder.
pageNo
limitNo
parent_idNo
top_levelNo

Output Schema

NameRequiredDescriptionDefault
dataYesItems on this page.
pageYes1-based page number returned.
limitYesMaximum items per page.
totalYesItems matching the filters across all pages.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered; the description adds genuinely non-obvious access semantics instead — that a project-bound key sees only its project and descendant folders, and that 'top level' includes parents the caller cannot reach. That visibility/auth scoping is real behavioral context beyond the structured 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?

Dense and front-loaded: the listing mode comes first, then the top-level rule, then the permission scope. Minor friction from mid-sentence line breaks that split 'parent they / cannot reach' and 'folders below it, / with that project as its top', but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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-value detail is rightly omitted, and the access-scoping notes cover the trickiest behavior. Still, for a 5-parameter listing tool at 20% schema coverage, the absence of any pagination guidance (`page`/`limit` defaults and the 200 cap) leaves a gap an agent could stumble on.

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 only 20% (only `kind` is documented), so the description must compensate — and it partly does, explaining `kind=FOLDER`, `parent_id` as 'one container's children', and `top_level` semantics plus its conflict with `parent_id`. However, `page` and `limit` get no mention, leaving two of five parameters undefined in both places.

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?

Opens with a specific verb+resource ('List projects') and immediately clarifies the dual mode via `kind=FOLDER`. It also scopes the listing to 'optionally one container's children', so an agent knows this is a filtered enumerator rather than a global dump. It does not name a sibling to contrast with (e.g. list_decks), which keeps it from a 5.

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?

Gives an explicit incompatibility rule: 'Not with `parent_id`' when `top_level=true`, which is exactly the kind of when-not guidance agents need. It also defines what `top_level=true` preserves. It stops short of stating when to prefer this over other listing tools, but the constraint guidance is clear.

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