Argo Workflow MCP Server
一个 Model Context Protocol (MCP) 服务器,为 AI Agent 提供管理 Argo Workflows 的能力。
功能特性
- 🚀 通过 Argo Server REST API 管理 Argo Workflows
- 📝 创建、查询、列出和删除 Workflow Templates
- ⚡ 提交、监控和管理 Workflow 实例
- 🔒 支持 Token 认证和 TLS 证书验证
- 🛠️ 完整的 MCP 协议支持
- 📦 易于安装和配置
安装
使用 npx(推荐)
无需安装,直接运行:
npx argo-workflow-mcp-server --argo-server https://argo-server.example.com --argo-token your-token
全局安装
npm install -g argo-workflow-mcp-server
使用方法
命令行参数
argo-workflow-mcp-server [options]
选项:
--argo-server <url> Argo Server 地址(必需)
--argo-token <token> Argo Server 认证 token(可选)
--argo-insecure 跳过 TLS 证书验证(用于自签名证书或开发环境)
--namespace <name> 默认命名空间(默认:argo)
--log-level <level> 日志级别:error, warn, info, debug(默认:info)
-h, --help 显示帮助信息
-V, --version 显示版本号
示例
连接到生产环境 Argo Server
argo-workflow-mcp-server \
--argo-server https://argo-server.example.com \
--argo-token your-auth-token \
--namespace argo
连接到本地开发环境(通过 port-forward)
首先设置 port-forward:
kubectl port-forward -n argo svc/argo-server 2746:2746
然后启动 MCP Server:
argo-workflow-mcp-server \
--argo-server http://localhost:2746 \
--argo-insecure \
--namespace argo
连接到使用自签名证书的 Argo Server
如果你的 Argo Server 使用自签名证书,会遇到 "self-signed certificate" 错误。使用 --argo-insecure 参数跳过证书验证:
argo-workflow-mcp-server \
--argo-server https://argo-server.example.com \
--argo-token your-auth-token \
--argo-insecure \
--namespace argo
注意:--argo-insecure 会跳过 TLS 证书验证,仅在以下情况使用:
- 开发和测试环境
- 使用自签名证书的内部环境
- 通过 port-forward 连接本地环境
不推荐在生产环境使用,生产环境应使用有效的 TLS 证书。
AI Agent 配置
Kiro
在 .kiro/settings/mcp.json 中添加配置:
{
"mcpServers": {
"argo-workflow": {
"command": "npx",
"args": [
"-y",
"argo-workflow-mcp-server",
"--argo-server",
"https://argo-server.example.com",
"--argo-token",
"your-auth-token",
"--namespace",
"argo"
]
}
}
}
其他 MCP 客户端
参考 MCP 文档 配置您的客户端。
可用工具
MCP Server 提供以下工具:
Workflow Template 管理
create_workflow_template- 创建新的 Workflow Templateget_workflow_template- 查询指定的 Workflow Templatelist_workflow_templates- 列出所有 Workflow Templatesdelete_workflow_template- 删除指定的 Workflow Template
Workflow 实例管理
submit_workflow- 从模板提交新的 Workflowget_workflow_status- 查询 Workflow 运行状态list_workflows- 列出所有 Workflowsdelete_workflow- 删除指定的 Workflow
获取 Argo Server 地址和 Token
获取 Argo Server 地址
如果 Argo Server 已暴露为 LoadBalancer 或 Ingress:
kubectl get svc -n argo argo-server
如果使用 port-forward:
kubectl port-forward -n argo svc/argo-server 2746:2746
# 然后使用 http://localhost:2746
获取认证 Token
创建 ServiceAccount 并获取 token:
# 创建 ServiceAccount
kubectl create sa argo-workflow-mcp -n argo
# 创建 RoleBinding(根据需要调整权限)
kubectl create rolebinding argo-workflow-mcp \
--clusterrole=argo-admin \
--serviceaccount=argo:argo-workflow-mcp \
-n argo
# 获取 token
kubectl create token argo-workflow-mcp -n argo --duration=8760h
开发
构建
npm install
npm run build
测试
npm test
本地测试
npm run build
npm link
argo-workflow-mcp-server --help
故障排查
自签名证书错误
错误信息:Failed to connect to Argo Server: self-signed certificate
解决方案:使用 --argo-insecure 参数跳过 TLS 证书验证
argo-workflow-mcp-server \
--argo-server https://your-argo-server \
--argo-token your-token \
--argo-insecure
连接失败
- 确认 Argo Server 地址正确
- 检查网络连接
- 验证 token 是否有效
- 如果使用 HTTPS,确保证书有效或使用
--argo-insecure
权限错误
- 确认 ServiceAccount 有足够的权限
- 检查 RBAC 配置
- 验证 token 是否过期
更多帮助
查看 故障排查指南
许可证
MIT License - 详见 LICENSE 文件
贡献
欢迎提交 Issue 和 Pull Request!
