Token导航 LogoToken导航TokenDH.com
MCP Permission Prompt logo
开发工具未说明官方级别未说明来源级核验

MCP Permission Prompt

MCP Server

一个基于MCP的权限处理工具,用于Claude Code CLI的`--permission-prompt-tool`标志,提供可配置的策略和审计日志功能。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
Ruby命令行工具Claude权限管理Claude

安装说明

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

作者 / 组织

justi

提供方

justi

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

mcp权限提示

Ruby gem为Claude Code CLI实现了基于MCP的权限处理 --permission-prompt-tool 旗帜。

状态:研究和文件

这个gem是第一个也是唯一一个已知的工作实现 --permission-prompt-tool 全球响应格式。

经过对所有主要语言和平台的广泛全球研究,目前还没有其他功能实现。然而,该功能本身具有 实用价值严重受限 -Claude的智能工具选择完全绕过了权限处理程序(请参阅已知限制)。

特性

  • 可配置的基于策略的权限系统
  • 内置策略:危险命令、受保护路径
  • 多个MCP库的适配器模式(官方SDK,快速MCP)
  • 通过决策回调进行审计日志记录
  • 完全输入修改支持
  • 全面的测试覆盖率(77个测试,130个断言)

安装

添加到您的Gemfile:

gem 'mcp-permission-prompt', git: 'https://github.com/justi-blue/mcp-permission-prompt'

或在本地安装:

gem 'mcp-permission-prompt', path: '../mcp-permission-prompt'

用法

1.配置策略

创建初始化器(例如。, config/initializers/mcp_permission_prompt.rb):

require 'mcp_permission_prompt'

McpPermissionPrompt.configure do |config|
  # Add default policies
  config.add_policy(McpPermissionPrompt::Policies::DangerousCommands.new)
  config.add_policy(McpPermissionPrompt::Policies::ProtectedPaths.new)

  # Optional: Add decision callback for audit logging
  config.on_decision do |tool_name, input, decision|
    Rails.logger.info "[PermissionPrompt] #{tool_name}: #{decision[:behavior]} - #{decision[:reason] || 'allowed'}"
  end
end

2.创建MCP工具处理程序

class PermissionPromptHandler < McpPermissionPrompt::Adapters::OfficialSdk
  # Inherits from adapter - no additional code needed
  # Policies configured in initializer will be automatically used
end

3.向MCP服务器注册

def self.all_tools
  [
    Mcp::Tools::PermissionPromptHandler,
    # ... other tools
  ]
end

4.与Claude CLI一起使用

claude --print "command here" \
  --permission-prompt-tool mcp__server_name__permission_prompt_handler

内置政策

危险命令

阻止危险的Bash命令:

  • 破坏性操作: rm -rf, mkfs, dd
  • 远程代码执行: curl|bash, wget|sh
  • 特权升级: chmod 777, chown -R
  • 叉式炸弹

受保护的路径

阻止写入敏感位置:

  • 系统目录: /etc, /usr, /var
  • 敏感文件: .env、凭据、SSH密钥

自定义策略

class MyCustomPolicy < McpPermissionPrompt::Policies::Base
  def evaluate(tool_name, input)
    return not_decided unless tool_name == "Bash"

    command = input[:command] || input["command"]
    return not_decided unless command

    if command.match?(/production/)
      deny("Production commands blocked in development")
    else
      not_decided
    end
  end
end

# Add to configuration
config.add_policy(MyCustomPolicy.new)

为什么这个功能不起作用

关键发现:--permission-prompt-tool 处理程序是 从未打过电话 在实践中,因为克劳德明智地避免使用会触发它的工具。

实证检验结果

当明确要求使用被阻止的命令时:

  • rm -rf /tmp/test → 克劳德使用 find 改为命令
  • curl http://url → Claude使用WebFetch(内置工具)
  • git push → Claude使用内置Git客户端
  • rails test → Claude使用MCP test_runner 工具

处理程序从未被调用 尽管已正确注册和验证。

根本原因

Claude的人工智能系统优先考虑替代工具来完成任务:

  1. 首先检查静态规则(--allowedTools/--disallowedTools)
  2. 如果被阻止,则智能地选择其他内置工具
  3. 只打电话 --permission-prompt-tool没有其他选择
  4. 在实践中,危险操作总是存在替代方案

附加限制

  • 仅限无头:仅适用于 -p 旗帜(第1429期)
  • 无文件:没有工作示例(第1175期)
  • 全球真空:广泛的研究发现,任何语言中都没有函数实现

研究范围

搜索范围:

  • 所有主要语言(英语、中文、俄语、日语、韩语、葡萄牙语、西班牙语、德语)
  • 平台:GitHub、Stack Overflow、黑客新闻、Reddit、官方论坛
  • 结果: 全球零工作实施
  • 仅尝试:CLIAI/mcp_permission_server_claude_code(Python)-标记为“正在进行中”,不起作用

建筑

Configuration
  ├── Policies (chain of responsibility)
  │   ├── DangerousCommands
  │   ├── ProtectedPaths
  │   └── Custom policies
  ├── Callbacks (audit logging)
  └── Adapters
      ├── OfficialSdk (model_context_protocol gem)
      └── FastMcp (future support)

发展

# Install dependencies
bundle install

# Run tests
bundle exec rake test

# Run with coverage
COVERAGE=true bundle exec rake test

研究与来源

文件问题

官方资源

社区尝试

贡献

欢迎在以下网址提交Bug报告和拉取请求https://github.com/justi-blue/mcp-permission-prompt.

许可证

根据以下条款,gem可作为开源软件使用 MIT许可证.

致谢

此gem实现了通过社区研究发现的响应格式 第1175期,因为Anthropic的官方文件缺乏工作实例。

目录标签

目录标签

Ruby命令行工具Claude权限管理本地部署安全策略审计日志MCP集成

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP