Skip to main content
Glama
AbdurRaahimm

MCP Terminal & Git Server

by AbdurRaahimm
README.md
# mcp-terminal

MCP server for git and terminal access

## Features

This MCP server provides the following tools:

*   **`execute_command`**: Execute a terminal command in a specified directory.
*   **`git_clone`**: Clone a git repository to a specified location.
*   **`install_react_project`**: Create a new React project using Vite.
*   **`install_vue_project`**: Create a new Vue project using Vite.
*   **`install_next_project`**: Create a new Next.js project.
*   **`open_in_vscode`**: Open a directory or file in VSCode.
*   **`check_directory`**: Check if a directory exists and list its contents.

## Prerequisites

*   [Node.js](https://nodejs.org/) (which includes npm)
*   [Visual Studio Code](https://code.visualstudio.com/) (for features that open projects in VSCode)

## Installation

1.  Clone the repository (if you haven't already):
    ```bash
    git clone https://github.com/AbdurRaahimm/mcp-git-terminal-server.git mcp-terminal
    cd mcp-terminal
    ```
2.  Install dependencies:
    ```bash
    npm install
    ```

## Usage

1.  Build the server:
    ```bash
    npm run build
    ```
2.  Start the server:
    ```bash
    npm run start
    ```
    Alternatively, you can use the development script which builds and then starts the server:
    ```bash
    npm run dev
    ```
    The server will then be running on stdio, ready to accept MCP requests from a compatible client.

    To configure this server with an MCP client, you might need to specify the path to the built `index.js` file (e.g., `dist/index.js` in this project's root) and the command to run it (e.g., `node`). Refer to your MCP client's documentation for specific instructions.

## Available Tools

Here's a more detailed look at the available tools and their parameters:

### `execute_command`

Execute a terminal command in a specified directory.

*   **Input Schema:**
    *   `command` (string, required): The command to execute (e.g., 'npm install', 'ls -la').
    *   `cwd` (string, optional): Working directory for the command (defaults to current directory).

### `git_clone`

Clone a git repository to a specified location.

*   **Input Schema:**
    *   `repositoryUrl` (string, required): Git repository URL.
    *   `destination` (string, required): Destination path where to clone the repository.
    *   `openInVSCode` (boolean, optional): Open the cloned repository in VSCode (default: `false`).

### `install_react_project`

Create a new React project using Vite and open it in VSCode.

*   **Input Schema:**
    *   `projectName` (string, required): Name of the React project.
    *   `destination` (string, required): Directory where to create the project (e.g., `~/Desktop`).
    *   `template` (string, optional, enum: `["react", "react-ts", "react-swc", "react-swc-ts"]`): Vite template to use (default: `react-ts`).
    *   `installDependencies` (boolean, optional): Install dependencies after creating project (default: `true`).

### `install_vue_project`

Create a new Vue project using Vite and open it in VSCode.

*   **Input Schema:**
    *   `projectName` (string, required): Name of the Vue project.
    *   `destination` (string, required): Directory where to create the project (e.g., `~/Desktop`).
    *   `template` (string, optional, enum: `["vue", "vue-ts"]`): Vite template to use (default: `vue-ts`).
    *   `installDependencies` (boolean, optional): Install dependencies after creating project (default: `true`).

### `install_next_project`

Create a new Next.js project and open it in VSCode.

*   **Input Schema:**
    *   `projectName` (string, required): Name of the Next.js project.
    *   `destination` (string, required): Directory where to create the project (e.g., `~/Desktop`).
    *   `typescript` (boolean, optional): Use TypeScript (default: `true`).
    *   `installDependencies` (boolean, optional): Install dependencies after creating project (default: `true`).

### `open_in_vscode`

Open a directory or file in VSCode.

*   **Input Schema:**
    *   `path` (string, required): Path to open in VSCode.

### `check_directory`

Check if a directory exists and list its contents.

*   **Input Schema:**
    *   `path` (string, required): Directory path to check.

## License

This project is licensed under the MIT License. (As specified in `package.json`)


## Usage
```json
{
  "mcpServers": {
    "git-terminal": {
      "command": "node",
      "args": ["/path/to/mcp-git-terminal/dist/index.js"]
    }
  }
}
```

TDQS

B3.1/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have distinct purposes: check_directory for inspection, execute_command for general terminal operations, git_clone for repository cloning, and three project installation tools for different frameworks. However, the three install_*_project tools could potentially be confused as they follow similar patterns but target different frameworks, creating minor ambiguity in selection.

Naming Consistency3/5

The naming shows mixed conventions: check_directory, execute_command, and git_clone follow a verb_noun pattern, while install_next_project, install_react_project, and install_vue_project use a verb_framework_project structure. open_in_vscode uses a prepositional phrase. This inconsistency makes the set less predictable, though still readable.

Tool Count4/5

With 7 tools, the count is reasonable for a combined terminal and Git server. It covers core operations like directory checking, command execution, Git cloning, project setup, and IDE opening. The scope is slightly broad but manageable, with no obvious bloat or thinness.

Completeness3/5

The server covers basic terminal and Git operations, but there are notable gaps. For terminal operations, it lacks file manipulation (create, delete, edit) and navigation tools. For Git, it only includes cloning, missing commit, push, pull, and status operations. The project installation tools are framework-specific but don't cover other common setups.

Maintenance

ActivityInactive
ResponsivenessNo issues