Linux命令MCP(模型上下文协议)
概述
Linux命令MCP是一个使用模型上下文协议(MCP)构建的远程命令执行系统,允许安全和标准化地执行Linux命令。
Claude桌面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命令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(用于过程管理)
安装
- 克隆存储库
git clone
cd linux-command-mcp- 安装服务器依赖项
cd server
npm install
npm run build- 安装客户端依赖项
cd ../client
npm install
npm run build用法
启动服务器
- 导航到服务器目录
cd server- 从PM2开始
npm run pm2:start使用客户端
可用命令:
- 执行 -执行Linux命令
- list\[目录\]-列出目录内容
- help-显示此帮助
- exit-退出客户端
直接执行命令:
# In the client directory
npm start
exec "ls -l"
exec "list /home"
exec "uname -a"交互式命令和Stdin支持
✨ 新:Linux命令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\njohn@example.com\ny\n"多选提示:
# Script shows options 1-5, user selects option 3
stdin: "3\n"Sudo命令
重要提示:Linux命令MCP服务器仍然无法执行 sudo 需要密码提示的命令。
对于sudo命令:
- 使用适当的权限手动执行命令
- 或者为特定命令配置无密码sudo
- 或者对非sudo交互式脚本使用stdin参数
故障排除
- 确保PM2正在运行:
pm2 list - 检查服务器日志:
pm2 logs linux-command-mcp-server - 验证服务器和客户端版本
在Claude Desktop中使用Linux命令
交互示例
以下是一些安全、通用的示例,说明如何让Claude运行Linux命令:
- 检查系统信息
- “你能给我看看Linux内核版本吗?”
$ uname -r- 列出目录内容
- “显示主目录的内容”
$ ls ~- 检查可用磁盘空间
- “此系统上的磁盘使用情况如何?”
$ df -h- 查看系统正常运行时间
- “这个系统运行多久了?”
$ uptime- 检查网络接口
- “有哪些可用的网络接口?”
$ ip addr- 系统内存信息
- “你能给我看看内存的使用情况吗?”
$ free -h重要使用指南
- 隐私:仅运行不泄露敏感信息的命令
- 安全:避免使用修改系统配置的命令
- 范围:专注于信息和诊断命令
避免什么
❌ 请勿运行以下命令:
- 显示个人文件名或路径
- 包含敏感的系统配置
- 修改系统设置
- 需要sudo或root权限
对话示例
用户:“你能检查一下Linux内核版本吗?”
克劳德:当然!我将运行该命令以显示Linux内核版本。
$ uname -r
5.15.0-91-generic此内核运行的是Ubuntu 22.04.3 LTS。
安全注意事项
- 仅在受信任的网络上运行此操作
- 限制对服务器的访问
- 执行命令时要小心
安全和最佳实践
- 始终注意您所请求的信息
- 使用提供系统级非敏感信息的命令
- 如有疑问,请克劳德澄清命令的目的
贡献
通过以下方式改进和扩展Linux命令MCP:
- 添加更多安全、通用的命令示例
- 加强文件编制
- 建议改进命令执行
许可证
MIT许可证
联系
- 电子邮件:xkiranj.1980@gmail.com
- 区块链:0xkiran.eth
- 以太坊:0x67F367edb83d8fdF48E7Cfcb35183e746c292c - 比特币:bc1q688np092y8raxag5e6573chrcgck5756yv476v

