Skip to main content
Glama
dzstudio-mcp
by siemendev

list_projects

Lists projects available on a server and the collaboration sessions an AI agent can join, including session status and save permissions so you can choose where to work.

Instructions

Projects on a server the user may open (name, map, whether a session runs, whether they may save), and the sessions the agent may join.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_projects"
  }
}

Input Schema

NameRequiredDescriptionDefault
serverNoServer name; default: the first configured server

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.3

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description does real work by disclosing that results are permission-filtered ('may open', 'may join'), which signals to the agent that a missing project does not mean it is absent on the server. It does not state pagination, ordering, or cost behavior, and safety is only implied by the listing verb rather than stated.

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?

One dense sentence with no filler; the field inventory is parenthetically bundled rather than expanded into prose. It is slightly overloaded because it mixes two result sets (projects and joinable sessions) in a single clause.

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?

For a read-only listing tool with one optional parameter and no output schema, the description is complete: it identifies the scope, the permission filter, and the shape of each returned entry. An agent has enough to call it correctly and interpret an empty result.

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?

The single `server` parameter is fully documented in the schema, including the default to the first configured server, so the description need not repeat it. The description adds the scope idea ('a server') but no syntax or naming convention beyond what the schema already supplies.

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?

Names the resource (projects on a specific server) and even enumerates the fields the listing carries (name, map, running session, save permission), which tells an agent exactly what the call yields. It stops short of distinguishing itself from near siblings like list_sessions or session_info, and the trailing clause about joinable sessions blurs the boundary with list_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit statement of when to call this versus list_sessions, session_info, or list_servers, and no mention of what to do when the default server is wrong. Usage is only inferable from the resource name (a discovery call), which is the minimum implied guidance.

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