Terminal MCP Server

by stat-guy

8 stars
430 downloads
Not rated
GitHub

About

MCP server for executing terminal commands through Claude Desktop

Details

Author
stat-guy
GitHub stars
8
Downloads
430
Categories
Developer Tools

- Execute any terminal command with arguments and options.
- Navigate directories while maintaining state between commands.
- Get the current working directory path.
- Retrieve terminal environment information (shell, user, platform).
- Full output capture (stdout, stderr, exit codes).
- Proper error handling and formatting.

Clone the repository, install dependencies (npm install), and build the project (npm run build). Then add the server configuration to your Claude Desktop configuration file (e.g., ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) with the correct path and the environment variable PERMISSION_REQUIRED: "true". After restarting Claude Desktop, you can ask Claude to run commands such as checking directory contents or changing folders.

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

1. Clone the repository:

git clone https://github.com/stat-guy/terminal.git
cd terminal

2. Install dependencies:

npm install

3. Build the project:

npm run build

Local Development Setup

1. 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

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.

2. 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

1. Watch for changes:

npm run watch

2. 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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.