cli bridge
Pretty much a remix of the demo notes app.
The server implements a simple system for working with arbitrary clis with:
- Custom cli:// URI scheme for accessing individual notes
- Each cli resource has a name, help menu subtree, and text/plain mimetype
The server implements one tool:
- add (cmd): Recursively parses cli help menu subtrees and stores definition
- Takes "cmd"
- Updates server state and notifies clients of resource changes
- help (cmd): Return subtrees definition
- run (cmd, cmd_args | None): Run a known command
Note: I had to use /opt/homebrew/bin/uv
instead of just uv
in the command field in this json:
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{"mcpServers": {
"cli": {
"command": "uv",
"args": [
"run",
"--directory",
"\<path to repo folder\>",
"cli"
]}
}
}
By design, you have to explicitly 'add' a command before it can be run.
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm
with this command:
npx @modelcontextprotocol/inspector uv --directory <path to repo> run cli
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.