aaearon/mcp-privilege-cloud

GitHub: aaearon/mcp-privilege-cloud

基于官方 ark-sdk-python 构建的 CyberArk Privilege Cloud MCP 服务器,为 AI 助手提供 53 个特权账户管理工具。

Stars: 7 | Forks: 4

# CyberArk Privilege Cloud MCP Server 一个基于官方 [ark-sdk-python](https://github.com/cyberark/ark-sdk-python) 库构建的 CyberArk Privilege Cloud MCP 服务器。提供 53 个用于特权访问管理的工具。 支持两种身份验证模式: - **OAuth 用户模式**(推荐)—— 每个用户通过 OAuth 使用自己的 CyberArk Identity 凭证进行身份验证。需要 [Streamable HTTP transport](#docker-deployment) 以及 CyberArk Identity 中的 OIDC 应用([设置指南](docs/CYBERARK_IDENTITY_SETUP.md))。 - **传统服务账户模式**—— 单个共享服务账户通过 stdio 传输对的所有请求进行身份验证。设置更简单,如下面的 [快速开始](#quick-start) 所示。 ## 快速开始 **1. 安装 uv**(如果尚未安装): ``` curl -LsSf https://astral.sh/uv/install.sh | sh ``` **2. 配置 Claude Desktop** - 添加到您的配置文件: | 操作系统 | 配置文件位置 | |----|----------------------------| | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` | | Windows | `%APPDATA%\Claude\claude_desktop_config.json` | | Linux | `~/.config/Claude/claude_desktop_config.json` | ``` { "mcpServers": { "cyberark-privilege-cloud": { "command": "uvx", "args": [ "--from", "git+https://github.com/aaearon/mcp-privilege-cloud.git", "mcp-privilege-cloud" ], "env": { "CYBERARK_CLIENT_ID": "your-service-user-username", "CYBERARK_CLIENT_SECRET": "your-service-user-password" } } } } ``` **3. 重启 Claude Desktop** - 连接后,MCP 服务器将出现在工具菜单(锤子图标)中。 ### Claude Code ``` claude mcp add cyberark-privilege-cloud \ -e CYBERARK_CLIENT_ID=your-service-user-username \ -e CYBERARK_CLIENT_SECRET=your-service-user-password \ -- uvx --from git+https://github.com/aaearon/mcp-privilege-cloud.git mcp-privilege-cloud ``` ## 示例提示词 配置完成后,您可以向 Claude 询问如下内容: - "列出 Production 安全中的所有账户" - "显示管理失败的 Windows 账户" - "创建一个名为 'DevOps-Credentials' 的新安全,保留期为 30 天" - "将 DevOps 团队添加为安全成员,并授予取回权限" - "列出所有活动平台及其账户数量" - "显示活动的特权会话" ## 前提条件 - [CyberArk Identity Service User](https://docs.cyberark.com/identity-administration/latest/en/content/ispss/ispss-add-service-user.htm),需具备: - 执行所需操作的适当 Identity 角色(例如,用于平台管理的 Privilege Cloud Administrator) - 授予访问您想要管理的安全和账户权限的安全权限 - 对于 OAuth 用户模式:CyberArk Identity 中的 OIDC 应用(参见 [设置指南](docs/CYBERARK_IDENTITY_SETUP.md)) ## 配置 ### OAuth 用户模式 每个连接的用户通过 OAuth 使用自己的 CyberArk Identity 凭证进行身份验证。服务器从 OIDC JWT 验证用户身份,然后使用共享服务账户平台 token 进行所有 PCloud API 调用。 需要 Streamable HTTP 传输——参见 [Docker 部署](#docker-deployment)或在本地运行时设置 `MCP_TRANSPORT=streamable-http`。 | 变量 | 必填 | 描述 | |----------|----------|-------------| | `CYBERARK_IDENTITY_TENANT_URL` | 是 | CyberArk Identity 租户 URL(例如,`https://abc1234.id.cyberark.cloud`) | | `CYBERARK_CLIENT_ID` | 是 | 服务账户登录名(用于 PCloud 平台 token) | | `CYBERARK_CLIENT_SECRET` | 是 | 服务账户密码 | | `CYBERARK_OAUTH_CLIENT_ID` | 是 | 来自 Trust 标签页的 OIDC 应用客户端 ID(用于 DCR 和 JWT audience) | | `CYBERARK_OAUTH_CLIENT_SECRET` | 是 | 来自 Trust 标签页的 OIDC 应用客户端密钥(在 /token 代理中服务器端注入) | | `MCP_TRANSPORT` | 否 | 传输协议(默认:`stdio`;OAuth 模式设置为 `streamable-http`) | | `MCP_HOST` | 否 | 服务器绑定主机(默认:`127.0.0.1`) | | `MCP_PORT` | 否 | 服务器绑定端口(默认:`8000`) | | `MCP_SERVER_URL` | 否 | 用于 OAuth 元数据的公开 URL(默认:`http://{host}:{port}`) | 有关完整的配置说明,请参见 [CyberArk Identity 设置](docs/CYBERARK_IDENTITY_SETUP.md)。 ### 传统服务账户模式 | 变量 | 必填 | 描述 | |----------|----------|-------------| | `CYBERARK_CLIENT_ID` | 是 | 您的服务用户用户名 | | `CYBERARK_CLIENT_SECRET` | 是 | 您的服务用户密码 | ## Docker 部署 包含的 `Dockerfile` 和 `docker-compose.yml` 以 Streamable HTTP 模式运行服务器,适用于 OAuth 用户身份验证和远程 MCP 客户端。 ``` # 创建包含凭据的 .env 文件(参见 .env.example) docker compose up -d --build ``` 在反向代理后部署时,请配置代理以去除请求路径中的尾部斜杠。MCP 客户端可能会 POST 到 `/mcp/`(带尾部斜杠),导致产生 307 重定向,从而剥离 `Authorization` 头部。请将 `MCP_SERVER_URL` 设置为您服务器的公开 URL。 ## 可用工具(共 53 个) **账户管理(18 个工具):** - **核心操作**:`list_accounts`, `get_account_details`, `search_accounts`, `create_account`, `update_account`, `delete_account` - **密码管理**:`change_account_password`, `set_next_password`, `verify_account_password`, `reconcile_account_password` - **高级搜索**:`filter_accounts_by_platform_group`, `filter_accounts_by_environment`, `filter_accounts_by_management_status`, `group_accounts_by_safe`, `group_accounts_by_platform`, `analyze_account_distribution`, `search_accounts_by_pattern`, `count_accounts_by_criteria` **安全管理(10 个工具):** - **核心操作**:`list_safes`, `get_safe_details`, `add_safe`, `update_safe`, `delete_safe` - **成员管理**:`list_safe_members`, `get_safe_member_details`, `add_safe_member`, `update_safe_member`, `remove_safe_member` **平台管理(10 个工具):** - **核心操作**:`list_platforms`, `get_platform_details`, `import_platform_package`, `export_platform` - **生命周期管理**:`duplicate_target_platform`, `activate_target_platform`, `deactivate_target_platform`, `delete_target_platform` - **统计信息**:`get_platform_statistics`, `get_target_platform_statistics` **应用程序管理(9 个工具):** - **核心操作**:`list_applications`, `get_application_details`, `add_application`, `delete_application` - **认证方式**:`list_application_auth_methods`, `get_application_auth_method_details`, `add_application_auth_method`, `delete_application_auth_method` - **统计信息**:`get_applications_stats` **会话监控(6 个工具):** - **会话管理**:`list_sessions`, `list_sessions_by_filter`, `get_session_details`, `count_sessions` - **活动追踪**:`list_session_activities`, `get_session_statistics` ## 故障排除 | 问题 | 解决方案 | |-------|----------| | MCP 未出现在 Claude 中 | 保存配置后重启 Claude Desktop | | 身份验证失败 | 验证 CyberArk Identity 中的服务用户凭证 | | 权限错误 | 确保服务用户具有适当的 Identity 角色和安全权限 | | 连接问题 | 验证您使用的是 `.cloud` 域名(而非 `.com`) | | 反向代理后出现 OAuth 401 | 确保代理去除尾部斜杠(参见 [Docker 部署](#docker-deployment)) | | 找不到 `uvx` | 安装 uv:`curl -LsSf https://astral.sh/uv/install.sh \| sh` | **手动验证 MCP 服务器:** ``` uvx --from git+https://github.com/aaearon/mcp-privilege-cloud.git mcp-privilege-cloud ``` ## 开发 ``` git clone https://github.com/aaearon/mcp-privilege-cloud.git cd mcp-privilege-cloud uv sync uv run pytest # Run all tests uv run pytest --cov=mcp_privilege_cloud # Run with coverage uv run mcp-privilege-cloud # Run the server locally ``` ## 文档 - **[API 参考](docs/API_REFERENCE.md)** - 完整的工具规范和参数 - **[架构](docs/ARCHITECTURE.md)** - 系统设计和组件 - **[CyberArk Identity 设置](docs/CYBERARK_IDENTITY_SETUP.md)** - OAuth 应用配置指南 - **[开发指南](docs/DEVELOPMENT.md)** - 贡献和开发工作流 - **[测试指南](docs/TESTING.md)** - 详细的测试说明 ## 安全 - 切勿将凭证提交到版本控制 - 使用安全的环境变量管理 - 授予服务用户所需的最小权限 - 在 OAuth 模式下,DCR 仅返回公共客户端——密钥在服务器端注入 - 官方 SDK 提供自动 token 管理和安全协议 ## 许可证 MIT 许可证 - 详情请参见 [LICENSE](LICENSE) 文件。 ## 支持 如有问题和功能请求,请使用 [GitHub Issues](https://github.com/aaearon/mcp-privilege-cloud/issues)。
标签:AI 助手, API 网关, ark-sdk-python, Claude Desktop, CyberArk, DevSecOps, IAM, JSONLines, LLM 工具, LLM 集成, MCP 服务器, OAuth2 认证, PAM, Python, Safe 操作, 上游代理, 代码分析, 凭证管理, 密码保管库, 平台配置, 无后门, 模型上下文协议, 特权云, 特权账号管理, 网络安全, 自动化运维, 请求拦截, 身份与访问管理, 身份安全, 逆向工具, 隐私保护, 零信任