Important
This project is archived. Use mcptools instead — it's a more feature-complete Go implementation with the same goals.
Speak to MCP servers directly. climcp is an interface between human and MCP servers.
[You] <-> [MCP]
- Explore:
connectfor exploration. see what a MCP server can do. - CI: one-shot
runfor automation - Debugging (roadmap):
withfor debugging MCP in your terminal. [not implemented yet]
bun add -g climcp
# or
npm install -g climcpRequires Node.js 22+ and bun (for development).
climcp connect <command...>— start the MCP server process, handshake, drop into an interactive prompt.climcp run "<command>" [tool] [args...]— start the server, call one tool once, exit. Omit tool to list available tools.
Interactive mode with REPL. Available commands:
/help,/h— show help/tools,/t— list available tools/quit,/q— exit
Example:
$ climcp connect bunx @modelcontextprotocol/server-filesystem .
read_file: { path: string, tail?: number, head?: number }
Read the complete contents of a file as text.
...
> list_directory path=.
< result: { ... }
> /qOne-shot execution. Supports two input formats:
# Query style (key=value)
climcp run "bunx @modelcontextprotocol/server-filesystem ." list_directory path=.
# Quoted values supported
climcp run "..." some_tool message="hello world" name='John Doe'
# JSON style
climcp run "bunx @modelcontextprotocol/server-filesystem ." list_directory '{ "path": "." }'
# List available tools (omit tool name)
climcp run "bunx @modelcontextprotocol/server-filesystem ."
# stdin also works (JSON or query style)
echo '{ path: "." }' | climcp run "bunx @modelcontextprotocol/server-filesystem ." list_directory
echo "path=." | climcp run "bunx @modelcontextprotocol/server-filesystem ." list_directoryFormat is auto-detected: { prefix means JSON5 (supports trailing commas, unquoted keys, comments), otherwise query style (shell-like quoting supported).
Success prints JSON to stdout; any failure writes to stderr and exits non-zero.
for development, see <./DEVELOPMENT.md>