by gavinuhma on 3/11/25, 12:58 PM with 11 comments
I figured if I create a cli for spawning mcp servers, I could intercept the stdin, stdout, stderr etc and modify what the clients see when they are making calls to list tools, resources, and prompts.
Well it worked!
In the initial version you can easily add a server to claude with a safe list of tools:
npx -y mcpgod add @modelcontextprotocol/server-everything --client claude --tools=echo,add
Now when you load Claude Desktop, it will only discover the echo and add tools from that server. It's a nice way to keep the agents in line :)
You can check it out here: https://github.com/mcpgod/cli
It will also log everything that a client is doing to ~/mcpgod/logs.
Currently it only has support for claude, but it will be easy to add cursor, cline, windsurf, etc.
With the `tools` command you can list all of a servers tools, and even call a tool directly from the command line, which is pretty fun.
I was thinking it would be nice to create a UI for it to easily enable/disable servers and tools for each client, inspect logs, view analytics, etc.
Thanks for reading!
by nbbaier on 3/11/25, 4:33 PM
2025-03-11T16:29:00.168Z [@modelcontextprotocol/server-everything] [info] Client transport closed
› Error: Nonexistent flag: --tools echo,add
› See more help with --help
USAGE
$ god run [-t <value>]
FLAGS
-t, --tools=<value> Comma separated list of approved tools
Also, there's no logs for ~/mcpgod for me (that folder doesn't even exist)by nsonha on 3/12/25, 7:36 AM
- Always run MCP in a sandbox
- If I am gonna browse open source MCP and try them out casually, I need to control permission better than approving tool calling blindly. I prefer to auto approve all calls but control permission for directory access (if run outside of sandbox), or network calls based on configurable criteria
- An UI for tracking of calls
by Prosammer on 3/14/25, 4:38 PM