MCP只读Argo CD服务器

一个安全的MCP(模型上下文协议)服务器,提供 只读 使用浏览器会话Cookie访问Argo CD实例。
默认布局: - 配置:~/.config/lukleh/mcp-read-only-argocd/connections.yaml- 凭据:通过MCP客户端或shell环境注入 - 旋转会话状态:~/.local/state/lukleh/mcp-read-only-argocd/session_tokens.json
特性
- 按设计只读 -仅显示读取操作;Argo CD资源无突变
- 会话cookie身份验证 -使用您的浏览器
argocd.tokencookie(默认) - 多实例支持 -同时连接到多个Argo CD实例
- 自动cookie轮换 -捕获刷新
argocd.token会话仍然有效时,从响应标头中获取值
为什么使用会话Cookie?
与官方不同 mcp-for-argocd 需要生成API令牌,此服务器可以使用您现有的浏览器会话。这意味着:
- 无需生成和管理API令牌
- 使用现有的SSO/LDAP/OIDC身份验证
- 与您的浏览器会话具有相同的权限
先决条件
- 紫外线 -快速Python包安装程序和解析器
快速开始
1.安装依赖项
uv sync或者,安装可编辑:
uv pip install -e .2.配置Argo CD连接
创建配置和状态目录:
mkdir -p ~/.config/lukleh/mcp-read-only-argocd
mkdir -p ~/.local/state/lukleh/mcp-read-only-argocd复制示例配置:
cp connections.yaml.sample ~/.config/lukleh/mcp-read-only-argocd/connections.yaml编辑 ~/.config/lukleh/mcp-read-only-argocd/connections.yaml 使用Argo CD实例:
- connection_name: staging
url: https://argocd.example.com
description: Staging Argo CD3.设置身份验证
在用于启动服务器的环境中设置浏览器会话cookie (例如,将其导出到shell中进行本地测试,或通过 MCP客户端配置):
export ARGOCD_SESSION_STAGING=your_session_token_here如何得到你的 argocd.token 会话Cookie
- 登录您的Argo CD网络用户界面
- 打开开发人员工具
- 转到应用程序/存储→ Cookie
- 复制的值
argocd.token曲奇 - 将其导出或注入为
ARGOCD_SESSION_
服务器将刷新的Cookie写入 ~/.local/state/lukleh/mcp-read-only-argocd/session_tokens.json 自动。您不需要自己创建该文件。在后续请求中,持久状态文件优先于实时状态文件 ARGOCD_SESSION_* 环境价值;如果需要强制使用新令牌,请清除或更新状态文件。
4.验证和测试连接
# Test all configured connections
uv run python smoke_test.py
# Test a specific connection
uv run python smoke_test.py --connection staging
# Show the exact paths the helper will use
uv run python smoke_test.py --print-paths5.运行服务器
手动运行服务器以验证:
uv run python -m src.server
# Or if installed as a script:
mcp-read-only-argocd您还可以将服务器指向另一个配置目录:
uv run python -m src.server --config-dir /path/to/config-dir6.将MCP添加到您的AI助手
对于 克劳德代码:
claude mcp add mcp-read-only-argocd -- uv --directory {PATH_TO_MCP_READ_ONLY_ARGOCD} run python -m src.server对于 法典:
codex mcp add mcp-read-only-argocd -- uv --directory {PATH_TO_MCP_READ_ONLY_ARGOCD} run python -m src.server替换 {PATH_TO_MCP_READ_ONLY_ARGOCD} 使用克隆此仓库的绝对路径(例如。, /Users/yourname/projects/mcp-read-only-argocd). 还配置一个 ARGOCD_SESSION_ 环境变量 同一MCP条目中的连接。
MCP工具
核心
list_connections-列出所有已配置的Argo CD连接get_version-获取Argo CD版本信息get_settings-获取Argo CD设置
应用程序
list_applications-列出所有应用程序(带可选项目/标签过滤器)get_application-获取应用程序详细信息get_application_resource_tree-获取Kubernetes资源树get_application_managed_resources-获取托管资源get_application_logs-获取应用程序pod日志
项目
list_projects-列出所有项目get_project-获取项目详细信息
簇
list_clusters-列出所有已注册的集群get_cluster-获取集群详细信息
仓库
list_repositories-列出所有已配置的存储库get_repository-获取存储库详细信息
示例查询
一旦通过Claude Code、Codex或其他MCP客户端连接:
"List all applications in the staging Argo CD"
"Show me the resource tree for the 'my-app' application"
"What clusters are registered in production Argo CD?"
"Get the logs for the 'frontend' application"许可证
麻省理工学院
