Query and analyze Alibaba Cloud SLS logs using natural language.
aliyun-sls-mcp
阿里云 SLS 日志查询 MCP Server —— 让 AI 助手(Cursor / Claude Desktop)直接用自然语言查询阿里云日志服务,告别手动翻控制台。
支持函数计算 FC、SAE 微服务、ECS、ACK 容器、API 网关、RDS 慢查询等所有已接入 SLS 的日志源。多地域并行查询,只读安全,零代码接入,npx 一行启动。
GitHub | npm | 阿里云 SLS 文档
这是什么?
你有没有遇到过这种情况:线上出了问题,要去阿里云控制台一页页翻日志,又慢又麻烦?
aliyun-sls-mcp 让你可以在 Cursor 或 Claude Desktop 的对话框里,直接用自然语言查询 SLS 日志:
"查一下 my-project 项目最近 15 分钟的错误日志"
"统计一下最近一小时各接口的报错次数"
"帮我排查今天上午 11 点左右 支付服务的 timeout 问题"
AI 会自动调用 SLS API 查出日志,帮你分析问题。
支持哪些日志来源?
只要你的服务日志写入了阿里云 SLS,就可以用本工具查询。 以下是常见场景:
函数计算 FC(Function Compute)
阿里云函数计算默认将函数执行日志(包括 console.log 输出、错误堆栈、冷启动信息等)持久化到 SLS。
在 FC 控制台 → 函数详情 → 日志,可以看到对应的 SLS Project 和 Logstore,将它们填入对话即可:
查询 fc-log-project aliyun-fc-cn-shenzhen-xxx-log logstore 最近 30 分钟内 my-function 函数的错误日志
注意:FC 日志不包含
__pack_meta__字段,无法使用get_context_logs,可改用query_logs按请求 ID 或__tag__:__pack_id__追踪同一次调用的完整日志。
SAE(Serverless 应用引擎)
SAE 支持将应用的标准输出(stdout/stderr)投递到 SLS。开启后可查询所有实例的日志,无需逐台登录。
在 SAE 控制台 → 应用详情 → 日志管理 → 日志采集,配置投递到 SLS 后,即可通过本工具查询:
查询 sae-log-project sae-app-stdout-store 中 my-app 最近 1 小时的日志
ECS / 自建服务
通过阿里云 Logtail 采集器,可以将 ECS 上任意文件日志(如 Nginx 日志、应用日志)采集到 SLS。配置完成后即可查询:
查询 my-nginx-project nginx-access-log 中最近 1 小时状态码为 5xx 的请求
容器服务 ACK(Kubernetes)
ACK 集群可配置将 Pod 日志(容器标准输出)采集到 SLS,支持按 namespace、Pod 名称等字段过滤:
查询 k8s-log-project k8s-stdout 中 namespace 为 production,pod 包含 payment 的最近 15 分钟错误日志
API 网关 / SLB / CDN 访问日志
阿里云 API 网关、SLB 负载均衡、CDN 等产品支持将访问日志自动投递到 SLS,可用于分析流量、排查 4xx/5xx 错误:
统计 apigw-log-project access-log 最近 1 小时各 API 路径的请求量和平均延迟
RDS / 数据库慢查询日志
RDS 审计日志和慢查询日志也可投递到 SLS,配合 SQL 分析功能可快速定位慢查询:
查询 rds-log-project rds-slowquery-log 最近 1 天执行时间超过 1 秒的慢 SQL,按执行次数排序
功能特性
- 列出项目 — 支持同时查询多个地域,自动发现所有 SLS Project
- 列出日志库 — 浏览 Project 下的所有 Logstore
- 查询日志 — 支持时间范围 + SLS 查询语法过滤,适合错误排查
- SQL 分析 — 对日志做聚合、统计、分组分析
- 日志分布图 — 展示某时间段内的日志量分布,快速定位异常时间窗口
- 上下文日志 — 获取某条日志前后的日志,还原完整执行链路
快速开始
第一步:获取阿里云 AccessKey
AccessKey 是访问阿里云 API 的凭证,类似账号密码,请妥善保管,不要泄露。
- 打开 阿里云 RAM 访问控制台
- 点击「创建 AccessKey」
- 记下 AccessKey ID 和 AccessKey Secret(Secret 只显示一次,请立即保存)
最佳实践:建议创建一个子 RAM 用户,只授予
AliyunLogReadOnlyAccess权限,而不是使用主账号的 AccessKey,这样即使 Key 泄露也不会影响其他服务。
第二步:配置 MCP Server
根据你使用的 AI 工具,找到对应的配置文件并编辑:
Cursor
| 系统 | 配置文件路径 |
|---|---|
| Windows | %USERPROFILE%\.cursor\mcp.json |
| macOS / Linux | ~/.cursor/mcp.json |
Claude Desktop
| 系统 | 配置文件路径 |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
在配置文件中添加以下内容(如果文件不存在就新建,如果已有内容就在 mcpServers 里追加):
{
"mcpServers": {
"aliyun-sls": {
"command": "npx",
"args": ["-y", "aliyun-sls-mcp"],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "你的AccessKeyId",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "你的AccessKeySecret",
"SLS_REGIONS": "cn-hangzhou,cn-shenzhen"
}
}
}
}
把以下内容替换成你自己的:
你的AccessKeyId→ 第一步获取的 AccessKey ID你的AccessKeySecret→ 第一步获取的 AccessKey Secretcn-hangzhou,cn-shenzhen→ 你的 SLS 数据所在地域,多个用英文逗号分隔,只有一个地域也可以直接填单个,如cn-shenzhen
地域 ID 怎么查?
登录 阿里云 SLS 控制台,进入你的 Project,URL 里会有地域信息,如 cn-shenzhen。也可以参考本文末尾的支持地域列表。
第三步:重启 AI 客户端
保存配置文件后,完全退出并重新打开 Cursor 或 Claude Desktop。
重启后,在对话框输入以下内容验证是否配置成功:
帮我列出所有 SLS 项目
如果返回了你的项目列表,说明配置成功!
环境变量说明
| 变量名 | 是否必填 | 说明 |
|---|---|---|
ALIBABA_CLOUD_ACCESS_KEY_ID |
✅ 必填 | 阿里云 AccessKey ID |
ALIBABA_CLOUD_ACCESS_KEY_SECRET |
✅ 必填 | 阿里云 AccessKey Secret |
SLS_REGIONS |
可选 | 地域配置,多个用英文逗号分隔,单个直接填写即可。如 cn-hangzhou 或 cn-hangzhou,cn-shenzhen,cn-beijing。不填默认使用 cn-hangzhou |
SLS_NETWORK |
可选 | 网络类型:public(默认,公网)或 vpc(VPC 内网,适合服务器部署) |
对话使用示例
配置成功后,你可以用自然语言告诉 AI 你想做什么,AI 会自动调用合适的工具:
发现资源
列出所有 SLS 项目(会查询所有配置的地域)
列出深圳地域的 SLS 项目
列出 my-project 项目下所有的日志库
查询日志
查询 my-project 项目 app-logs 日志库最近 15 分钟的错误日志
查找 order-service 最近 1 小时内包含 "timeout" 的日志
查询 cn-shanghai 地域 payment-project 项目 order-logs 中最近 30 分钟的日志
统计分析
统计 my-project 最近 1 小时各接口的报错次数,按数量排序
查看 my-project app-logs 最近 1 小时的日志量分布,找出流量高峰时间点
统计今天各函数的调用量和平均耗时
问题排查
帮我排查 2026-03-19 11:00 到 11:30 之间 payment 函数出现的 SLOW SQL 问题
查一下刚才那条报错日志的前后 20 条日志,看看完整的执行链路
可用工具详情
`
Tools (6)
list_projectsList all SLS projects across configured regions.list_logstoresBrowse all logstores within a specific SLS project.query_logsQuery logs using time range and SLS syntax filtering.sql_analysisPerform SQL aggregation, statistics, and grouping analysis on logs.get_log_distributionDisplay log volume distribution over a time range to identify anomalies.get_context_logsRetrieve logs surrounding a specific log entry to reconstruct execution chains.Environment Variables
ALIBABA_CLOUD_ACCESS_KEY_IDrequiredYour Alibaba Cloud AccessKey IDALIBABA_CLOUD_ACCESS_KEY_SECRETrequiredYour Alibaba Cloud AccessKey SecretSLS_REGIONSComma-separated list of regions to querySLS_NETWORKNetwork type: public or vpcConfiguration
{"mcpServers": {"aliyun-sls": {"command": "npx", "args": ["-y", "aliyun-sls-mcp"], "env": {"ALIBABA_CLOUD_ACCESS_KEY_ID": "your-access-key-id", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "your-access-key-secret", "SLS_REGIONS": "cn-hangzhou,cn-shenzhen"}}}}