Command Executor MCP Server

local-only server

The server can only run on the clientโ€™s local machine because it depends on local resources.

command-executor MCP Server

A Model Context Protocol server for executing pre-approved commands securely.

๐ŸŽฅ Demo

https://github.com/user-attachments/assets/ed763a12-b685-4e0b-b9a5-bc948a590f51

โœจ Features

  • Secure command execution with pre-approved command list
  • Configurable allowed commands through environment variables
  • Built with TypeScript and MCP SDK
  • Communication via stdio for seamless integration
  • Error handling and security validations
  • Real-time command output streaming

๐Ÿš€ Installation

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

โš™๏ธ Configuration

๐Ÿ”’ Allowed Commands

By default, the following commands are allowed:

  • git
  • ls
  • mkdir
  • cd
  • npm
  • npx
  • python

You can customize the allowed commands by setting the ALLOWED_COMMANDS environment variable:

export ALLOWED_COMMANDS=git,ls,mkdir,python

๐Ÿ”Œ Claude Desktop Integration

To use with Claude Desktop, add the server config:

On MacOS:

~/Library/Application Support/Claude/claude_desktop_config.json

On Windows:

%APPDATA%/Claude/claude_desktop_config.json

Configuration example:

{ "mcpServers": { "command-executor": { "command": "/path/to/command-executor/build/index.js" } } }

๐Ÿ›ก๏ธ Security Considerations

The command-executor server implements several security measures:

  1. Pre-approved Command List
    • Only explicitly allowed commands can be executed
    • Default list is restrictive and security-focused
    • Commands are validated by prefix to prevent injection
  2. Command Validation
    • Command prefix validation prevents command injection
    • No shell execution for improved security
    • Environment variables are properly sanitized
  3. Error Handling
    • Comprehensive error handling for unauthorized commands
    • Clear error messages for debugging
    • Failed commands don't crash the server
  4. Environment Isolation
    • Server runs in its own environment
    • Environment variables can be controlled
    • Limited system access

๐Ÿ’ป Development

๐Ÿ“ Project Structure

command-executor/ โ”œโ”€ src/ โ”‚ โ””โ”€ index.ts # Main server implementation โ”œโ”€ build/ โ”‚ โ””โ”€ index.js # Compiled JavaScript โ”œโ”€ assets/ โ”‚ โ””โ”€ header.svg # Project header image โ””โ”€ package.json # Project configuration

๐Ÿ› Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

๐Ÿ› ๏ธ Tool API

The server provides a single tool:

execute_command

Executes a pre-approved command.

Parameters:

  • command (string, required): The command to execute

Example Request:

{ "name": "execute_command", "arguments": { "command": "git status" } }

Example Response:

{ "content": [ { "type": "text", "text": "On branch main\nNothing to commit, working tree clean" } ] }

Error Response:

{ "content": [ { "type": "text", "text": "Command execution failed: Command not allowed" } ], "isError": true }

โŒ Error Handling

The server provides detailed error messages for various scenarios:

  1. Unauthorized Commands
    { "code": "InvalidParams", "message": "Command not allowed: [command]. Allowed commands: git, ls, mkdir, cd, npm, npx, python" }
  2. Execution Failures
    { "content": [ { "type": "text", "text": "Command execution failed: [error message]" } ], "isError": true }

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a new Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

You must be authenticated.

A
security โ€“ no known vulnerabilities
F
license - not found
A
quality - confirmed to work

A Model Context Protocol server that allows secure execution of pre-approved commands, enabling AI assistants to safely interact with the user's system.

  1. ๐ŸŽฅ Demo
    1. โœจ Features
      1. ๐Ÿš€ Installation
        1. โš™๏ธ Configuration
          1. ๐Ÿ”’ Allowed Commands
            1. ๐Ÿ”Œ Claude Desktop Integration
            2. ๐Ÿ›ก๏ธ Security Considerations
              1. ๐Ÿ’ป Development
                1. ๐Ÿ“ Project Structure
                  1. ๐Ÿ› Debugging
                  2. ๐Ÿ› ๏ธ Tool API
                    1. execute_command
                    2. โŒ Error Handling
                      1. ๐Ÿค Contributing
                        1. ๐Ÿ“„ License