---
slug: "terminal-mcp"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/stat-guy/terminal@main/README.md"
repo: "https://github.com/stat-guy/terminal"
source_file: "README.md"
branch: "main"
---
# 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:
```bash
git clone https://github.com/stat-guy/terminal.git
cd terminal
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
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:

```json
{
  "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:
```bash
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