inspect_server
Connect to an MCP server to inspect its capabilities, version, and supported features for testing and validation purposes.
Instructions
Connect to an MCP server and inspect its capabilities, version, and supported features.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| transport | Yes | Transport type to use for connecting to the server | |
| url | No | Server URL (required for streamable-http transport) | |
| command | No | Command to launch the server (required for stdio transport) | |
| args | No | Arguments to pass to the server command | |
| headers | No | HTTP headers to send (e.g. Authorization) | |
| timeoutMs | No | Timeout in milliseconds (default: 30000) |
Implementation Reference
- src/tools/inspectServer.ts:36-78 (handler)The core implementation of the inspect_server tool, which runs CLI commands to inspect an MCP server.
export async function inspectServer( input: InspectServerInput, ): Promise<InspectServerOutput> { const args = buildArgs(input); const result = await runCli(args, { timeoutMs: input.timeoutMs }); const session: NegotiatedSession = JSON.parse(result.stdout); const caps = session.serverCapabilities; const capabilities = { tools: "tools" in caps, resources: "resources" in caps, prompts: "prompts" in caps, completions: "completions" in caps, logging: "logging" in caps, }; const structured: InspectServerOutput["structured"] = { serverName: session.serverInfo.name, serverVersion: session.serverInfo.version, protocolVersion: session.protocolVersion, capabilities, }; if (session.serverInstructions) { structured.instructions = session.serverInstructions; } const capLines = ( ["tools", "resources", "prompts", "completions", "logging"] as const ) .map((c) => ` ${capabilities[c] ? "\u2713" : "\u25CB"} ${c}`) .join("\n"); const text = [ `Server: ${structured.serverName} v${structured.serverVersion}`, `Protocol: ${structured.protocolVersion}`, "", "Capabilities:", capLines, ].join("\n"); return { text, structured }; } - src/tools/inspectServer.ts:3-10 (schema)Input and output interface definitions for the inspect_server tool.
export interface InspectServerInput { transport: "stdio" | "streamable-http"; url?: string; command?: string; args?: string | string[]; headers?: Record<string, string>; timeoutMs?: number; } - src/server.ts:221-228 (registration)The request handler registration where inspect_server is mapped to its execution function.
case "inspect_server": { const output = await inspectServer( args as unknown as Parameters<typeof inspectServer>[0], ); return { content: [{ type: "text" as const, text: output.text }], }; }