Linux Command MCP
by xkiranj
Linux Command MCP is a remote command execution system built using the Model Context Protocol (MCP). It allows secure and standardized execution of Linux commands.
Last updated: N/A
Linux Command MCP (Model Context Protocol)
Overview
Linux Command MCP is a remote command execution system built using the Model Context Protocol (MCP), allowing secure and standardized execution of Linux commands.
Configuration for Claude Desktop MCP Servers
Understanding the Configuration
The MCP servers are configured in the claude_desktop_config.json
file, typically located at ~/.config/Claude/claude_desktop_config.json
.
Configuration Structure
"mcpServers": {
"server-name": {
"command": "node|npx|uvx",
"args": ["server-specific-arguments"],
"env": {
"OPTIONAL_ENVIRONMENT_VARIABLES": "value"
}
}
}
Linux Command MCP Server Configuration
"linux-command": {
"command": "node",
"args": [
"/full/path/to/linux-command-mcp/server/dist/index.js"
]
}
Configuration Explained
"command"
: Specifies the executor (node
,npx
,uvx
)"args"
: Full path to the server's executable- Ensure the path is an absolute path to your
index.js
Important Configuration Tips
- Always use full, absolute paths
- Verify file permissions
- Ensure the specified file is executable
Prerequisites
- Node.js (v18.x or later)
- npm
- PM2 (for process management)
Installation
- Clone the repository
git clone <repository-url>
cd linux-command-mcp
- Install server dependencies
cd server
npm install
npm run build
- Install client dependencies
cd ../client
npm install
npm run build
Usage
Starting the Server
- Navigate to the server directory
cd server
- Start with PM2
npm run pm2:start
Using the Client
Available Commands:
- exec <command> - Execute a Linux command
- list [directory] - List directory contents
- help - Show this help
- exit - Exit the client
Execute commands directly:
# In the client directory
npm start
exec "ls -l"
exec "list /home"
exec "uname -a"
Sudo Commands
Important Note: The Linux Command MCP server CANNOT execute interactive commands like sudo
.
When you need to run a sudo command:
- Execute the command manually on the server
- Copy and paste the output
- Share the results
Troubleshooting
- Ensure PM2 is running:
pm2 list
- Check server logs:
pm2 logs linux-command-mcp-server
- Verify server and client builds
Using Linux Commands in Claude Desktop
Example Interactions
Here are some safe, generic examples of how you can ask Claude to run Linux commands:
-
Check System Information
- "Can you show me the Linux kernel version?"
$ uname -r
-
List Directory Contents
- "Show me the contents of the home directory"
$ ls ~
-
Check Available Disk Space
- "What's the disk usage on this system?"
$ df -h
-
View System Uptime
- "How long has this system been running?"
$ uptime
-
Check Network Interfaces
- "What network interfaces are available?"
$ ip addr
-
System Memory Information
- "Can you show me the memory usage?"
$ free -h
Important Usage Guidelines
- Privacy: Only run commands that do not reveal sensitive information
- Safety: Avoid commands that modify system configuration
- Scope: Focus on informational and diagnostic commands
What to Avoid
❌ Do NOT run commands that:
- Reveal personal file names or paths
- Contain sensitive system configurations
- Modify system settings
- Require sudo or root permissions
Example Conversation
User: "Can you check the Linux kernel version?"
Claude: Certainly! I'll run the command to show the Linux kernel version.
$ uname -r
5.15.0-91-generic
This kernel is running Ubuntu 22.04.3 LTS.
Security Considerations
- Only run this on trusted networks
- Limit access to the server
- Be cautious with command execution
Security and Best Practices
- Always be mindful of the information you're requesting
- Use commands that provide system-level, non-sensitive information
- When in doubt, ask Claude to clarify the command's purpose
Contributing
Improve and expand the Linux Command MCP by:
- Adding more safe, generic command examples
- Enhancing documentation
- Suggesting improvements to command execution
License
MIT license
Contact
-
Email: [email protected]
-
Blockchain: 0xkiran.eth
- Ethereum: 0x67F367edb83d8fdF48E7E7Cfcb35183e746c292c
- Bitcoin: bc1q688np092y8raxag5e6573chrcgck5756yv476v