使用说明
mcp警卫
一个简单的HTTP代理,用块规则对MCP服务器进行屏蔽。
没有SDK。没有仪表板。只有一个JSON配置和一个切换命令。
Client (Claude, Cursor, etc.)
↕ http
mcp-guard (localhost proxy)
↕ http
Upstream MCP server (supabase, postgres, etc.)
快速开始
1.安装
npm install -g @alramalho/mcp-guard
或来源:
git clone https://github.com/alramalho/mcp-guard
cd mcp-guard
pnpm install && pnpm build && npm link --force
2.创建 .mcp-guard.json
在您的项目根目录中(或 ~/.mcp-guard.json 全球)。通过从cwd向上走,可以自动发现配置。
{
"port": 6427,
"servers": {
"supabase_production": {
"url": "https://mcp.supabase.com/mcp?project_ref=xxx&read_only=true",
"block": ["DELETE", "UPDATE", "DROP", "TRUNCATE", "ALTER", "INSERT"],
"blockMessage": "Destructive SQL operations are not allowed in production"
}
}
}
3.更新您的 mcp.json
将直接上游URL替换为mcp-guard代理:
{
"mcpServers": {
"supabase_production": {
"type": "http",
"url": "http://localhost:6427/supabase_production"
}
}
}
4.打开/关闭
$ mcp-guard
MCP Guard on → http://localhost:6427
$ mcp-guard
MCP Guard off
调试模式
在前台运行,实时查看所有工具调用和阻止决策:
$ mcp-guard -d
配置
.mcp-guard.json (从cwd-up自动发现,或 ~/.mcp-guard.json,或 --config <path>):
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
port |
number |
6427 |
本地HTTP代理的端口 |
servers |
object |
-- | 大门名称图→ 服务器配置 |
每台服务器:
| 字段 | 类型 | 描述 |
|---|---|---|
url |
string |
上游MCP服务器URL |
enabled |
boolean |
设置为 false 畅通无阻地通过 |
token |
string |
用于上游身份验证的静态承载令牌(可选) |
block |
string[] |
要阻止的模式(不区分大小写的子字符串匹配) |
blockMessage |
string |
被阻止时返回错误消息 |
认证
mcp-guard自动处理受OAuth保护的上游服务器(例如Supabase)。在第一次连接时,如果上游需要身份验证,mcp-guard将打开您的浏览器进行OAuth授权。令牌缓存在 ~/.mcp-guard/auth/ 并自动刷新。
或者,您可以在配置中提供一个静态令牌:
{
"servers": {
"my_server": {
"url": "https://example.com/mcp",
"token": "your-access-token"
}
}
}
运作原理
mcp-guard启动本地HTTP服务器- 当客户端连接到
http://localhost:PORT/<gate_name>,它连接到上游MCP服务器 - 它发现所有上游工具并重新公开它们
- 每次调用工具时,都会根据块模式检查所有参数值
- 如果任何模式匹配→ 返回错误,调用从未到达上游
- 如果没有匹配→ 呼叫按原样转发到上游
许可证
麻省理工学院
