项目简介

terminal MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为 Claude Desktop 等 MCP 客户端提供执行终端命令的能力。通过注册工具,该服务器允许 LLM 客户端安全地调用系统终端功能,实现文件系统操作、环境信息查询等任务。

主要功能点

  • 执行终端命令: 允许 Claude Desktop 调用 'execute_command' 工具执行任意终端命令,并返回命令的完整输出(包括标准输出、标准错误和退出码)。
  • 目录管理: 支持 'change_directory' 工具,允许 Claude Desktop 更改服务器的工作目录,并在后续命令中保持目录状态。'get_current_directory' 工具则可以获取当前工作目录路径。
  • 终端信息查询: 通过 'get_terminal_info' 工具,Claude Desktop 可以获取关于终端环境的信息,例如 Shell 类型、当前用户、操作系统平台等。
  • 安全控制: 服务器设计考虑了安全性,命令执行需要 Claude Desktop 显式用户许可,并支持配置环境变量进行权限控制。

安装步骤

  1. 克隆仓库: 打开终端,执行以下命令克隆仓库到本地:

    git clone https://github.com/stat-guy/terminal.git
    cd terminal
  2. 安装依赖: 在仓库目录下,执行以下命令安装项目依赖:

    npm install
  3. 构建项目: 执行以下命令编译 TypeScript 代码:

    npm run build

服务器配置

要将 terminal MCP Server 集成到 Claude Desktop,您需要编辑 Claude Desktop 的配置文件。

  • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%\Claude\claude_desktop_config.json'

在配置文件中,找到或创建 '"mcpServers"' 字段,并添加以下 JSON 配置:

{
  "mcpServers": {
    "terminal": {  // 服务器名称,在 Claude Desktop 中引用
      "command": "node",  // 启动服务器的命令,这里使用 Node.js 运行 JavaScript
      "args": [
        "[PATH_TO_REPO]/dist/index.js"  // 服务器入口文件路径,需要替换为实际仓库路径
      ],
      "env": {
        "PERMISSION_REQUIRED": "true" // (可选) 设置环境变量,这里示例要求执行命令需要权限
      }
    }
  }
}

请将 '[PATH_TO_REPO]' 替换为您克隆仓库的实际本地路径。 例如,如果您的仓库在 '/Users/yourname/terminal',则应替换为 '/Users/yourname/terminal'。

配置完成后,重启 Claude Desktop 使配置生效。

基本使用方法

配置完成后,您可以在 Claude Desktop 中通过自然语言指令调用 terminal MCP Server 的功能。例如:

  • 查询当前目录: 在 Claude Desktop 中提问类似 "Can you check what's in my current directory?" 或 "当前目录有什么文件?" Claude Desktop 可能会调用 'get_current_directory' 工具,并返回当前目录路径。
  • 列出目录内容: 提问类似 "Can you list files in the current directory?" 或 "列出当前目录的文件"。 Claude Desktop 可能会调用 'execute_command' 工具,并执行 'ls -la' 命令。
  • 切换目录: 提问类似 "Can you change to the Downloads folder?" 或 "切换到下载目录"。 Claude Desktop 可能会调用 'change_directory' 工具,并将工作目录切换到下载目录。
  • 获取终端信息: 提问类似 "What is my terminal environment?" 或 "终端环境信息"。 Claude Desktop 可能会调用 'get_terminal_info' 工具,并返回终端环境的详细信息。

请注意,具体的指令触发方式取决于 Claude Desktop 的自然语言理解和工具调用策略。您可能需要根据 Claude Desktop 的具体表现调整您的提问方式。

信息

分类

桌面与硬件