# 阿里云可观测 MCP Server(Go 版)

中文 English

--- > **📌 重要提示** > > 本项目已使用 **Go 语言重构**。如需使用原 Python 版本,请访问 [`v1`](./v1) 目录: > - 📖 [v1/README.md](./v1/README.md) - Python 版本文档 > - 📦 Python 版本通过 `pip install mcp-server-aliyun-observability` 安装 --- 阿里云可观测 MCP Server 的 Go 语言实现,为 AI 模型提供对阿里云日志服务(SLS)和云监控(CMS)的结构化数据访问能力。基于 [Model Context Protocol](https://modelcontextprotocol.io/) 协议,可与 Cursor、Kiro、Cline、Windsurf 等 AI 工具无缝集成。 ## 特性 - 支持 stdio、SSE、streamable-http 三种传输模式 - 模块化工具集架构:PaaS(云监控 2.0)、IaaS(SLS/CMS 直接访问)、Shared - 灵活的时间表达式解析:相对时间、绝对时间戳、Grafana 风格、预设关键词 - 时序数据对比分析:统计计算、趋势分析、差异评分 - 结构化错误处理:英文错误描述和解决方案建议 - 稳定性保障:重试(指数退避)、熔断器、优雅关闭 - 结构化 JSON 日志(slog) - 单一二进制文件,零运行时依赖 ## 快速开始 ### 下载与安装 从 [Releases](https://github.com/aliyun/alibabacloud-observability-mcp-server/releases) 页面下载对应平台的二进制文件: ```bash # Linux amd64 wget https://github.com/aliyun/alibabacloud-observability-mcp-server/releases/latest/download/alibabacloud-observability-mcp-server-linux-amd64.tar.gz tar -xzf alibabacloud-observability-mcp-server-linux-amd64.tar.gz # macOS arm64 (M1/M2) wget https://github.com/aliyun/alibabacloud-observability-mcp-server/releases/latest/download/alibabacloud-observability-mcp-server-darwin-arm64.tar.gz tar -xzf alibabacloud-observability-mcp-server-darwin-arm64.tar.gz ``` 解压后包含: - `alibabacloud-observability-mcp-server` - 可执行文件 - `config.yaml` - 默认配置文件 ### 配置凭证 ```bash # 设置阿里云 AccessKey export ALIBABA_CLOUD_ACCESS_KEY_ID= export ALIBABA_CLOUD_ACCESS_KEY_SECRET= ``` > AccessKey 获取方式:[阿里云 AccessKey 管理](https://help.aliyun.com/document_detail/53045.html) ### 启动服务 ```bash # 以 stdio 模式启动(MCP 客户端直接调用) ./alibabacloud-observability-mcp-server start --stdio # 以网络模式启动(默认 transport 在 config.yaml 中配置) ./alibabacloud-observability-mcp-server start --config config.yaml ``` ### CLI 命令 ```bash # 查看版本信息 ./alibabacloud-observability-mcp-server version # 列出所有已注册工具 ./alibabacloud-observability-mcp-server tools ``` ## 从源码构建 ```bash git clone https://github.com/aliyun/alibabacloud-observability-mcp-server.git cd alibabacloud-observability-mcp-server make build ``` ## 配置 配置采用两层结构: 1. `config.yaml` - 服务器配置(传输模式、日志、网络等) 2. `.env` 文件或环境变量 - 凭证和运行时参数 详细的配置项说明请参考 `config.yaml` 中的注释。 ## AI 工具集成 ### streamable-http 模式(推荐) 1. 配置 `config.yaml`(设置 `server.transport: streamable-http`) 2. 启动服务:`./bin/alibabacloud-observability-mcp-server start` 3. 配置 `mcp.json`: ```json { "mcpServers": { "alibaba_cloud_observability": { "url": "http://localhost:8080" } } } ``` ### stdio 模式 ```json { "mcpServers": { "alibaba_cloud_observability": { "command": "./bin/alibabacloud-observability-mcp-server", "args": ["start", "--stdio"], "env": { "ALIBABA_CLOUD_ACCESS_KEY_ID": "", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "" } } } } ``` ## 工具集 ### 查看完整工具列表 运行以下命令查看当前注册的所有工具: ```bash ./bin/alibabacloud-observability-mcp-server tools ``` ### 付费功能说明 以下 AI 智能工具每次调用会产生 STAROps 费用: | 工具 | 功能 | |------|------| | `sls_text_to_sql` | 自然语言转 SQL | | `sls_text_to_spl` | 自然语言转 SPL | | `sls_sop` | SLS 智能运维助手 | | `cms_natural_language_query` | 自然语言数据查询 | 计费详情查看 [STAROps 计费说明](https://www.aliyun.com/price/product#/starops/detail)。如不需要 AI 能力,可在 `config.yaml` 的 `enabled_tools` 中仅启用免费工具。 ### 权限要求 | 服务 | 权限文档 | 适用工具 | |------|---------|------| | 日志服务 (SLS) | [SLS 权限](https://help.aliyun.com/zh/sls/overview-8) | `sls_*` | | 应用实时监控 (ARMS) | [ARMS 权限](https://help.aliyun.com/zh/arms/security-and-compliance/overview-8) | `umodel_*` | | 云监控 (CMS) | [CMS 权限](https://help.aliyun.com/zh/cms/cloudmonitor-2-0/) | `cms_*` | **特殊权限**:使用 AI 智能工具(如 `sls_text_to_sql`、`cms_natural_language_query`)需要授予 CMS 的 `cms:CreateChat`、`cms:CreateThread` 权限。 ### 时间表达式 所有数据查询工具支持灵活的时间范围格式: | 格式 | 示例 | |------|------| | 相对预设 | `last_5m`、`last_1h`、`last_1d` | | 相对时间 | `now()-1h`、`now-30m` | | Grafana 风格 | `now-15m~now-5m`、`now/d`、`now-1d/d` | | 绝对时间戳 | `1718451045`(秒)、`1718451045000`(毫秒) | | 日期时间字符串 | `2024-01-01 00:00:00`、`2024-01-01T00:00:00Z` | ## 项目结构 ``` ├── cmd/server/ # CLI 入口 ├── pkg/ │ ├── client/ # SLS/CMS 客户端 │ ├── config/ # 配置管理 │ ├── server/ # MCP Server 核心 │ └── toolkit/ # 工具集(PaaS/IaaS/Shared) └── v1/ # Python 版本 ``` ## 安全建议 - 服务不存储 AccessKey,仅在运行时用于 API 调用 - SSE/HTTP 模式下需自行做好访问控制 - 建议部署在内网或 VPC,避免暴露公网 - 推荐使用函数计算 (FC) 部署,仅 VPC 内访问 ## Skill 自动化部署 本项目提供 AI Agent Skill,支持通过自然语言指令完成部署、启动和更新。 ### 安装 Skill **方式一:npx skills add(推荐)** 由 [Vercel Labs](https://github.com/vercel-labs/skills) 维护的通用 skill 安装器,支持 69+ 种 coding agents: ```bash # 全局安装(所有项目可用) npx skills add aliyun/alibabacloud-observability-mcp-server # 项目级安装(仅当前项目可用) npx skills add aliyun/alibabacloud-observability-mcp-server --local ``` **方式二:curl(无需 Node.js)** ```bash # 下载并安装 skill 到 ~/.claude/skills/ curl -fsSL https://raw.githubusercontent.com/aliyun/alibabacloud-observability-mcp-server/master/skills/deploy-observability/SKILL.md -o ~/.claude/skills/deploy-observability/SKILL.md ``` **方式三:从项目仓库复制** 如果你已经克隆了本项目: ```bash # 全局安装 cp skills/deploy-observability/SKILL.md ~/.claude/skills/deploy-observability/ # 或项目级安装(在项目根目录下) cp skills/deploy-observability/SKILL.md .claude/skills/deploy-observability/ ``` ### 使用 Skill 安装 skill 后,将以下内容复制到支持 Skill 的 AI Agent(如 Claude Code)中: **首次部署**: ``` 请使用 deploy-observability skill 帮我完成以下操作: 1. 克隆项目到 ~/alibabacloud-observability-mcp-server 2. 下载依赖并构建 3. 复制 .env.example 为 .env,并提示我填写阿里云 AccessKey 4. 让我选择启动模式(stdio / sse / streamable-http) 5. 生成 JSON 配置,供我粘贴到 AI Agent 中使用 ``` **项目更新**: ``` 请使用 deploy-observability skill 帮我更新项目: 1. 拉取最新代码 2. 检测是否有依赖、配置或环境变量变更 3. 对比工具列表变化,告诉我新增/删除了哪些工具 4. 重新构建并重启服务 ``` 详细使用文档请参考 [skills/deploy-observability/SKILL.md](skills/deploy-observability/SKILL.md)。 ## 许可证 本项目遵循与原 Python 版相同的许可协议。