
Configurable Command MCP Server
โ 1from dewoller
A flexible MCP server that executes arbitrary command-line tools defined in a configuration file.
Configurable Command MCP Server
A flexible Model Context Protocol (MCP) server that allows you to define and execute arbitrary command-line tools through configuration files. Perfect for giving Claude Desktop access to specific command-line utilities in a secure, controlled manner.
Features
- ๐ ๏ธ Configuration-driven: Define tools via JSON without modifying code
- ๐ Secure execution: Parameter sanitization, directory restrictions, and command allowlisting
- โก Rate limiting: Prevent abuse with configurable execution limits
- ๐ Parameter validation: Type checking, patterns, and required/optional parameters
- ๐ฏ Directory scoping: Restrict tool execution to specific directories
- โฑ๏ธ Timeout control: Configurable execution timeouts per tool
- ๐ Output management: Size limits and structured result formatting
Adding Custom Tools
To add a new tool, edit tools.json:
{
"name": "my_tool",
"description": "Description for Claude",
"command": "actual-command",
"args": ["-flag", "{parameter}"],
"parametersSetup Instructions
1. Create the project directory and install dependencies
cd /Users/dewoller/code/generic_mcp
npm install2. Build the TypeScript code
npm run build3. Configure your tools
Edit the tools.json file to define your command-line tools. The file is already configured with useful examples like:
list_files: List directory contentsgrep_search: Search for patterns in filesword_count: Count lines/words/charactersgit_status: Check git repository statusfind_files: Find files by pattern- And more!
4. Configure Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"command-executor": {
"command": "node",
"args": ["/Users/dewoller/code/generic_mcp/dist/index.js"],
"env": {
"CONFIG_PATH": "/Users/dewoller/code/generic_mcp/tools.json"
}
}
}
}5. Restart Claude Desktop
After saving the configuration, restart Claude Desktop to load the MCP server.
Testing the Installation
Run Integration Tests
npm run test:integrationThis will test several tools and show you their output.
Manual Testing in Development Mode
# Run in development mode (with TypeScript)
npm run dev
# Or run the built version
npm startUsage Examples
Once configured, you can ask Claude to use these tools:
- "List all JavaScript files in my code directory"
- "Search for TODO comments in the project"
- "Show me the git status"
- "Count lines in all Python files"
- "Find all markdown files"
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.