权限服务器开发工具

为Claude Code MCP工具提供自定义安全策略实现的Docker开发环境,支持隔离测试和权限服务器开发。

  • by CLIAI
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 cliai/mcp_permission_server_claude_code

使用说明

MCP权限服务器-Docker中的Claude代码

进行中:此存储库包含用于为Claude code MCP(模型控制面板)工具实现自定义安全策略的实验代码,以及用于测试和开发的Docker环境。

💡 相关回购/努力:用于运行Claude Code --dangerously-skip-permissions 在隔离的(除Claude服务器外没有互联网)docker容器中: https://github.com/CLIAI/isolated-docker-claude-code

目的

该项目旨在:

  1. 为MCP工具批准/拒绝服务器开发最低限度的工作示例,作为实施安全策略的基础
  2. 提供一个基于Docker的环境,用于使用MCP工具安全测试Claude Code
  3. 允许使用 --dangerously-skip-permissions 受控环境中的标志

Docker环境

该存储库现在包括一个完全配置的Docker环境,用于使用MCP工具运行Claude Code:

需求

  • Docker已安装在您的系统上
  • 人类API密钥(设置为环境变量 ANTHROPIC_API_KEY)

快速开始

# Set your Anthropic API key
export ANTHROPIC_API_KEY=your_api_key_here

# Example: Run a permission server and prompt in one call
make ; ./test_in_docker.py --time-limit 180 --debug mcp_permission_server_allow_always_fastmcp 'write hello world program in c++ , compile and execute'

# Build the Docker image
make build

# Run an interactive container with the current directory mounted
make run

# Test a specific script
make test-script SCRIPT=path/to/your/script.py

使用test_in_docker.py脚本

这 test_in_docker.py 脚本提供了一种在Docker容器中运行文件的便捷方式:

# Basic usage
./test_in_docker.py your_script.py

# Run with a custom tool name
./test_in_docker.py your_script.py --tool-name custom_tool

# Run with a custom server name
./test_in_docker.py your_script.py --server-name my_server

重要提示 --prompt-permission-tool 旗帜

这 --prompt-permission-tool 标志可以要求工具名称包括服务器名称和工具名称(例如。, mcp__server_name__tool_name).如果遇到错误,请检查服务器错误消息的预期格式。

目录结构

存储库包含:

  • docker_configs/:Docker环境的配置文件
    • dot_bashrc:容器的Bash配置
  • specs/:规范文件
    • how_we_do_dockerfiles.md:Docker最佳实践文档
  • Dockerfile:定义Claude Code Docker环境
  • Makefile:提供构建和运行Docker环境的目标
  • test_in_docker.py:用于在Docker环境中测试文件的辅助脚本
  • MCP服务器实现:
    • mcp_permission_server_allow_always_fastmcp:简单的FastAPI实现旨在始终允许使用工具
    • mcp_permission_server_fastmcp_another:替代FastAPI实现
    • mcp_permission_server_fastmcp_with_typing:具有显式类型定义的FastAPI
    • mcp_permission_server_genai_by_gemini:使用Gemini实现
    • mcp_permission_server_genai_by_gemini_another:备选Gemini实施方案
    • mcp_permission_server_genai_by_perplexity:使用困惑实现
    • mcp_permission_server_return_json_string:简单服务器返回JSON字符串

当前状态

Docker环境已准备好使用MCP工具测试Claude Code。MCP服务器的实现仍在进行中。

⚠️ 备注:由于缺乏明确的文档和示例,一些MCP服务器实现可能无法运行。

使用示例

运行交互式会话

# Start an interactive session with the current directory mounted
make run

# Inside the container
claude-code --dangerously-skip-permissions

测试MCP工具

# Create a simple MCP tool script
echo '#!/bin/bash
echo "This is a test MCP tool"
' > test_tool.sh
chmod +x test_tool.sh

# Test it in the Docker container
./test_in_docker.py test_tool.sh --tool-name test_tool

未来工作

未来发展规划:

  • 添加更全面的MCP服务器实现
  • 改进错误处理和调试
  • 添加自动化测试
  • 根据调查结果加强文件编制

贡献

如果您对如何使这些示例工作有见解,或者已经成功实现了MCP权限服务器,请打开一个问题或提交一个包含您的发现的拉取请求。

许可证

请参阅 许可证 文件以获取详细信息。