返回市场
阿里云可观测性MCP服务器

阿里云可观测性MCP服务器

作者:aliyun50 星标更新:2025-10-20

项目介绍

Alibaba Cloud Observability MCP服务

<p align="center"> <a href="./README.md"><img alt="中文自述文件" src="https://img.shields.io/badge/简体中文-d9d9d9""></a> <a href="./README_EN.md"><img alt="英文自述文件" src="https://img.shields.io/badge/English-d9d9d9") </p>

简介

阿里巴巴云的可观测性MCP服务提供了一系列工具来访问各种阿里巴巴云可观测性产品,包括阿里巴巴云日志服务SLS、阿里巴巴云应用实时监控服务ARMS以及阿里巴巴云云监控。任何支持MCP协议的代理助手都可以快速集成。

目前提供的MCP工具主要集中在阿里巴巴云日志服务上,并逐步增加对其他产品的支持。具体工具如下:

版本历史

您可以查看 CHANGELOG.md

常见问题

您可以查看 FAQ.md

工具列表

日志相关

| 工具名称 | 目的 | 关键参数 | 最佳实践 |
|---------|------|---------|---------|
| sls_list_projects 列出SLS项目,支持模糊搜索和分页 | projectName项目名称(可选,用于模糊搜索)<br>limit返回的最大项数(默认50,范围1-100)<br>regionId阿里巴巴云区域ID | - 当不确定可用项时,请首先使用此工具<br>- 合理设置limit避免返回过多结果 |
| sls_list_logstores 列出项目中的日志存储,支持按名称模糊搜索 | projectSLS项目名称(必需)<br>logStore日志存储名称(可选,模糊搜索)<br>limit返回的最大结果数(默认10)<br>isMetricStore是否存储筛选条件<br>logStoreType日志存储类型<br>regionId: 阿里巴巴云区域ID | - 在确定项目后使用此工具查找相关的日志存储<br>- 可以通过logStoreType过滤特定类型的日志存储 |
| sls_describe_logstore | 查询日志存储的结构和索引信息 | projectSLS项目名称(必需)<br>logStoreSLS日志存储名称(必需)<br>regionId阿里巴巴云区域ID | - 在查询之前使用此工具了解可用字段及其类型<br>- 检查所需字段是否启用了索引 |
| sls_execute_sql_query 在指定时间范围内执行日志存储的SQL查询 | projectSLS项目名称(必需)<br>logStoreSLS日志存储名称(必需)<br>querySQL查询语句(必需)<br>fromTimestampInSeconds查询起始时间戳(必需)<br>toTimestampInSeconds查询结束时间戳(必需)<br>limit返回的最大结果数(默认1_0)<br>regionId阿里巴巴云区域ID | - 使用适当的时间范围优化查询性能<br>- 限制返回的结果数量以避免检索过多数据 |
| sls_translate_text_to_sql_query 将自然语言描述转换为SLS SQL查询语句 | text查询的自然语言描述(必需)<br>projectSLS项目名称(必需)<br>logStoreSLS日志存储名称(必需)<br>regionId阿里云区域ID | - 适用于不熟悉SQL语法的用户<br>- 对于复杂的查询,可能需要优化生成的SQL |
| sls_diagnose_query 诊断SLS查询问题并提供失败原因分析 | query要诊断的SLS查询(必需)<br>errorMessage查询失败的错误消息(必需)<br>projectSLS项目名称(必需)<br>logStoreSLS日志存储名称(必需)<br>regionId阿里云区域ID | - 使用此工具了解查询失败的根本原因<br>- 根据诊断建议修改查询语句 |

应用相关

| 工具名称 | 目的 | 关键参数 | 最佳实践 |
|---------|------|---------|---------|
| arms_search_apps 按应用名称搜索ARMS应用 | appNameQuery应用名称查询字符串(必需)<br>regionId阿里云区域ID(必需,格式:'cn-hangzhou')<br>pageSize每页结果数量(默认:20,范围:1-100)<br>pageNumber页码(默认:1) | - 用于搜索特定名称的应用<br>- 用于获取其他ARMS操作所需的PID<br>- 合理设置分页参数以优化查询结果<br>- 查看用户拥有的应用列表 |
| arms_generate_trace_query 根据自然语言问题生成ARMS跟踪数据的SLS查询 | user_id阿里云账户ID(必需)<br>pid应用PID(必需)<br>region_id阿里巴巴云区域ID(必需)<br>question关于跟踪的自然语言问题(必需) | - 用于查询应用的跟踪信息<br>- 分析应用性能问题<br>- 跟踪特定请求的执行路径<br>- 分析服务调用关系<br>- 集成自动重试机制以处理瞬时错误 |
| arms_get_application_info | 获取特定ARMS应用的详细信息 | pid应用PID(必需)<br>regionId阿里巴巴云区域ID(必需) | - 当用户明确请求应用信息时使用<br>- 确定应用的开发语言<br>- 在执行其他操作之前检索应用的基本信息 |
| arms_profile_flame_analysis 分析ARMS应用火焰图中的性能热点 | pid应用PID(必需)<br>startMs分析开始时间戳(必需)<br>endMs分析结束时间戳(必需)<br>profileType分析类型,如'cpu'、'memory'(默认:'cpu')<br>ip服务主机IP(可选)<br>thread线程ID(可选)<br>threadGroup线程组(可选)<br>regionId阿里云区域ID(必需) | - 用于分析应用性能热点问题<br>- 支持CPU和内存类型的性能分析<br>- 过滤特定IP、线程或线程组<br>- 适用于Java和Go应用 |
| arms_diff_profile_flame_analysis 比较不同时间段内火焰图的性能变化 | pid应用PID(必需)<br>currentStartMs当前时间段的开始时间戳(必需)<br>currentEndMs当前时间段的结束时间戳(必需)<br>referenceStartMs参考时间段的开始时间戳(必需)<br>referenceEndMs参考时间段的结束时间戳(必需)<br>profileType分析类型,如'cpu'、'memory'(默认:'cpu')<br>ip服务主机IP(可选)<br>thread线程ID(可选)<br>threadGroup线程组(可选)<br>regionId阿里云区域ID(必需) | - 用于发布前后性能对比<br>- 分析性能优化结果<br>- 识别性能下降点<br>- 支持CPU和内存类型的性能比较<br>- 适用于Java和Go应用 |

指标相关

| 工具名称 | 目的 | 关键参数 | 最佳实践 |
|---------|------|---------|---------|
| cms_translate_text_to_promql 将自然语言描述转换为PromQL查询语句 | text要转换的自然语言文本(必需)<br>projectSLS项目名称(必需)<br>metricStoreSLS指标存储名称(必需)<br>regionId阿里巴巴云区域ID(必需) | - 提供清晰具体的指标描述<br>- 如果已知,可以在描述中提及特定的指标名称、标签或操作<br>- 排除项目或指标存储名称本身<br>- 检查并优化生成的查询以提高准确性和性能

权限要求

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

  1. 阿里云AccessKey

  2. 当您在初始化时不传递AccessKey和AccessKey Secret时,它将使用默认凭证链登录

    1. 如果环境变量中同时存在且非空的ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,它们将作为默认凭证使用。
    2. 如果同时设置了ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRETALIBABA_CLOUD_SECURITY_TOKEN,则使用STS Token作为默认凭证。
  3. RAM授权(重要)

    • 与AccessKey关联的RAM用户或角色必须被授予访问相关云服务所需的权限。
    • **强烈建议遵循“最小权限原则”**仅授予运行您计划使用的MCP工具所需的最低权限集,以减少安全风险。
    • 根据您需要使用的工具,参考以下文档进行权限配置:
      • **日志服务(SLS)**如果您需要使用sls_*相关工具,请参阅日志服务权限描述并授予必要的读取和查询权限。
      • **应用实时监控服务(ARMS)**如果您需要使用arms_*相关工具,请参阅ARMS权限描述并授予必要的查询权限。
    • 特别注意:如果使用了SQL生成等工具,需要单独授权sls:CallAiTools权限。
    • 请根据实际应用场景配置所需的权限。

安全和部署建议

请注意以下安全预防措施和最佳部署实践:

  1. 密钥安全

    • 此MCP Server将在运行过程中使用您提供的AccessKey调用阿里巴巴云OpenAPI,但您的AccessKey不会以任何形式存储也不会用于超出预期设计功能的任何其他用途。
  2. 访问控制(关键)

    • 当您选择通过SSE(服务器发送事件)协议访问MCP Server时,您负责服务访问点的访问控制和安全保护
    • 强烈推荐将MCP Server部署在内部网络或可信环境中,例如您的私有VPC(虚拟私有云),避免直接暴露于公共互联网。
    • 推荐的部署方法是使用阿里巴巴云函数计算(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

从源代码安装


# 克隆源码
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启动方式为例,传输端口为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方法启动 - 从模块启动
{
  "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

端点映射和全局配置(SLS/ARMS)

支持在启动时通过命令行覆盖每个区域的服务端点,并在运行时打印有效的区域和端点(来源=显式/映射/模板)。

  • SLS端点映射(CLI)
python -m mcp_server_aliyun_observability \
  --transport streamable-http --transport-port 8083 \
  --sls-endpoints "cn-shanghai=cn-hangzhou.log.aliyuncs.com"
  • ARMS端点映射(CLI)
python -m mcp_server_aliyun_observability --arms-endpoints "cn-shanghai=arms.internal"
  • 仅支持命令行参数(不支持环境变量或@file加载)

  • 默认回退模板(当找不到映射时):

    • SLS:{region}.log.aliyuncs.com
    • ARMS:arms.{region}.aliyuncs.com
  • CMS注意:CMS工具内部使用SLS客户端进行自动复用 --sls-endpoints 映射。

  • 日志示例(输出到控制台和文件):

SLS端点解析:region=cn-shanghai, endpoint=cn-hangzhou.log.aliyuncs.com, source=mapping
ARMS端点解析:region=cn-shanghai, endpoint=arms.cn-shanghai.aliyuncs.com, source=template