A Model Context Protocol (MCP) server that enables execution of terminal commands through Claude Desktop
Terminal MCP Server
A Model Context Protocol (MCP) server that enables execution of terminal commands through Claude Desktop.
Features
- Execute any terminal command with arguments and options
- Navigate between directories while maintaining state
- Get terminal environment information
- Full output capture (stdout, stderr, exit codes)
- Proper error handling and formatting
Prerequisites
- Node.js v18 or higher
- TypeScript
- Claude Desktop
Installation
- Clone the repository:
git clone https://github.com/stat-guy/terminal.git
cd terminal
- Install dependencies:
npm install
- Build the project:
npm run build
Local Development Setup
-
Create or edit your Claude Desktop configuration file:
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%\\Claude\\claude_desktop_config.json
- On macOS:
Add the following configuration:
{
"mcpServers": {
"terminal": {
"command": "node",
"args": [
"[PATH_TO_REPO]/dist/index.js"
],
"env": {
"PERMISSION_REQUIRED": "true"
}
}
}
}
Replace [PATH_TO_REPO]
with the actual path to your cloned repository.
- Restart Claude Desktop
Available Tools
execute_command
- Execute any terminal command
- Supports command arguments and options
- Captures full output and exit codes
change_directory
- Change the current working directory
- Maintains state between commands
- Supports relative and absolute paths
get_current_directory
- Get the current working directory path
get_terminal_info
- Get information about the terminal environment
- Shows shell, user, platform, and recent command history
Usage Examples
Ask Claude to execute terminal commands like:
Can you check what's in my current directory?
-> Executes: ls -la
Can you tell me the current directory?
-> Executes: pwd
Can you change to the Downloads folder?
-> Executes: cd ~/Downloads
Security Considerations
- The server requires explicit user permission through Claude Desktop for command execution
- Environment variables can be controlled through the configuration
- Command execution includes timeouts and error handling
Development
- Watch for changes:
npm run watch
- Test changes:
- Make changes to source files in
src/
- Rebuild using
npm run build
- Restart Claude Desktop to load changes
Project Structure
/
├── src/
│ └── index.ts # Main server implementation
├── package.json # Project configuration and dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # This file
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License
Features
Execute
Navigate
Environment
Capture
Error-handling
Category
Development Tools