mcpField
L
Linux Command MCP (Model Context Protocol)

Linux Command MCP (Model Context Protocol)

本地服务
github.com/xkiranj开发工具2536 周前更新

关于 Linux Command MCP (Model Context Protocol)

Linux Command MCP 是一个用于远程执行 Linux 命令的 MCP 服务与客户端。它面向希望通过 Claude Desktop 等客户端执行系统诊断命令的用户,并强调安全和标准化的执行方式。

主要功能

  1. 01远程执行 Linux 命令
  2. 02提供命令行客户端
  3. 03支持 stdin 输入交互式脚本
  4. 04通过 PM2 管理服务进程

适用场景

  1. 01通过 Claude Desktop 查询系统信息,如内核版本与磁盘用量
  2. 02在远程主机上运行只读诊断命令

MCP 相关

该项目包含一个 MCP 服务,用于执行 Linux 命令,并可配置到 Claude Desktop 的 MCP 服务列表中;同时提供一个命令行客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Linux Command MCP(Model Context Protocol)

概述

Linux Command MCP 是一个使用 Model Context Protocol(MCP)构建的远程命令执行系统,可安全、标准化地执行 Linux 命令。

Claude Desktop MCP 服务的配置

了解配置

MCP 服务在 claude_desktop_config.json 文件中配置,该文件通常位于 ~/.config/Claude/claude_desktop_config.json。

配置结构
"mcpServers": {
  "server-name": {
    "command": "node|npx|uvx",
    "args": ["server-specific-arguments"],
    "env": {
      "OPTIONAL_ENVIRONMENT_VARIABLES": "value"
    }
  }
}
Linux Command MCP 服务配置
"linux-command": {
  "command": "node",
  "args": [
    "/full/path/to/linux-command-mcp/server/dist/index.js"
  ]
}
配置说明
  • "command":指定执行器(node、npx、uvx)
  • "args":服务可执行文件的完整路径
  • 确保该路径是指向 index.js 的绝对路径
重要配置提示
  • 始终使用完整的绝对路径
  • 验证文件权限
  • 确保指定的文件可执行

前提条件

  • Node.js(v18.x 或更高版本)
  • npm
  • PM2(用于进程管理)

安装

  1. 克隆仓库
git clone <repository-url>
cd linux-command-mcp
  1. 安装服务依赖
cd server
npm install
npm run build
  1. 安装客户端依赖
cd ../client
npm install
npm run build

使用

启动服务
  1. 进入服务目录
cd server
  1. 使用 PM2 启动
npm run pm2:start
使用客户端

可用命令:

  1. exec - 执行 Linux 命令
  2. list [directory] - 列出目录内容
  3. help - 显示此帮助
  4. exit - 退出客户端

直接执行命令:

# In the client directory
npm start 
exec "ls -l"
exec "list /home"
exec "uname -a"
交互式命令与 stdin 支持

✨ 新增:Linux Command MCP 服务现已支持通过 stdin 运行交互式脚本!

使用 stdin 参数

现在你可以使用 stdin 参数为交互式脚本提供输入:

// Example: Run an interactive Python game
await callTool('execute-command', {
  command: 'python3 /path/to/interactive_script.py',
  stdin: '15\n2\n1\n2\n1\n'  // Automated responses
});

工作原理:

  • stdin 参数会在执行前将输入发送给脚本
  • 输入按行发送(使用 \n 表示换行)
  • 脚本通过自动应答运行至完成
  • 所有输出都会被捕获并返回
交互式脚本示例

带输入的 Python 游戏:

# Game expects: number of sticks, then player moves
stdin: "15\n2\n1\n2\n1\n"

设置向导:

# Wizard expects: username, email, confirm
stdin: "johndoe\[email protected]\ny\n"

多项选择提示:

# Script shows options 1-5, user selects option 3
stdin: "3\n"
Sudo 命令

重要说明:Linux Command MCP 服务仍然无法执行需要密码提示的 sudo 命令。

对于 sudo 命令:

  1. 使用适当的权限手动执行该命令
  2. 或为特定命令配置免密码 sudo
  3. 或对非 sudo 的交互式脚本使用 stdin 参数

故障排除

  • 确保 PM2 正在运行:pm2 list
  • 查看服务日志:pm2 logs linux-command-mcp-server
  • 验证服务端和客户端的构建

在 Claude Desktop 中使用 Linux 命令

交互示例

以下是一些安全、通用的示例,展示你可以如何让 Claude 运行 Linux 命令:

  1. 查看系统信息

    • "你能显示 Linux 内核版本吗?"
    $ uname -r
    
  2. 列出目录内容

    • "显示主目录的内容"
    $ ls ~
    
  3. 查看可用磁盘空间

    • "这个系统的磁盘使用情况如何?"
    $ df -h
    
  4. 查看系统运行时间

    • "这个系统已经运行了多久?"
    $ uptime
    
  5. 查看网络接口

    • "有哪些可用的网络接口?"
    $ ip addr
    
  6. 系统内存信息

    • "你能显示内存使用情况吗?"
    $ free -h
    
重要使用准则
  • 隐私:只运行不会泄露敏感信息的命令
  • 安全:避免运行会修改系统配置的命令
  • 范围:专注于信息类和诊断类命令
应避免的事项

❌ 不要运行以下命令:

  • 泄露个人文件名或路径
  • 包含敏感系统配置
  • 修改系统设置
  • 需要 sudo 或 root 权限
对话示例

用户:"你能检查 Linux 内核版本吗?"

Claude:当然可以!我将运行命令来显示 Linux 内核版本。

$ uname -r
5.15.0-91-generic

该内核运行的是 Ubuntu 22.04.3 LTS。

安全注意事项

  • 仅在受信任的网络上运行此服务
  • 限制对服务的访问
  • 执行命令时保持谨慎

安全与最佳实践

  • 始终留意你正在请求的信息
  • 使用提供系统级、非敏感信息的命令
  • 如有疑问,请让 Claude 说明该命令的用途

贡献

通过以下方式改进和扩展 Linux Command MCP:

  • 添加更多安全、通用的命令示例
  • 完善文档
  • 提出命令执行方面的改进建议

许可证

MIT license

联系方式

  • Email: [email protected]

  • Blockchain: 0xkiran.eth

    • Ethereum: 0x67F367edb83d8fdF48E7E7Cfcb35183e746c292c
    • Bitcoin: bc1q688np092y8raxag5e6573chrcgck5756yv476v

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。