阿里巴巴云的可观测性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能够成功访问和操作您的阿里巴巴云可观测性资源,您需要配置以下权限:
阿里云AccessKey:
当您在初始化时不传递AccessKey和AccessKey Secret时,它将使用默认凭证链登录
ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET,它们将作为默认凭证使用。ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET和ALIBABA_CLOUD_SECURITY_TOKEN,则使用STS Token作为默认凭证。RAM授权(重要):
请注意以下安全预防措施和最佳部署实践:
密钥安全:
访问控制(关键):
在使用MCP Server之前,您需要从阿里巴巴云获取AccessKeyId和AccessKeySecret。请参阅阿里云AccessKey管理
⚠️ 需要Python 3.10或更高版本。
只需使用pip安装即可:
pip install mcp-server-aliyun-observability
python -m mcp_server_aliyun_observability --transport sse --access-key-id <your_access_key_id> --access-key-secret <your_access_key_secret>
通过命令行传递参数:
--transport 指定传输方法,可选值为sse或stdio,默认值为stdio--access-key-id 指定阿里云AccessKeyId;如果没有指定,则使用环境变量中的ALIBABA_CLOUD_ACCESS_KEY_ID--access-key-secret 指定阿里云AccessKeySecret;如果没有指定,则使用环境变量中的ALIBABA_CLOUD_ACCESS_KEY_SECRET--log-level 指定日志级别,可选值为DEBUG、INFO、WARNING、ERROR,默认值为INFO--transport-port 指定传输端口,默认值为8000,仅当--transport为sse时有效uvx --from 'mcp-server-aliyun-observability==0.2.1' mcp-server-aliyun-observability
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>
以SSE启动方式为例,传输端口为8888,在实际使用中需要根据实际情况进行调整
{
"mcpServers": {
"alibaba_cloud_observability": {
"url": "http://localhost:7897/sse"
}
}
}
--directory参数,指定源码目录,最好是绝对路径{
"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>"
}
}
}
}
{
"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>"
}
}
}
}







支持在启动时通过命令行覆盖每个区域的服务端点,并在运行时打印有效的区域和端点(来源=显式/映射/模板)。
python -m mcp_server_aliyun_observability \
--transport streamable-http --transport-port 8083 \
--sls-endpoints "cn-shanghai=cn-hangzhou.log.aliyuncs.com"
python -m mcp_server_aliyun_observability --arms-endpoints "cn-shanghai=arms.internal"
仅支持命令行参数(不支持环境变量或@file加载)
默认回退模板(当找不到映射时):
{region}.log.aliyuncs.comarms.{region}.aliyuncs.comCMS注意: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