Token导航 LogoToken导航TokenDH.com
MCP Fw logo
运维云端stdio官方级别未说明来源级核验

MCP Fw

MCP Server

mcp-fw是一个防火墙代理,位于Claude Desktop和MCP服务器之间,通过NAIL效果标签控制每个服务器的操作权限。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
安全PythonClaude代理服务Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

zyom45

提供方

zyom45

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-fw

详细介绍

mcp fw

![CI](https://github.com/zyom45/mcp-fw/actions/workflows/ci.yml) ](https://pypi.org/project/mcp-fw/) ![Python](https://pypi.org/project/mcp-fw/) ![License: MIT](https://opensource.org/licenses/MIT)

日本语版README

MCP服务器可以读取您的文件、运行进程和访问网络,而无需询问。

mcp-fw是位于Claude Desktop和mcp服务器之间的防火墙代理。 使用 指甲 效果标签,以精确控制每个服务器可以做什么。

默认情况下, mcp-fw 允许工具受影响策略的约束,但阻止MCP resourcesprompts 除非您明确选择加入 allow_resources: true / allow_prompts: true.

Claude Desktop  ←→  mcp-fw (proxy)  ←→  MCP Server
                     ↑
                  policy.yaml
                  allow: [FS, IO]
                  deny:  [NET]

为什么

MCP服务器功能强大,但没有内置的权限模型。 文件系统服务器可以静默地进行网络调用。 “everything”服务器可以生成进程。

mcp-fw强制执行边界:

效果它控制什么示例
FS文件读/写读取文件,列出目录
IO常规I/O标准输入/标准输出,回声
NET网络访问HTTP请求、DNS
PROC流程执行生成子流程,exec
TIME时间/时钟访问获取当前时间
RAND随机性生成随机数

快速开始

pip install mcp-fw

命令

主CLI:

mcp-fw run --config policy.yaml --server filesystem [--verbose] [--log-file /path/to/file.log]
mcp-fw inspect --config policy.yaml --server filesystem
mcp-fw status --server filesystem
mcp-fw stop --server filesystem
mcp-fw claude-remove [--server filesystem]
mcp-fw menubar --config policy.yaml

仍支持传统速记:

mcp-fw --config policy.yaml --server filesystem [--verbose] [--log-file /path/to/file.log]

专用菜单栏入口点:

mcp-fw-menubar --config policy.yaml

1.制定政策

# policy.yaml
servers:
  filesystem:
    command: npx
    args: ["@modelcontextprotocol/server-filesystem", "/tmp"]
    allow: [FS, IO]
    deny: [NET]

这允许文件系统服务器读取/写入文件(FS, IO)但是 阻止所有网络访问 (NET). 它还保留了MCP resourcesprompts 除非您明确启用它们,否则将被阻止。

2.将Claude Desktop指向代理

claude_desktop_config.json:

{
  "mcpServers": {
    "filesystem-fw": {
      "command": "mcp-fw",
      "args": ["--config", "/path/to/policy.yaml", "--server", "filesystem"]
    }
  }
}

就是这样。Claude Desktop现在正在与 mcp-fw,在转发到真实服务器之前过滤工具。

如果您的服务器使用MCP resourcesprompts,明确选择加入:

servers:
  filesystem:
    allow_resources: true
    allow_prompts: true

要稍后删除mcp-fw条目,请执行以下操作:

mcp-fw claude-remove
# or only one server
mcp-fw claude-remove --server filesystem

3.看看发生了什么

$ mcp-fw --config policy.yaml --server filesystem --verbose
2025-01-15 10:00:01 [INFO] Filtered 5 → 3 tools (allowed effects: ['FS', 'IO'])
2025-01-15 10:00:05 [WARNING] Blocked tool call: fetch_url

要停止正在运行的代理进程,请执行以下操作:

mcp-fw stop --server filesystem

在更改政策之前,检查NAIL如何对工具进行分类:

mcp-fw inspect --config policy.yaml --server filesystem

输出显示推断效果、覆盖后的有效效果、覆盖是否更改了分类以及最终允许/阻止的结果。

菜单栏应用程序(macOS)

对于GUI体验:

pip install "mcp-fw[menubar]"
mcp-fw menubar --config policy.yaml
# or:
mcp-fw-menubar --config policy.yaml

A. [FW] 图标出现在菜单栏中:

[FW]
├── mcp-fw v0.2.8
├── ────────
├── ● filesystem
│   ├── Status: Running
│   ├── Checked = allowed, unchecked = blocked
│   ├── ────────
│   ├── [x] FS
│   ├── [x] IO
│   ├── [ ] NET          ← toggle effects live
│   ├── [ ] PROC
│   ├── Stop Proxy
│   └── ...
├── ○ everything
├── ────────
├── Edit Policy YAML
├── View Logs...
├── ────────
├── Sync to Claude Desktop
├── Remove from Claude Desktop
└── Quit
  • 切换效果 使用复选框--选中表示允许,未选中表示阻止,更改将写入 policy.yaml 立即
  • 同步到Claude桌面 生成 claude_desktop_config.json 自动输入
  • 停止代理 终止服务器正在运行的代理进程
  • 从克劳德桌面删除 删除已生成的 *-fw 条目来自 claude_desktop_config.json
  • 查看日志 打开实时日志查看器
  • 过程监视器 显示● 运行/○ 每台服务器的停止状态

运作原理

1. Claude calls list_tools()
   → mcp-fw forwards to the real server
   → NAIL annotates each tool with effect labels
   → mcp-fw filters out tools that violate the policy
   → Claude only sees allowed tools

2. Claude calls a tool
   → mcp-fw checks if it's in the allowed set
   → Allowed: forward to server
   → Blocked: return error

关键的见解是:工具不仅仅是按名称允许或拒绝的——它们是按 他们所做的事 (文件系统、网络、进程等)使用 NAIL效应系统这意味着mcp-fw可以在以前从未见过的服务器上执行策略。

政策参考

servers:
  my-server:
    command: npx                    # server command
    args: ["@org/server", "/tmp"]   # command arguments
    allow: [FS, IO]                 # permitted effects (empty = all)
    deny: [NET]                     # blocked effects (overrides allow)
    allow_resources: false          # permit MCP resources API
    allow_prompts: false            # permit MCP prompts API
    tool_overrides:                 # per-tool effect corrections
      safe_fetch: [IO]             # override NAIL's auto-detection

规则:

  • allow: [] (空)=允许所有效果,然后 deny 减去
  • allow: [FS, IO] =只有这些影响,那么 deny 减去
  • deny 总是赢 allow
  • allow_resourcesallow_prompts 是明确的选择加入;默认情况下,它们被阻止
  • tool_overrides 允许您更正NAIL针对特定工具的自动效果检测

许可证

麻省理工学院

目录标签

目录标签

安全PythonClaude代理服务防火墙本地部署权限控制文件管理网络安全

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP