You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add first-class CLI commands to enumerate and inspect currently available MCP tools and servers across:
the active session,
specific sub-agents,
specific MCP servers.
This improves discoverability, debugging, permission verification, documentation, and automation for users managing many tools/servers.
Motivation / Problem
Today there is no reliable, user-facing CLI to list the exact MCP tools that Claude Code can see and use at a given moment. This causes pain points:
Hard to verify tool availability/permissions for a session or a sub-agent (e.g., "Is mcp__desktop-commander__search_code actually exposed and allowed right now?").
I'm contributing locally maintained docs (see docs/complete-mcp-tools-list.md) but this is static and specific to my environment. A built-in CLI would be far more reliable and broadly useful.
Proposed Solution
Introduce a new set of CLI commands that expose the current MCP topology and tool catalog, with human-friendly and JSON output.
Commands (UX proposal)
List tools (global/session)
claude tools list [--json] [--wide] [--filter <expr>] [--columns <cols>]
Options:
--server <name|pattern> filter by MCP server id/name
--agent <subagent-name> filter by sub-agent
--permissions [allowed|denied|all] annotate/filter by current permission state
--origin include origin server for each tool
--schema include a compact input schema summary (e.g., arg names/types, required)
--json machine output (see schema below)
--ndjson one JSON object per line (stream-friendly)
--filter simple text/regex filter across server/agent/tool ids and descriptions
--columns choose visible columns in table output
--wide include more columns in table output
Inspect tool (schema/details)
claude tools inspect <tool-id> [--json] [--schema] [--examples]
Shows full tool definition, input schema, example payloads, origin server, permissions.
List MCP servers
claude mcp servers list [--json]
Includes server name, transport, status, tool count, resource count (if applicable).
claude tools inspect mcp__desktop-commander__read_file --json returns a single object with full schema, examples (if known), and current permission resolution.
Filtering Examples
claude tools list --server desktop-commander
claude tools list --agent security-auditor
claude tools list --filter "(read|write)"
claude tools list --permissions denied
claude tools list --json | jq '.servers[].tools[] | select(.permissions=="allowed") | .id'
Behavior / Semantics
Read-only introspection: DOES NOT invoke any tool.
Reflects the current session truth (after all permissions/allowlists are applied).
Includes sub-agent context if specified (some tools may be hidden/denied per sub-agent).
Handles dynamic environments: if servers connect/disconnect, list updates accordingly (and watch receives events when available).
Stable, scriptable output for automation pipelines.
Security, Privacy, and Permissions
Respect all existing permission models (allowedTools, disallowed-tools, flags, etc.). If a tool is denied, it should show as denied (or be filtered out when requested).
Redact sensitive data in tool descriptions or server metadata if any could leak (do not show secrets, env vars, tokens).
The command should not fetch external network resources beyond what's needed for current MCP topology in the running session.
Edge Cases
Disconnected or failing servers: mark status: disconnected and show reason if known.
Very large tool sets: support --filter and --columns; JSON + downstream filters recommended.
Feature Request: CLI command to list available MCP tools and servers
Summary
Add first-class CLI commands to enumerate and inspect currently available MCP tools and servers across:
This improves discoverability, debugging, permission verification, documentation, and automation for users managing many tools/servers.
Motivation / Problem
Today there is no reliable, user-facing CLI to list the exact MCP tools that Claude Code can see and use at a given moment. This causes pain points:
mcp__desktop-commander__search_codeactually exposed and allowed right now?").I'm contributing locally maintained docs (see
docs/complete-mcp-tools-list.md) but this is static and specific to my environment. A built-in CLI would be far more reliable and broadly useful.Proposed Solution
Introduce a new set of CLI commands that expose the current MCP topology and tool catalog, with human-friendly and JSON output.
Commands (UX proposal)
claude tools list [--json] [--wide] [--filter <expr>] [--columns <cols>]--server <name|pattern>filter by MCP server id/name--agent <subagent-name>filter by sub-agent--permissions [allowed|denied|all]annotate/filter by current permission state--origininclude origin server for each tool--schemainclude a compact input schema summary (e.g., arg names/types, required)--jsonmachine output (see schema below)--ndjsonone JSON object per line (stream-friendly)--filtersimple text/regex filter across server/agent/tool ids and descriptions--columnschoose visible columns in table output--wideinclude more columns in table outputclaude tools inspect <tool-id> [--json] [--schema] [--examples]claude mcp servers list [--json]claude tools watch [--json]Table Output (examples)
claude tools list --columns server,agent,tool,summary,permissions:claude mcp servers list:JSON Output (schema proposal)
claude tools list --jsonreturns:{ "timestamp": "2025-08-26T06:31:00Z", "sessionId": "abc-123", "servers": [ { "name": "desktop-commander", "transport": "stdio", "status": "connected", "tools": [ { "id": "mcp__desktop-commander__read_file", "originServer": "desktop-commander", "agents": ["(session)", "security-auditor"], "summary": "Read file (supports offset/length)", "permissions": "allowed", "schema": { "input": { "type": "object", "properties": { "path": { "type": "string" }, "offset": { "type": "number" }, "length": { "type": "number" } }, "required": ["path"] } } } ] } ] }claude tools inspect mcp__desktop-commander__read_file --jsonreturns a single object with full schema, examples (if known), and current permission resolution.Filtering Examples
claude tools list --server desktop-commanderclaude tools list --agent security-auditorclaude tools list --filter "(read|write)"claude tools list --permissions deniedclaude tools list --json | jq '.servers[].tools[] | select(.permissions=="allowed") | .id'Behavior / Semantics
watchreceives events when available).Security, Privacy, and Permissions
denied(or be filtered out when requested).Edge Cases
status: disconnectedand show reason if known.--filterand--columns; JSON + downstream filters recommended.--limit/--offsetto future-proof.Acceptance Criteria
claude tools listlists all currently available tools for the session by default (table).--jsonproduces a machine-consumable structure with server, tool ids, origin, agents, summary, permissions, and an input schema summary.--server/--agent/--permissions/--filterare supported.claude tools inspect <tool-id>prints complete schema and origin.claude mcp servers listshows current servers with status and basic counts.Related Issues (context / adjacency)
tools watch)claude mcp servemeant to also serve its own configured MCP tools? #631 Isclaude mcp servemeant to also serve its own configured MCP tools? (server semantics)Implementation Notes (high-level)
version: 1) to allow evolution.list_changednotifications to powertools watchas a follow-up.Testing Plan
tools listreflecting changes.Alternatives Considered
Contributor Availability
I'm willing to draft an implementation and open a PR if maintainers agree on:
If maintainers prefer a different naming (e.g.,
claude mcp tools listinstead ofclaude tools list), I'm happy to align.Generated from a real need in documenting and validating tools locally (
docs/complete-mcp-tools-list.md). Happy to iterate on this proposal.