Argo观察者MCP服务器
一个简单的服务,它公开了一个 argo监视器 通过模型上下文协议(MCP)将实例作为一组工具,允许AI代理和其他客户端查询部署历史。
\[!重要\] 该项目目前是概念验证(PoC)。它的建立是为了探索Argo Watcher和模型上下文协议(MCP)之间的集成。因此,它可能会发生重大变化或在未来被放弃。请以这种理解来使用它。
特性
- 将argo监视器部署任务作为MCP工具公开。
- 按应用程序名称和时间范围筛选部署。
- 通过官方的MCP Go SDK在stdio和HTTP(流式SSE)上运行。
- 打包为生产就绪的Docker容器。
- 模块化、可测试的Go架构。
先决条件
快速启动
- 确保argo监视器正在运行
MCP服务器从现有的argo观察程序实例读取部署数据。您可以使用 .
# In the argo-watcher repository
docker compose up- 配置MCP服务器
导出所需的环境变量:
export ARGO_WATCHER_URL="http://localhost:8001" # adjust to your deployment
export HTTP_LISTEN_ADDR=":8000"- 在本地运行服务器
task run该过程揭示了:
- 通过以下方式选择运输方式 TRANSPORT_MODE 环境变量(stdio 或 http). - 在 stdio 模式服务器通过stdin/stdout通信;在 http 它为可流式传输的端点提供服务的模式 HTTP_LISTEN_ADDR (默认值 :8000).
- (可选)通过Docker运行
GOOS=linux GOARCH=amd64 go build -o argo-watcher-mcp ./cmd/server
docker build -t argo-watcher-mcp .
docker run --rm -p 8000:8000 \
-e ARGO_WATCHER_URL="http://host.docker.internal:8001" \
argo-watcher-mcp配置
| 变量 | 默认值 | 描述 |
|---|---|---|
ARGO_WATCHER_URL | _无_ (必需) | 上游argo观察器服务的基本URL。 |
HTTP_LISTEN_ADDR | :8000 | HTTP/SSE传输的地址。 |
TRANSPORT_MODE | stdio | 选择运输方式: stdio 用于CLI使用或 http 用于HTTP上的SSE。 |
REQUEST_TIMEOUT | 15s | 下游argo监视器请求的HTTP超时。 |
OTEL_ENABLED | true | 启用OpenTetry仪器;着手 false 禁用所有遥测输出。 |
OTEL_SERVICE_NAME | 继承 APP_NAME | 覆盖OpenTetry service.name 服务器报告的资源属性。 |
OTEL_EXPORTER_OTLP_ENDPOINT | _无_ | 可选OTLP gRPC端点(host:port)用于导出度量和跟踪。 |
OTEL_EXPORTER_OTLP_INSECURE | false | 设置为 true 当收集器不使用TLS时,允许明文OTLP连接。 |
APP_NAME | argo-watcher-mcp | 元数据通过MCP实施信息浮出水面。 |
APP_VERSION | 0.0.1-dev | 版本通过MCP实施信息浮出水面。 |
遥测与度量
启用遥测时,HTTP传输在以下位置公开Prometheus指标 /metrics.钥匙系列:
argo_watcher_mcp_requests_total{result="success|invalid|failed"}–按结果标签划分的MCP工具调用计数器;筛选依据result以获取无效或失败的计数。argo_watcher_reachable–仪表报告下游可达性(1当Argo Watcher成功响应时,0否则)。- 标准Go运行时(
go_*)流程指标在Prometheus端点上注册,以帮助进行容量监控。
发展
常见任务通过包含的 Taskfile:
task test–运行单元测试。task build–将服务器二进制文件编译为bin/argo-watcher-mcp.task fmt–格式化Go源代码。task tidy–整理模块依赖关系。task vet–执行go vet ./....task run–使用默认传输模式在本地启动服务器(stdio除非TRANSPORT_MODE已设置)。
模块和构建缓存位于内部 .cache/ 并且被git忽略。
发布内容由 GoRelease 并发布多架构容器映像(linux/amd64 和 linux/arm64)标签匹配时转换为GHCR v*.*.* 被推。
贡献
由于这是一个PoC,正式的贡献不是主要焦点。但是,如果你发现了一个bug或有建议,请随时提出问题。
