alibabacloud-observability-mcp-server

alibabacloud-observability-mcp-server

14

Alibaba Cloud Observability MCP Service is designed to facilitate the integration of AI assistants with Alibaba Cloud's observability products. It primarily supports tools for monitoring and logging, and emphasizes secure deployment practices.

阿里云可观测MCP服务

目前提供的 MCP 工具以阿里云日志服务为主,其他产品会陆续支持,工具详细如下:

版本记录

可以查看

常见问题

可以查看

工具列表

日志相关
工具名称用途关键参数最佳实践
sls_list_projects列出SLS项目,支持模糊搜索和分页projectName:项目名称(可选,模糊搜索)
limit:返回项目数量上限(默认50,范围1-100)
regionId:阿里云区域ID
- 在不确定可用项目时,首先使用此工具
- 使用合理的limit值避免返回过多结果
sls_list_logstores列出项目内的日志存储,支持名称模糊搜索project:SLS项目名称(必需)
logStore:日志存储名称(可选,模糊搜索)
limit:返回结果数量上限(默认10)
isMetricStore:是否筛选指标存储
logStoreType:日志存储类型
regionId:阿里云区域ID
- 确定项目后使用此工具查找相关日志存储
- 可通过logStoreType筛选特定类型日志存储
sls_describe_logstore检索日志存储的结构和索引信息project:SLS项目名称(必需)
logStore:SLS日志存储名称(必需)
regionId:阿里云区域ID
- 在查询前使用此工具了解可用字段及其类型
- 检查所需字段是否启用了索引
sls_execute_sql_query在指定时间范围内对日志存储执行SQL查询project:SLS项目名称(必需)
logStore:SLS日志存储名称(必需)
query:SQL查询语句(必需)
fromTimestampInSeconds:查询开始时间戳(必需)
toTimestampInSeconds:查询结束时间戳(必需)
limit:返回结果数量上限(默认10)
regionId:阿里云区域ID
- 使用适当的时间范围优化查询性能
- 限制返回结果数量避免获取过多数据
sls_translate_text_to_sql_query将自然语言描述转换为SLS SQL查询语句text:查询的自然语言描述(必需)
project:SLS项目名称(必需)
logStore:SLS日志存储名称(必需)
regionId:阿里云区域ID
- 适用于不熟悉SQL语法的用户
- 对于复杂查询,可能需要优化生成的SQL
sls_diagnose_query诊断SLS查询问题,提供失败原因分析query:待诊断的SLS查询(必需)
errorMessage:查询失败的错误信息(必需)
project:SLS项目名称(必需)
logStore:SLS日志存储名称(必需)
regionId:阿里云区域ID
- 查询失败时使用此工具了解根本原因
- 根据诊断建议修改查询语句
应用相关
工具名称用途关键参数最佳实践
arms_search_apps根据应用名称搜索ARMS应用appNameQuery: 应用名称查询字符串(必需)
regionId: 阿里云区域ID(必需,格式:'cn-hangzhou')
pageSize: 每页结果数量(默认:20,范围:1-100)
pageNumber: 页码(默认:1)
- 用于查找特定名称的应用
- 用于获取其他ARMS操作所需的应用PID
- 使用合理的分页参数优化查询结果
- 查看用户拥有的应用列表
arms_generate_trace_query根据自然语言问题生成ARMS追踪数据的SLS查询user_id: 阿里云账户ID(必需)
pid: 应用PID(必需)
region_id: 阿里云区域ID(必需)
question: 关于追踪的自然语言问题(必需)
- 用于查询应用的追踪信息
- 分析应用性能问题
- 跟踪特定请求的执行路径
- 分析服务调用关系
- 集成了自动重试机制处理瞬态错误
arms_get_application_info获取特定ARMS应用的详细信息pid: 应用PID(必需)
regionId: 阿里云区域ID(必需)
- 当用户明确请求应用信息时使用
- 确定应用的开发语言
- 在执行其他操作前先获取应用基本信息
arms_profile_flame_analysis分析ARMS应用火焰图性能热点pid: 应用PID(必需)
startMs: 分析开始时间戳(必需)
endMs: 分析结束时间戳(必需)
profileType: 分析类型,如'cpu'、'memory'(默认:'cpu')
ip: 服务主机IP(可选)
thread: 线程ID(可选)
threadGroup: 线程组(可选)
regionId: 阿里云区域ID(必需)
- 用于分析应用性能热点问题
- 支持CPU和内存类型的性能分析
- 可筛选特定IP、线程或线程组
- 适用于Java和Go应用
arms_diff_profile_flame_analysis对比不同时间段的火焰图性能变化pid: 应用PID(必需)
currentStartMs: 当前时间段开始时间戳(必需)
currentEndMs: 当前时间段结束时间戳(必需)
referenceStartMs: 参考时间段开始时间戳(必需)
referenceEndMs: 参考时间段结束时间戳(必需)
profileType: 分析类型,如'cpu'、'memory'(默认:'cpu')
ip: 服务主机IP(可选)
thread: 线程ID(可选)
threadGroup: 线程组(可选)
regionId: 阿里云区域ID(必需)
- 用于发布前后性能对比
- 分析性能优化效果
- 识别性能退化点
- 支持CPU和内存类型的性能对比
- 适用于Java和Go应用
指标相关
工具名称用途关键参数最佳实践
cms_translate_text_to_promql将自然语言描述转换为PromQL查询语句text: 要转换的自然语言文本(必需)
project: SLS项目名称(必需)
metricStore: SLS指标存储名称(必需)
regionId: 阿里云区域ID(必需)
- 提供清晰、具体的指标描述
- 如已知,可在描述中提及特定的指标名称、标签或操作
- 排除项目或指标存储名称本身
- 检查并优化生成的查询以提高准确性和性能

权限要求

为了确保 MCP Server 能够成功访问和操作您的阿里云可观测性资源,您需要配置以下权限:

  1. 阿里云访问密钥 (AccessKey)

  2. 当你初始化时候不传入 AccessKey 和 AccessKey Secret 时,会使用默认凭据链进行登录

    1. 如果环境变量 中的ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET均存在且非空,则使用它们作为默认凭据。
    2. 如果同时设置了ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET和ALIBABA_CLOUD_SECURITY_TOKEN,则使用STS Token作为默认凭据。
  3. RAM 授权 (重要)

    • 与 AccessKey 关联的 RAM 用户或角色必须被授予访问相关云服务所需的权限。
    • 强烈建议遵循"最小权限原则":仅授予运行您计划使用的 MCP 工具所必需的最小权限集,以降低安全风险。
    • 根据您需要使用的工具,参考以下文档进行权限配置:
      • 日志服务 (SLS):如果您需要使用 sls_* 相关工具,请参考 日志服务权限说明,并授予必要的读取、查询等权限。
      • 应用实时监控服务 (ARMS):如果您需要使用 arms_* 相关工具,请参考 ARMS 权限说明,并授予必要的查询权限。
    • 请根据您的实际应用场景,精细化配置所需权限。

安全与部署建议

请务必关注以下安全事项和部署最佳实践:

  1. 密钥安全

    • 本 MCP Server 在运行时会使用您提供的 AccessKey 调用阿里云 OpenAPI,但不会以任何形式存储您的 AccessKey,也不会将其用于设计功能之外的任何其他用途。
  2. 访问控制 (关键)

    • 当您选择通过 SSE (Server-Sent Events) 协议 访问 MCP Server 时,您必须自行负责该服务接入点的访问控制和安全防护
    • 强烈建议将 MCP Server 部署在内部网络或受信环境中,例如您的私有 VPC (Virtual Private Cloud) 内,避免直接暴露于公共互联网。
    • 推荐的部署方式是使用阿里云函数计算 (FC),并配置其网络设置为仅 VPC 内访问,以实现网络层面的隔离和安全。
    • 注意切勿在没有任何身份验证或访问控制机制的情况下,将配置了您 AccessKey 的 MCP Server SSE 端点暴露在公共互联网上,这会带来极高的安全风险。

使用说明

在使用 MCP Server 之前,需要先获取阿里云的 AccessKeyId 和 AccessKeySecret,请参考 阿里云 AccessKey 管理

使用 pip 安装

⚠️ 需要 Python 3.10 及以上版本。

直接使用 pip 安装即可,安装命令如下:

pip install mcp-server-aliyun-observability
  1. 安装之后,直接运行即可,运行命令如下:
python -m mcp_server_aliyun_observability --transport sse --access-key-id <your_access_key_id> --access-key-secret <your_access_key_secret>

可通过命令行传递指定参数:

  • --transport 指定传输方式,可选值为 ssestdio,默认值为 stdio
  • --access-key-id 指定阿里云 AccessKeyId,不指定时会使用环境变量中的ALIBABA_CLOUD_ACCESS_KEY_ID
  • --access-key-secret 指定阿里云 AccessKeySecret,不指定时会使用环境变量中的ALIBABA_CLOUD_ACCESS_KEY_SECRET
  • --log-level 指定日志级别,可选值为 DEBUGINFOWARNINGERROR,默认值为 INFO
  • --transport-port 指定传输端口,默认值为 8000,仅当 --transportsse 时有效
  1. 使用uv 命令启动 可以指定下版本号,会自动拉取对应依赖,默认是 studio 方式启动
uvx --from 'mcp-server-aliyun-observability==0.2.1' mcp-server-aliyun-observability 
  1. 使用 uvx 命令启动
uvx run mcp-server-aliyun-observability

从源码安装


# clone 源码
git clone git@github.com:aliyun/alibabacloud-observability-mcp-server.git
# 进入源码目录
cd alibabacloud-observability-mcp-server
# 安装
pip install -e .
# 运行
python -m mcp_server_aliyun_observability --transport sse --access-key-id <your_access_key_id> --access-key-secret <your_access_key_secret>

AI 工具集成

以 SSE 启动方式为例,transport 端口为 8888,实际使用时需要根据实际情况修改

Cursor,Cline 等集成
  1. 使用 SSE 启动方式
{
  "mcpServers": {
    "alibaba_cloud_observability": {
      "url": "http://localhost:7897/sse"
        }
  }
}
  1. 使用 stdio 启动方式 直接从源码目录启动,注意
    1. 需要指定 --directory 参数,指定源码目录,最好是绝对路径
    2. uv命令 最好也使用绝对路径,如果使用了虚拟环境,则需要使用虚拟环境的绝对路径
{
  "mcpServers": {
    "alibaba_cloud_observability": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/alibabacloud-observability-mcp-server",
        "run",
        "mcp-server-aliyun-observability"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "<your_access_key_id>",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "<your_access_key_secret>"
      }
    }
  }
}
  1. 使用 stdio 启动方式-从 module 启动
{
  "mcpServers": {
    "alibaba_cloud_observability": {
      "command": "uv",
      "args": [
        "run",
        "mcp-server-aliyun-observability"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "<your_access_key_id>",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "<your_access_key_secret>"
      }
    }
  }
}
Cherry Studio集成

image

image

Cursor集成

image

image

image

ChatWise集成

image

image