list_agents
Find the identifiers and revisions of your inbound and outbound agents.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Find the identifiers and revisions of your inbound and outbound agents.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description's only additional behavioral content is the inbound/outbound scope, with nothing about ordering, pagination, or completeness of results; with an output schema present, return format doesn't need restating, so a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded, with zero filler. The only quibble is the verb 'Find', which reads slightly odd for a list operation and costs a moment of interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, an output schema, and annotations that cover safety and idempotency, the description supplies the one thing structure cannot: the scope of agents returned. It falls short only on how this relates to the single-agent sibling, which is the main remaining decision point for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is empty and fully closed (additionalProperties: false). Baseline 4 applies, since no parameter semantics could be added beyond what exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (agents) and what the caller gets back (identifiers and revisions), and adds a scope qualifier ('inbound and outbound') that the bare name does not convey. It does not distinguish itself from the sibling get_agent, which fetches a single agent, so an agent must infer the plural/singular division itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Find the identifiers' hints that this is a discovery step that produces IDs for get_agent or update_agent, but the description never says when to use it versus get_agent, nor whether inbound/outbound can be filtered. No explicit exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.