MCP权限服务器-Docker中的Claude代码
进行中:此存储库包含用于为Claude code MCP(模型控制面板)工具实现自定义安全策略的实验代码,以及用于测试和开发的Docker环境。
💡 相关回购/努力:用于运行Claude Code --dangerously-skip-permissions 在隔离的(除Claude服务器外没有互联网)docker容器中:
目的
该项目旨在:
- 为MCP工具批准/拒绝服务器开发最低限度的工作示例,作为实施安全策略的基础
- 提供一个基于Docker的环境,用于使用MCP工具安全测试Claude Code
- 允许使用
--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权限服务器,请打开一个问题或提交一个包含您的发现的拉取请求。
许可证
请参阅 许可证 文件以获取详细信息。
