使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供安全可控的终端访问能力。通过此服务器,LLM 可以在预设的目录范围内执行终端命令,进行文件和目录管理操作,从而扩展 LLM 的应用场景,例如代码开发、文件处理等。
主要功能点
- 安全命令执行:允许 LLM 执行预定义的终端命令,如 'git'、'npm'、'yarn' 和基本的目录操作命令,所有命令执行都在服务器端进行安全检查,确保只允许执行安全命令和访问限定目录内的资源。
- 目录管理:支持 LLM 在允许的目录下创建新目录 ('mkdir') 和切换目录 ('cd'),方便 LLM 进行文件组织和导航。
- 工具集成:通过 MCP 协议的工具 (Tools) 机制,将终端命令封装为可被 LLM 调用的工具,例如 'execute_command'(执行通用命令)、'mkdir'(创建目录)、'cd'(切换目录)。
- 可配置的安全策略:通过环境变量 'ALLOWED_DIRECTORY' 设定 LLM 可以访问的根目录,所有文件操作都限制在此目录及其子目录内,保障系统安全。
安装步骤
- 克隆仓库
git clone https://github.com/AItheLab/mcp-terminal-use cd mcp-terminal-use - 安装依赖
确保已安装 Node.js 和 npm,然后运行:
npm install - 构建项目
构建成功后,会在 'dist' 目录下生成服务器的入口文件 'index.js'。npm run build
服务器配置
MCP 客户端需要配置以下 JSON 信息来连接到此 MCP 服务器。请根据实际情况修改 'args' 和 'env' 中的路径。
{ "mcpServers": { "terminal": { "command": "node", "args": [ "${HOME}/path/to/mcp-terminal-use/dist/index.js" // 服务器入口文件 index.js 的路径,请替换为实际路径 ], "env": { "ALLOWED_DIRECTORY": "${HOME}/your/allowed/directory" // 允许 LLM 访问的根目录,请替换为您希望设定的目录 } } } }
- 'server name': 'terminal' (服务器名称,可以自定义)
- 'command': 'node' (运行服务器的命令,确保系统已安装 Node.js)
- 'args': 启动命令的参数,这里指定了编译后的服务器入口文件 'dist/index.js' 的路径。'${HOME}/path/to/mcp-terminal-use' 需要替换为仓库在您本地的实际路径。
- 'env': 环境变量配置。'ALLOWED_DIRECTORY' 用于设置允许 LLM 访问的目录,'${HOME}/your/allowed/directory' 需要替换为您希望设定的目录路径。请务必配置 'ALLOWED_DIRECTORY' 以确保服务器的安全性,限制 LLM 的访问范围。
基本使用方法
- 确保已完成安装和配置步骤。
- 启动 MCP 客户端,并按照客户端的指引加载上述服务器配置。
- 客户端成功连接到 MCP 服务器后,LLM 即可通过调用 'execute_command'、'mkdir'、'cd' 等工具,与服务器进行交互,执行终端命令和管理文件。
- LLM 发送请求到 MCP 服务器,服务器会执行相应的操作,并将结果以 JSON-RPC 响应的形式返回给客户端。
注意: 请仔细配置 'ALLOWED_DIRECTORY' 环境变量,确保只允许 LLM 访问必要的目录,避免潜在的安全风险。
信息
分类
桌面与硬件