Skip to content

knosh mcp-info

Print one configured MCP server's list-mcp details, then connect to confirm it is reachable and list the tools it exposes.

Synopsis

knosh mcp-info <name> [options]

Description

mcp-info starts by printing the same server block list-mcp would show for <name>, then actually connects: it spawns/connects, completes the MCP handshake, discovers the server's tools, and disconnects. It never executes a discovered tool — it connects, discovers, and disconnects.

Unlike a prompt, kdocs, or file-defined command run, a startup failure here is never swallowed as a stderr warning: every failure surface (a missing local binary, a failed handshake, an exceeded timeout, an unresolved {env:NAME} header variable, a tool-discovery error) is reported to the user and the command exits 1.

A server that is effectively disabled — per its global enabled value, or a per-agent mcp: override resolved via --agent — is refused by default, since a disabled server is disabled on purpose. Pass --force to probe it anyway.

Each discovered tool is shown under both name forms: the namespaced <serverHandle>_<toolName> form the agent sees, and the raw form the MCP server itself calls the tool — the same namespacing described under mcp.

Options

NAME
The MCP server handle to probe (required). An unmatched handle is reported along with every configured handle, and the command exits 1.
--agent <id>
Resolve per-agent mcp: overrides for this agent id, same as list-mcp --agent. Defaults to the configured defaultAgentId.
--force
Probe the server even if it is effectively disabled.
--timeoutSeconds <n> / --timeout-seconds <n>
Overrides the server's own startup timeout budget, in seconds, for this probe only. Must be a positive integer. The server's configured timeout (5-second default) applies when omitted — the same value a real run would use, which is a tighter budget than is often useful when deliberately diagnosing a slow server.
--verbose
Also print each tool's required and optional parameters. By default only each tool's name forms and description are shown, so the reachability answer is not buried under a screenful of schema.

Output

On success, mcp-info prints the server block, then a ## Tools (<count>) section, one subsection per discovered tool:

## github

- command: gh mcp
- type: local
- environment: 1 variable(s)
- timeout: 30s

## Tools (1)

### github_search

- raw name: search
- description: Searches GitHub

With --verbose, each tool subsection also lists its required and optional parameters:

### github_search

- raw name: search
- description: Searches GitHub
- required parameters
    - query (STRING): the search query

A server that legitimately exposes zero tools reports ## Tools (0) and exits 0 — that is a success, not a failure.

On any other outcome, mcp-info exits 1:

  • Unreachable — the server block, then the failure message (e.g. Server 'github' is unreachable: no such command).
  • Refused (effectively disabled, no --force) — the server block, so you can see why it is off, then a message pointing at --force.
  • Unknown handle — no server block; just the requested name and the list of configured handles.

As with list-mcp, header names and values (remote servers) and environment-variable names and values (local servers) are never printed — only counts.

Examples

Probe a local server:

knosh mcp-info github

Probe a server that is effectively disabled for a specific agent:

knosh mcp-info github --agent reviewer --force

Give a slow server more time to start, and see each tool's parameters:

knosh mcp-info docs --timeoutSeconds 30 --verbose

Use mcp-info as a shell health check:

knosh mcp-info github > /dev/null && echo "github is reachable"