Argo工作流MCP服务器
用于与Argo工作流交互的模型上下文协议(MCP)服务器。该服务器使Claude Desktop和Claude Code能够直接管理和监控Argo工作流。
特性
- 列出并监控工作流
- 管理工作流模板
- 处理cron工作流
- 查询工作流状态和日志
- 使用可配置的权限执行工作流操作
建筑
# Build the application
./gradlew installDist
# Run tests
./gradlew test使用Claude Desktop进行配置
将此添加到您的Claude Desktop MCP配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
使用 claude 命令行界面
claude mcp add --transport stdio argo-workflows \
-- docker run -i --rm \
-e ARGO_BASE_URL=http://host.docker.internal:2746 \
-e ARGO_NAMESPACE=default \
-e MCP_ALLOW_MUTATIONS=true \
-e MCP_AUDIT_FILE=/app/logs/mcp-audit.log \
-v "$HOME/.kube/config:/home/mcp/.kube/config:ro" \
-v "$HOME/.argo-mcp-logs:/app/logs" \
ghcr.io/heapy/argo-workflows-mcp:main运行命令后,重新启动Claude Desktop,使其重新加载MCP列表。
使用Docker
{
"mcpServers": {
"argo-workflows": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "ARGO_BASE_URL=http://host.docker.internal:2746",
"-e", "ARGO_NAMESPACE=default",
"-e", "MCP_ALLOW_MUTATIONS=true",
"-e", "MCP_AUDIT_FILE=/app/logs/mcp-audit.log",
"-v", "/Users/your-user/.kube/config:/home/mcp/.kube/config:ro",
"-v", "/Users/your-user/.argo-mcp-logs:/app/logs",
"ghcr.io/heapy/argo-workflows-mcp:main"
]
}
}
}使用Claude代码进行配置
将以下内容添加到您的Claude Code MCP配置文件中:
位置: ~/.config/claude-code/mcp_config.json
使用Docker
{
"mcpServers": {
"argo-workflows": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "ARGO_BASE_URL=http://host.docker.internal:2746",
"-e", "ARGO_NAMESPACE=default",
"-e", "MCP_ALLOW_MUTATIONS=true",
"-e", "MCP_AUDIT_FILE=/app/logs/mcp-audit.log",
"-v", "/Users/your-user/.kube/config:/home/mcp/.kube/config:ro",
"-v", "/Users/your-user/.argo-mcp-logs:/app/logs",
"ghcr.io/heapy/argo-workflows-mcp:main"
]
}
}
}Docker使用
使用已发布的图像
图片由CI发布到GitHub容器注册表:
ghcr.io/heapy/argo-workflows-mcp:main--最新版本从mainghcr.io/heapy/argo-workflows-mcp:--每次提交不可变构建
docker run -it --rm \
-e ARGO_BASE_URL=https://your-argo-server:2746 \
-e ARGO_NAMESPACE=default \
-e ARGO_TOKEN=$(cat ~/secrets/argo-token) \
-e MCP_AUDIT_FILE=/app/logs/mcp-audit.log \
-v /Users/your-user/.kube/config:/home/mcp/.kube/config:ro \
-v /Users/your-user/.argo-mcp-logs:/app/logs \
ghcr.io/heapy/argo-workflows-mcp:main在当地建设
# Build the application first
./gradlew installDist
# Build Docker image
docker build -t argo-workflows-mcp:latest .
# Run with docker-compose
docker-compose up
# Or run directly
docker run -it --rm \
-e ARGO_BASE_URL=http://your-argo-server:2746 \
-e ARGO_NAMESPACE=default \
-e ARGO_TOKEN=your-token \
-e MCP_AUDIT_FILE=/app/logs/mcp-audit.log \
-v $(pwd)/logs:/app/logs \
argo-workflows-mcp:latest如果为另一台主机颁发了TLS证书(例如 localhost 当您通过访问服务器时 host.docker.internal),set ARGO_TLS_SERVER_NAME 以使客户端显示正确的SNI值。
环境变量
服务器配置
MCP_SERVER_NAME-服务器名称(默认值:argo-workflows-mcp)MCP_SERVER_VERSION-服务器版本(默认:0.1.0)
Argo工作流连接
ARGO_BASE_URL-Argo工作流API URL(默认值:http://localhost:2746)ARGO_NAMESPACE-默认Kubernetes命名空间(默认值:default)ARGO_TOKEN-用于身份验证的承载令牌ARGO_USERNAME-基本身份验证的用户名ARGO_PASSWORD-基本身份验证密码ARGO_INSECURE_SKIP_TLS_VERIFY-跳过TLS验证(默认值:false)ARGO_TLS_SERVER_NAME-建立TLS连接时覆盖TLS服务器名称/SNI值ARGO_REQUEST_TIMEOUT_SECONDS-请求超时(默认值:30)
Kubernetes配置
KUBECONFIG-kubeconfig文件的路径KUBE_CONTEXT-要使用的Kubernetes上下文
权限
MCP_ALLOW_DESTRUCTIVE-允许删除等破坏性操作(默认值:false)MCP_ALLOW_MUTATIONS-允许创建/更新(默认:false)MCP_REQUIRE_CONFIRMATION-敏感操作需要确认(默认值:true)MCP_NAMESPACES_ALLOW-逗号分隔的允许命名空间列表(默认值:*)MCP_NAMESPACES_DENY-以逗号分隔的被拒绝命名空间列表(默认值:空)
日志记录
MCP_AUDIT_ENABLED-启用审核日志记录(默认值:true)MCP_AUDIT_FILE-审核日志文件路径(默认:./mcp-audit.log)MCP_LOG_LEVEL-日志级别:调试、信息、警告、错误(默认值:info)
安全说明
- 默认情况下,服务器以只读模式运行
- 集
MCP_ALLOW_MUTATIONS=true启用创建/更新操作 - 集
MCP_ALLOW_DESTRUCTIVE=true启用删除操作 - 使用
MCP_NAMESPACES_ALLOW限制对特定命名空间的访问 - 所有操作在以下情况下都会被记录
MCP_AUDIT_ENABLED=true
发展
本项目使用:
- Kotlin与协程
- 等级9.2.0
- Java 25
- MCP Kotlin SDK
- 从OpenAPI规范生成Argo工作流客户端
看 代理商.md 发展指南。
