Skip to main content
Glama

Simple Commands MCP Server

by nstrayer
README.md6.27 kB
# Simple Commands MCP Server A configuration-driven Model Context Protocol (MCP) server that provides tools for executing developer commands and managing long-running processes. This server allows AI assistants to run predefined commands through a simple JSON configuration file. ## Features - **Configuration-driven**: Add new tools by simply updating a JSON config file - **Daemon Management**: Handle long-running processes with automatic start/stop/status/logs commands - **Auto-generated Controls**: Each daemon automatically gets `_start`, `_status`, `_stop`, and `_logs` commands - **Process Monitoring**: Track PID, uptime, state, and capture output for all daemons - **Automatic Cleanup**: All processes are terminated when the MCP client disconnects - **Cross-platform**: Works on macOS, Linux, and Windows ## Installation ### Using npx (recommended) No installation needed! Just run directly: ```bash npx simple-commands-mcp @config.json ``` ### Global Installation ```bash npm install -g simple-commands-mcp simple-commands-mcp @config.json ``` ### Local Development ```bash git clone https://github.com/yourusername/simple-commands-mcp.git cd simple-commands-mcp npm install npm run build npm link simple-commands-mcp @config.json ``` ## Usage ### Basic Usage Create a `config.json` file with your tool definitions: ```json { "tools": [ { "name": "list_files", "description": "List files in current directory", "command": "ls -la", "daemon": false }, { "name": "dev_server", "description": "Start development server", "command": "npm run dev", "daemon": true } ] } ``` Then run the MCP server: ```bash npx simple-commands-mcp @config.json ``` ### Configuration Options Each tool in the configuration has the following properties: - `name` (string, required): Unique identifier for the tool - `description` (string, required): Human-readable description of what the tool does - `command` (string, required): The shell command to execute - `daemon` (boolean, required): Set to `true` for long-running processes, `false` for one-shot commands ### Daemon Tools When you set `daemon: true` for a tool, the server automatically creates four commands: - `{name}_start`: Start the daemon process - `{name}_status`: Get current status, PID, uptime, and recent output - `{name}_stop`: Stop the daemon process - `{name}_logs`: Get the last N lines of output (default: 50) Example: A tool named `dev_server` with `daemon: true` will create: - `dev_server_start` - `dev_server_status` - `dev_server_stop` - `dev_server_logs` ## Examples ### Simple Commands Configuration ```json { "tools": [ { "name": "git_status", "description": "Show git repository status", "command": "git status", "daemon": false }, { "name": "run_tests", "description": "Run test suite", "command": "npm test", "daemon": false }, { "name": "build_project", "description": "Build the project", "command": "npm run build", "daemon": false } ] } ``` ### Development Environment Configuration ```json { "tools": [ { "name": "frontend", "description": "Frontend development server with hot reload", "command": "npm run dev:frontend", "daemon": true }, { "name": "backend", "description": "Backend API server", "command": "npm run dev:backend", "daemon": true }, { "name": "database", "description": "Local database server", "command": "docker-compose up db", "daemon": true }, { "name": "migrate", "description": "Run database migrations", "command": "npm run db:migrate", "daemon": false } ] } ``` ### MCP Client Configuration To use this server with an MCP client (like Claude Desktop), add it to your MCP settings: ```json { "mcpServers": { "simple-commands": { "command": "npx", "args": ["simple-commands-mcp", "@/path/to/your/config.json"] } } } ``` ## Working Directory Commands are executed in the directory where you run the MCP server. To run commands in a specific directory: 1. Start the server from that directory: ```bash cd /path/to/project npx simple-commands-mcp @config.json ``` 2. Or use absolute paths in your commands: ```json { "name": "project_build", "description": "Build the project", "command": "cd /path/to/project && npm run build", "daemon": false } ``` ## Troubleshooting ### Server won't start - Ensure Node.js 18+ is installed: `node --version` - Check that your config file is valid JSON - Make sure the config file path is correct and prefixed with `@` ### Commands fail to execute - Verify commands work when run manually from the same directory - Check that required dependencies are in PATH - Review the server logs for error messages ### Daemon processes not stopping - The server automatically tracks and terminates all daemon processes when: - The MCP client disconnects - The server receives SIGINT/SIGTERM - You use the `{name}_stop` command - Use Ctrl+C to gracefully shutdown the server and all daemons ## Development ### Building from Source ```bash npm install npm run build ``` ### Running in Development Mode ```bash npm run dev ``` ### Project Structure ``` simple-commands-mcp/ ├── src/ │ ├── cli.ts # CLI entry point for npx │ ├── server.ts # Main MCP server │ ├── types.ts # TypeScript type definitions │ ├── logger.ts # Logging utilities │ ├── processManager.ts # Daemon process management │ └── toolExecutor.ts # Command execution logic ├── dist/ # Compiled JavaScript (generated) ├── config.json # Example configuration ├── package.json # Package metadata and scripts └── tsconfig.json # TypeScript configuration ``` ## License MIT ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## Support For issues and feature requests, please use the [GitHub Issues](https://github.com/yourusername/simple-commands-mcp/issues) page.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nstrayer/simple-commands-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server