内容
# MCP Guardrail Server
*阅读其他语言版本: [日本語](README.ja.md)*
MCP Guardrail Server 是一个安全的 MCP (Model Context Protocol) 服务器,仅执行预先授权的命令。它可以在高安全性环境中使用,为 AI 助手提供有限的命令执行能力。
## 特性
- 仅执行包含在允许列表中的命令
- 限制文件访问仅限于预先授权的路径
- 命令执行超时功能
## 安装
```bash
npm install
npm run build
```
## 使用
```bash
npm start -- [--allowed-commands <以逗号分隔的列表>] [--path-config <配置文件路径>]
```
### 选项
- `--allowed-commands`: 以逗号分隔的允许的 Bash 命令列表(可选,默认: `git,ls,mkdir,cd,npm,npx,python`)
- `--path-config`: 指定允许的文件路径的 JSON 配置文件路径(可选)
## 示例
```bash
# 以开发模式运行
npm run dev
# 启动服务器(使用默认允许的命令)
npm start
# 使用自定义命令列表启动
npm start -- --allowed-commands git,ls,node
# 启动时限制路径
npm start -- --path-config ./path-config.json
```
## 路径配置
要限制文件访问到特定目录,请根据示例创建配置文件:
```bash
# 复制示例配置文件
cp path-config.sample.json path-config.json
# 编辑配置文件以满足您的需求
nano path-config.json
```
路径配置文件应具有以下格式:
```json
{
"allowedPaths": [
"/tmp",
"/Users/username/Documents/project",
"/var/log",
"C:\\Users\\username\\Documents\\project",
"C:\\Windows\\Temp"
]
}
```
根据您的环境需要包含 Windows 和 macOS 的路径。
## 与 Claude Desktop 的配置
要将此 MCP 服务器与 Claude Desktop 一起使用,请在您的 Claude Desktop 配置文件中添加以下条目(通常为 `~/.config/Claude Desktop/claude_desktop_config.json`):
```json
{
"mcpServers": {
"guardrail": {
"command": "node",
"args": [
"/absolute/path/to/dist/index.js",
"--allowed-commands",
"git,ls,node,echo", // 在此处添加您的允许命令
"--path-config",
"/absolute/path/to/path-config.json" // 添加您的路径配置文件
],
"env": {}
}
}
}
```
## 连接测试
要验证服务器是否正常工作,请运行:
```bash
npm test
```
这将运行以下测试:
- 执行允许的命令
- 尝试执行未授权的命令(应被拒绝)
- 访问允许路径中的文件(应被允许)
- 尝试访问受限路径中的文件(应被拒绝)
## 安全注意事项
- 仅允许绝对必要的命令
- 不要允许潜在危险的命令(例如 rm -rf)
- 限制文件访问仅限于所需的路径
- 对包含敏感数据或系统文件的路径要特别小心
## 许可证
MIT