# Argo Workflow MCP Server
一个 [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 服务器,为 AI Agent 提供管理 Argo Workflows 的能力。
## 功能特性
- 🚀 通过 Argo Server REST API 管理 Argo Workflows
- 📝 创建、查询、列出和删除 Workflow Templates
- ⚡ 提交、监控和管理 Workflow 实例
- 🔒 支持 Token 认证和 TLS 证书验证
- 🛠️ 完整的 MCP 协议支持
- 📦 易于安装和配置
## 安装
### 使用 npx(推荐)
无需安装,直接运行:
```bash
npx argo-workflow-mcp-server --argo-server https://argo-server.example.com --argo-token your-token
```
### 全局安装
```bash
npm install -g argo-workflow-mcp-server
```
## 使用方法
### 命令行参数
```bash
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
```bash
argo-workflow-mcp-server \
--argo-server https://argo-server.example.com \
--argo-token your-auth-token \
--namespace argo
```
#### 连接到本地开发环境(通过 port-forward)
首先设置 port-forward:
```bash
kubectl port-forward -n argo svc/argo-server 2746:2746
```
然后启动 MCP Server:
```bash
argo-workflow-mcp-server \
--argo-server http://localhost:2746 \
--argo-insecure \
--namespace argo
```
#### 连接到使用自签名证书的 Argo Server
如果你的 Argo Server 使用自签名证书,会遇到 "self-signed certificate" 错误。使用 `--argo-insecure` 参数跳过证书验证:
```bash
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` 中添加配置:
```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 文档](https://modelcontextprotocol.io) 配置您的客户端。
## 可用工具
MCP Server 提供以下工具:
### Workflow Template 管理
- `create_workflow_template` - 创建新的 Workflow Template
- `get_workflow_template` - 查询指定的 Workflow Template
- `list_workflow_templates` - 列出所有 Workflow Templates
- `delete_workflow_template` - 删除指定的 Workflow Template
### Workflow 实例管理
- `submit_workflow` - 从模板提交新的 Workflow
- `get_workflow_status` - 查询 Workflow 运行状态
- `list_workflows` - 列出所有 Workflows
- `delete_workflow` - 删除指定的 Workflow
## 获取 Argo Server 地址和 Token
### 获取 Argo Server 地址
如果 Argo Server 已暴露为 LoadBalancer 或 Ingress:
```bash
kubectl get svc -n argo argo-server
```
如果使用 port-forward:
```bash
kubectl port-forward -n argo svc/argo-server 2746:2746
# 然后使用 http://localhost:2746
```
### 获取认证 Token
创建 ServiceAccount 并获取 token:
```bash
# 创建 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
```
## 开发
### 构建
```bash
npm install
npm run build
```
### 测试
```bash
npm test
```
### 本地测试
```bash
npm run build
npm link
argo-workflow-mcp-server --help
```
## 故障排查
### 自签名证书错误
**错误信息**:`Failed to connect to Argo Server: self-signed certificate`
**解决方案**:使用 `--argo-insecure` 参数跳过 TLS 证书验证
```bash
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 是否过期
### 更多帮助
查看 [故障排查指南](./docs/TROUBLESHOOTING.md)
## 许可证
MIT License - 详见 [LICENSE](./LICENSE) 文件
## 贡献
欢迎提交 Issue 和 Pull Request!
## 相关链接
- [Argo Workflows](https://argoproj.github.io/workflows/)
- [Model Context Protocol](https://modelcontextprotocol.io)
- [Kiro IDE](https://kiro.ai)