mcpField
C
Claude MCP Approval Server

Claude MCP Approval Server

本地服务
github.com/adstasticAI 与智能体1474 周前更新

关于 Claude MCP Approval Server

Claude MCP Approval Server 通过 WhatsApp 在执行敏感工具操作前请求批准,面向使用 Claude Code 的用户。它基于 FastMCP 和 Twilio,并记录审批请求,且请求会在 5 分钟后过期。

主要功能

  1. 01通过 WhatsApp 请求工具操作批准
  2. 02提供快速批准或拒绝按钮
  3. 03请求 5 分钟后自动过期
  4. 04仅接受配置号码的回复
  5. 05使用 SQLite 保存审批记录

适用场景

  1. 01远程审核 Claude Code 的命令执行
  2. 02在执行敏感工具操作前征求同意

MCP 相关

该 MCP 服务提供 permissions__approve 工具,供 Claude 在执行工具操作前调用。它将审批请求发送到 WhatsApp,并根据回复决定是否继续。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Claude MCP Approval Server

Claude MCP Approval Server 演示

一个 Model Context Protocol (MCP) 服务,会在执行可能敏感的命令前,通过 WhatsApp 发送审批提示词。使用 FastMCP 和 Twilio 构建。

功能

  • 🔐 权限提示词:拦截工具执行,并通过 WhatsApp 请求审批
  • 📱 WhatsApp 集成:使用 Twilio 发送带有快速回复按钮的审批请求
  • ⚡ FastMCP:基于 FastMCP 构建,可轻松与 Claude 集成
  • 🎯 智能格式化:以易读的方式格式化命令和原因
  • ⏱️ 自动过期:出于安全考虑,请求会在 5 分钟后过期
  • 💾 数据库跟踪:使用 SQLite 数据库跟踪审批请求

设置说明

1. 安装依赖项
uv install
2. 设置 Twilio 帐户
  1. 注册 Twilio,网址为 https://www.twilio.com
  2. 试用 WhatsApp 消息功能——访问 https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn,并按照设置指南操作:
    • 向 Twilio 号码发送消息,加入 WhatsApp 沙盒
    • 测试从你的设备发送和接收消息
    • 记下你的沙盒 WhatsApp 号码(例如,whatsapp:+14155238886)
3. 获取 Twilio 凭据
  1. 从 Twilio Console 仪表板获取你的 Account SID
  2. 在 https://console.twilio.com/us1/account/keys-credentials/api-keys 生成 Auth Token
    • 点击“Create API Key”
    • 记下 SID 和 Secret(即你的 Auth Token)
4. 配置环境
cp .env.example .env

使用你的凭据编辑 .env:

TWILIO_ACCOUNT_SID=your_account_sid_here
TWILIO_AUTH_TOKEN=your_auth_token_here  
TWILIO_WHATSAPP_FROM=whatsapp:+14155238886  # Your sandbox number
APPROVAL_PHONE=+1234567890  # YOUR phone number (without whatsapp: prefix)
SERVER_PORT=8000  # Optional: Server port (defaults to 8000)

重要:将 +1234567890 替换为你用于加入 WhatsApp 沙盒的实际电话号码。审批请求将发送到此号码。

5. 创建 WhatsApp 模板
python setup_template.py

此操作会自动创建 Twilio 模板,并使用模板 SID 更新你的 .env 文件。

6. 暴露服务

使用 ngrok 或 Tailscale 暴露本地服务:

选项 A:ngrok

ngrok http 8000  # Replace 8000 with your SERVER_PORT if different

选项 B:Tailscale

tailscale funnel --bg 8000  # Replace 8000 with your SERVER_PORT if different

记下你的公共 URL(例如,https://abc123.ngrok.io 或 https://hostname.tail12345.ts.net)

7. 配置 Twilio Webhook
  1. 返回 Try WhatsApp 页面:https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn
  2. 点击 Sandbox Settings
  3. 将两个 Webhook URL 都设为:https://your-public-url/twilio-webhook
    • When a message comes in:https://your-public-url/twilio-webhook
    • Status callback URL:https://your-public-url/twilio-webhook
8. 启动 Approval Server

重要:运行 Claude 之前,请先启动服务!

uv run  approval_server.py

服务应显示:

  • ✅ Twilio 已配置
  • 🌐 已列出服务端点
  • Webhook URL 已就绪
9. 使用权限提示词运行 Claude
claude --mcp-config mcp-servers.json \
       --mcp-debug \
       --permission-prompt-tool mcp__approval-server__permissions__approve \
       --verbose \
       --debug \
       --output-format stream-json \
       -p "your prompt here"
10. 随时随地批准或拒绝!🎉

当 Claude 尝试执行命令时,你会收到一条 WhatsApp 消息,其中包含 ✅ Approve 和 ❌ Deny 按钮。点击按钮,即可在世界任何地方回复!

重要注意事项

⚠️ 网络访问:-p(提示词)模式无法访问网络
⚠️ 交互模式:非交互模式(不带 -p)不会使用 --permission-prompt-tool

MCP 配置

MCP 配置位于 mcp-servers.json 中。
如果使用其他端口,请将 8000 替换为你的 SERVER_PORT。

工作原理

  1. 工具拦截:当 Claude 尝试执行工具时,会先调用 permissions__approve 函数
  2. WhatsApp 通知:审批请求会发送到你的 WhatsApp,并附上格式化的命令详情
  3. 用户响应:你可以使用快速回复按钮批准或拒绝
  4. 执行:根据你的响应,Claude 将继续执行或停止

消息格式

Bash 命令:

🔔 Approval Request

Execute command: `ls -la /etc`
*Reason:* List system configuration files

*Request ID:* abc123

⏱️ Expires in 5 minutes

其他工具:

🔔 Approval Request

*Tool:* WebFetch
  • url: https://example.com
  • prompt: Extract title

*Request ID:* abc123

⏱️ Expires in 5 minutes

自定义模板

要修改 WhatsApp 消息格式或按钮:

  1. 编辑 template_config.json
  2. 运行 python setup_template.py 创建新模板
  3. 脚本会使用新的 SID 更新你的 .env 文件

安全性与功能

  • ⏱️ 自动过期:请求会在 5 分钟后过期
  • 🔒 手机号码验证:仅接受来自你已配置的手机号码的回复
  • 📊 审计记录:数据库会存储请求历史以供追踪
  • 🔐 端到端加密:WhatsApp 消息使用端到端加密
  • 🌍 全球访问:可通过 WhatsApp 随时随地批准或拒绝请求

致谢

https://github.com/mmarcen/test_permission-prompt-tool 提供了一个使用 MCP 服务和权限提示工具的可用示例。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。