
MCP Client CLI
https://github.com/thedotmack/mcp-client-cli- Category
- AI Agents
- Rank
- No. 1650Tools index
Previous survey · No. 1656 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- thedotmack
- GitHub
- 44 stars
- Date
About
Command-line interface for any Model Context Protocol (MCP) server. Talk to any MCP from your shell.
What it does
It turns a server’s discovered tool schemas into shell commands, flags, help text, and formatted results. The client starts a configured server process, completes the MCP handshake, fetches its tool list, converts schema properties into command options, then sends selected tool calls over newline-delimited JSON-RPC.
Why it's ranked here
The core idea is practical and compact: one adapter can expose changing MCP tool sets without hand-maintained command definitions. The implementation covers discovery, argument conversion, timeouts, and readable output. However, the documented invocation style conflicts with the current command structure, and the advertised remote transport choices are not backed by corresponding client transport code.
What's good
Required and optional flags come directly from each tool schema, including numeric, boolean, array, and object inputs. JSON arguments are parsed automatically, while object results and JSON text receive readable formatting. Named server configuration supports commands, arguments, environment variables, descriptions, and a default server. Requests also have a thirty-second timeout.
Tradeoffs
The implemented client communicates only by spawning a local process with piped standard input and output. Although server management accepts SSE and HTTP choices, those configurations are later treated like executable commands. The current CLI also requires configured servers and server-name subcommands, while the README presents inline server selection and direct tool invocation. Resources and prompts have types but no operating commands.
How to use it well
Use it for testing stdio MCP servers, inspecting discovered tools, and adding tool calls to shell automation or CI jobs. It suits engineers who want schema-driven commands without writing a JSON-RPC client. Keep server definitions explicit and pass arrays or objects as JSON strings. Do not choose it when you need working SSE or HTTP transport, resource access, prompt access, or an interactive client.
Technical notes+
src/client/MCPClient.ts implements newline-delimited JSON-RPC over a spawned child process, performs the initialize handshake with protocol version 2024-11-05, tracks pending requests, and enforces 30-second request timeouts. src/cli/generator.ts maps schema properties into Commander options, parses string values as JSON when possible, and formats text content or objects. src/cli/index.ts builds management and server subcommands from saved configuration. src/config/loader.ts searches three configuration locations and writes to the home-level configuration by default. package.json exposes an ES module CLI and library surface, requires Node.js 18 or newer, and compiles TypeScript into dist. The SSE and HTTP options in src/cli/index.ts only store a transport label and URL, while src/client/MCPClient.ts still spawns the stored command, so remote transports are not implemented end to end.
Observed
- License
- MIT
- Primary language
- TypeScript compiled to ES2022 JavaScript
- Packaging
- npm package with a global mcp-cli executable and an ES module export
- Runtime support
- Node.js 18 or newer
- Interfaces
- CLI, importable package surface, and MCP client over stdio JSON-RPC
- Dependencies
- Commander is the sole runtime dependency listed
- Test structure
- A Node test script is defined, but no test files appear in the supplied repository tree
Read from README.md, package.json, src/cli/index.ts, src/types/mcp.ts, src/cli/generator.ts, src/config/loader.ts, src/client/MCPClient.ts, bin/mcp-cli.js, LICENSE, SUMMARY.md, tsconfig.json, examples/mcp-servers-config.json, examples/chroma-mcp/.mcp-cli.json.
What it can do
Connect to MCP server
MCP server endpoint or configuration → Established connection to MCP server
Send commands to MCP server
Command text via command line → Response from MCP server
Execute MCP server functions
Function name and parameters → Function execution results
Query MCP server capabilities
Server discovery request → List of available server functions and features
Exchange messages with MCP server
Protocol messages and data → Server responses and data
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.