# 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"]
}
}
}
```