集群MCP工具
这是一个最小的本地MCP服务器,通过SSH公开一组严格的集群命令。 默认情况下,它被设计为安全的,只允许白名单中的命令和路径。
需求
- Python 3.9+
- SSH密钥(示例):
~/.ssh/your_key - MCP Python包(其中一个应该可以工作):
- pip install mcp
运行MCP服务器
cd ~/tools/mcp/cluster_tools
python server.py命令配置
命令在中定义 commands.yml每个条目声明工具名称、参数、, 限制和命令令牌。根据中的允许列表验证路径 config.py (ALLOWED_PATH_PREFIXES).
要添加新工具,请执行以下操作:
- 在下添加新条目
commands在commands.yml. - 重新启动MCP服务器。
命令令牌中内置的占位符:
{ssh_user}{max_grep_matches}
allowed: all 表示“全局允许列表下的任何路径”。
最小架构
version: 1
commands:
- id: cluster_ls
description: List directory contents at path.
command:
- ls
- -la
- --
- "{path}"
params:
path:
type: path
required: true
allowed: all共同领域
id:工具名称(snake_case)description:简短的人类可读摘要command:令牌列表,无外壳params:参数定义图limits:可选安全限制
参数类型
path:绝对路径,根据允许列表验证string:非空字符串int:整数,可选min/max
可选参数字段
allowed:all或允许的路径前缀列表(用于path仅)allowed_values:枚举列表string价值观value_map:从用户值映射到命令令牌值max_length:最大长度stringdefault:默认情况下required: false
虚拟命令
cluster_cd 验证路径并在不运行SSH的情况下返回它。它很有用 用于客户端工作目录选择。
安全兼容性标志
此存储库当前默认为安全展开的兼容模式。 您可以使用环境变量启用更严格的行为:
CLUSTER_TOOLS_ENFORCE_STRICT_HOST_KEY_CHECKING=trueCLUSTER_TOOLS_SSH_KNOWN_HOSTS_FILE=/absolute/path/to/known_hostsCLUSTER_TOOLS_ENFORCE_CANONICAL_PATH_CHECKS=trueCLUSTER_TOOLS_REJECT_DUPLICATE_YAML_KEYS=true
在兼容模式下,会发出警告并保留以前的行为。
SSH代理要求
此服务器运行 BatchMode=yes。必须加载受密码保护的密钥 在启动服务器之前通过SSH代理(例如, ssh-agent + ssh-add).
安全规则
- 没有任意命令执行。
- 没有shell元字符。
- 路径允许列表已强制执行。
- 强制执行输出和文件大小限制。
- 严格的SSH主机验证和规范路径检查可用
选择加入强化标志。
