last9/last9-mcp-server

分类General
作者Community
星标214
定价Free

简介

last9-mcp-server 是一个将生产环境实时上下文直接接入 AI 聊天界面的桥梁。它解决了开发者在排查 Bug 时,需要在 IDE、监控面板和日志系统之间频繁切换的痛点。通过 MCP 协议,AI 能够直接读取实时日志、指标和链路追踪数据,让 LLM 在拥有真实运行环境上下文的情况下协助你定位问题并修复代码。对于习惯于全栈开发或负责运维的开发者来说,这大大降低了从“发现异常”到“写出补丁”的时间成本,上手门槛低,只需配置好服务端即可在支持 MCP 的客户端中使用。

核心亮点

  • 将实时日志与指标直接喂给 AI,告别手动复制粘贴
  • 打通生产环境与本地 IDE,实现快速精准的 Bug 定位
  • 支持链路追踪数据,让 AI 辅助分析复杂系统调用链
  • 标准 MCP 协议接入,兼容 Claude 等主流 AI 客户端

完整文档

Last9 MCP Server

!last9 mcp demo

你的 AI agent 不知道生产环境中出了什么问题。这个工具可以解决这个问题。

Last9 MCP Server 将 Claude、Cursor、Windsurf 以及任何其他支持 MCP 的 AI 助手直接连接到你的生产环境可观测性数据 —— 包括 logs、metrics、traces、exceptions、database queries、alerts 和 deployments。让 agent 停止猜测,开始读取真实的信号。

---

30 秒快速开始 (托管版)

无需安装二进制文件,无需管理 tokens。只需一个 URL,在浏览器中完成 OAuth 即可。

在你的 Last9 URL 中找到 org slug:app.last9.io/<org_slug>/...

Claude Code
bash
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp
输入 /mcp,选择 last9,进行身份验证。就这么简单。

Cursor

Settings > MCP > Add New MCP Server:

json
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
点击 Connect,完成 OAuth 认证。

VS Code

需要 v1.99+ 版本。打开 Command Palette $\rightarrow$ MCP: Add Server,粘贴 URL,进行身份验证。

或直接在 settings.json 中配置:

json
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
}
### Windsurf

Settings > Cascade > Open MCP Marketplace > 齿轮图标 (mcp_config.json):

json
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
### Claude Web/Desktop

Settings > Connectors > Add custom connector. 将其命名为 last9,粘贴 URL,然后进行身份验证。

> 需要具有 Claude 组织的管理员权限。

---

自托管 (STDIO)

当你的 MCP 客户端不支持 HTTP 传输,或需要本地运行服务器时,请使用此方式。

安装

Homebrew:

bash
brew install last9/tap/last9-mcp
NPM:
bash
npm install -g @last9/mcp-server@latest

or directly:


npx -y @last9/mcp-server@latest
二进制发行版 (Windows / 手动安装):

GitHub Releases 下载:

| 平台 | 压缩包 |
| --------------- | --------------------------------------- |
| Windows (x64) | last9-mcp-server_Windows_x86_64.zip |
| Windows (ARM64) | last9-mcp-server_Windows_arm64.zip |
| Linux (x64) | last9-mcp-server_Linux_x86_64.tar.gz |
| Linux (ARM64) | last9-mcp-server_Linux_arm64.tar.gz |
| macOS (x64) | last9-mcp-server_Darwin_x86_64.tar.gz |
| macOS (ARM64) | last9-mcp-server_Darwin_arm64.tar.gz |

获取 Refresh Token

只有 admins 可以创建 token。

1. 前往 API Access
2. 点击 Generate Token 并选择 Write 权限
3. 复制该 token

客户端配置

Homebrew:

json
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM:
json
{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
粘贴位置:

| Client | 位置 |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| Claude Web/Desktop | Settings > Developer > Edit Config (claude_desktop_config.json) |
| Cursor | Settings > Cursor Settings > MCP > Add New Global MCP Server |
| Windsurf | Settings > Cascade > MCP Marketplace > gear icon (mcp_config.json) |
| VS Code | 在 settings.json 中使用 { "mcp": { "servers": { ... } } } 包裹 — 详情 |

<details>
<summary>VS Code STDIO 配置</summary>

json
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
}
对于 NPM:使用 "command": "npx" 并添加 "args": ["-y", "@last9/mcp-server@latest"]

</details>

<details>
<summary>Windows</summary>

GitHub Releases 下载后,解压并指向完整路径:

json
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM 方式在 Windows 上更简单 —— 无需管理路径。

</details>

Environment Variables

| 变量 | 默认值 | 描述 |
| ---------------------------- | -------------------- | ----------- |
| LAST9_REFRESH_TOKEN | *(必填)* | 来自 API Access 的 Refresh token |
| LAST9_DATASOURCE | org default | Datasource/cluster 名称 —— 当您拥有多个 Levitate cluster 时非常有用 |
| LAST9_API_HOST | app.last9.io | 覆盖 API host |
| LAST9_TOOLSETS | all tools | 要公开的工具集,以逗号分隔 (logs, traces, metrics, alerts, dashboards, investigate, all)。别名:LAST9_MCP_TOOLSETS |
| LAST9_MAX_GET_LOGS_ENTRIES | 5000 | 分块 get_logs 请求的最大条目数 |
| LAST9_DEBUG_CHUNKING | false | 设置为 true 以记录 get_logsget_service_logsget_traces 的分块规划详情 |
| LAST9_DISABLE_TELEMETRY | true | 设置为 false 以启用内部 OTel tracing |
| OTEL_SDK_DISABLED | — | 标准 OTel 环境变量。覆盖 LAST9_DISABLE_TELEMETRY |
| OTEL_EXPORTER_OTLP_ENDPOINT| — | OTLP collector endpoint(仅在启用 telemetry 时有效) |
| OTEL_EXPORTER_OTLP_HEADERS | — | OTLP 认证 headers(仅在启用 telemetry 时有效) |

---

What It Can Do### Service Health

  • get_service_summary — 排序后的 fleet (service, env) 行:包含 interval request_count, throughput_rpm, HTTP 4xx/5xx 计数以及 gRPC 错误计数
  • get_service_environments — 服务的可用环境。请先运行此命令 —— 其他 APM 工具需要从中获取 env
  • get_service_performance_details — 详细细分:throughput, error rate, p50/p90/p95/avg/max, apdex, availability
  • get_service_operations_summary — 按 HTTP endpoints, DB calls, messaging, HTTP clients 分组的操作摘要
  • get_service_dependency_graph — 依赖关系图,包含上游/下游/基础设施的 throughput, latency 和 error rates
  • get_apm_service_deviations — 将当前时间窗与等长基准线进行对比:包含 regressions/improvements, Apdex 对账以及最终结果(fleet 或单个 service)
  • get_exceptions — 带有 service 和 span 过滤条件的服务端 exceptions

Database Observability

四个直接分析数据库性能的工具,源自 OpenTelemetry trace spans。如果你已经在用 OTel,则无需额外配置 instrumentation。- get_databases — 发现整个基础设施中的所有数据库:DB 类型、主机、吞吐量 (queries/min)、p95 延迟、错误率、依赖服务数量

  • get_database_slow_queries — 实际执行最慢的查询,按持续时间排序,并提供用于深入分析完整追踪的 trace IDs

  • get_database_queries — 查询模式和聚合数据:查询运行频率、平均/p95 持续时间、错误率

  • get_database_server_metrics — 来自 DB 主机本身的服务器端指标(CPU、连接数、缓冲命中率 —— 取决于您的 DB 系统)

支持 PostgreSQL, MySQL, MongoDB, Redis, Aerospike,以及任何带有 db_system 属性的 OTel traces。

Prometheus / PromQL

  • prometheus_range_query — 针对任何指标的 PromQL 范围查询
  • prometheus_instant_query — 即时查询;可使用 avg_over_timesum_over_time 等聚合函数
  • prometheus_label_values — 给定序列的标签值
  • prometheus_labels — 序列的所有可用标签

通过设置 LAST9_DATASOURCE 将这些查询指向与默认值不同的数据源/集群。

Logs- get_logs — 全量 JSON pipeline 日志查询(聚合、过滤、字段提取)

  • get_service_logs — 服务的原始日志行,可按 severity 和 body 内容过滤
  • get_log_attributes — 指定时间窗口内日志 schema 的全局属性目录
  • get_log_attributes_for_pipeline — 正在运行的 pipeline 中实际存在的日志字段(范围限定发现),每个字段包含其精确的 filter_field
  • add_drop_rule — 创建新的丢弃规则以在源端削减日志量

Traces

  • get_traces — 用于广泛搜索和聚合的 JSON pipeline trace 查询
  • get_service_traces — 按精确的 trace ID 或服务名称查询 trace。当你拥有 trace ID 时请使用此项,速度更快
  • get_trace_attributes — trace schema 的全局属性目录
  • get_trace_attributes_for_pipeline — 正在运行的 pipeline 中实际存在的属性(范围限定发现),每个属性包含其精确的 filter_field
  • get_trace_attribute_values — trace 属性的唯一值,可选限定至某个 pipeline
  • get_trace_attribute_deviations — 对两个限定 span 队列(慢 vs 快,错误 vs 非错误,或两个时间窗口)之间存在差异的属性值进行排序。表示相关性而非因果关系
  • get_trace_waterfall — 将单个精确 trace 以父/子级联瀑布图形式展示,包含区间并集自用时间(self-time)、最慢 span 和图表警告### 变更事件与告警
  • get_change_events — 部署、配置变更、回滚。将事件与变更内容关联
  • get_alert_config — 告警规则配置 — 可通过名称、严重程度、类型、标签进行搜索
  • get_alerts — 指定时间窗内当前正在触发的告警
  • get_alert_rule_state — 指定时间范围内每条告警规则的历史触发状态 (1/0),按 rule_id 分组。可根据告警组、规则名称、标签过滤器和状态进行筛选
  • get_notification_channels — 已配置的通知渠道 (Slack, PagerDuty, email 等)

自定义仪表盘

  • list_dashboards — 组织内所有自定义仪表盘:ID、名称和元数据
  • get_dashboard — 通过 ID 获取完整的仪表盘定义,包括面板和查询
  • create_dashboard — 创建包含面板、查询和元数据的新自定义仪表盘
  • update_dashboard — 通过 ID 更新现有仪表盘(只读系统仪表盘将返回错误)
  • delete_dashboard — 通过 ID 删除自定义仪表盘
  • list_dashboard_snapshots — 仪表盘的冻结时间点快照(仅元数据)
  • get_dashboard_snapshot — 完整的冻结快照,包括用于 RCA / 共享视图的面板数据
  • delete_dashboard_snapshot — 通过 ID 删除冻结快照

模糊名称解析- did_you_mean — 当 agent 不确定实体名称时,此接口会从你的目录(服务、环境、主机、数据库、K8s deployment/namespace、job)中返回最接近的匹配项。最多提供 3 个建议及其相似度分数。当名称查询结果为空时,服务器在调用大多数工具前会自动调用此接口。

---

工作原理

每条响应均包含深度链接。 每个工具都会返回一个 deep_link 字段 —— 一个直接指向 Last9 控制面板中对应查询和时间范围的 URL。agent 可以将链接提供给你,点击即可跳转。

工具集 (Toolsets)。 默认情况下,服务器公开所有工具。仅需要进行调查(日志/链路/指标)的自动化主机可以设置 LAST9_TOOLSETS=investigate(或传递 --toolsets=investigate),这样 tools/list 保持精简,无需在客户端进行大规模禁用。命名包包括:logstracesmetricsalertsdashboardsinvestigateall。未知名称将快速报错。单独的 metrics包含 list_datasourcesdid_you_mean —— 当你需要这些发现助手时,请使用 investigate(或组合工具集)。工具参考资源。 冗长的 logjson/tracejson/service-logs/metrics 手册被定义为 MCP resources (last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics),而非始终开启的工具描述文本。关键的查询规则保留在工具描述中,以便那些从未调用 resources/read 的 agent 仍能获得正确的构建指导。通过 get_log_attributes / get_log_attributes_for_pipeline(以及对应的 trace 方法)来发现组织特定的字段——这些字段不会被注入到描述中。

大结果集分块。 get_logsget_traces 通过分块(chunking)而非截断来处理大型结果集。日志的默认限制为 5000 条;可通过 LAST9_MAX_GET_LOGS_ENTRIES 进行配置。

---

Development

<details>
<summary>HTTP mode, curl testing, building from source</summary>

Run in HTTP Mode
bash
export LAST9_REFRESH_TOKEN="your_refresh_token"

export LAST9_HTTP=true export LAST9_PORT=8080 ./last9-mcp-server
服务器启动于 http://localhost:8080/mcp

使用 curl 测试

Streamable HTTP handler 以无状态模式运行,因此每个请求都是独立处理的。initialize 握手和 Mcp-Session-Id 请求头是可选的 —— 发送这些内容的客户端仍可正常工作(该请求头会被接收并忽略),客户端也可以直接调用 tools/list / tools/call。每个 tool 都是一个独立的请求/响应查询;服务器不发送 server→client 通知,因此 GET /mcp (SSE 流) 将返回 405

bash
# List tools — a session handshake is optional in stateless mode
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'

Call a tool

curl -s -X POST http://localhost:8080/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_service_logs", "arguments": { "service_name": "your-service-name", "lookback_minutes": 30, "limit": 10 } } }'
### 从源码构建
bash
git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-server
LAST9_HTTP=true 用于本地开发。对于实际使用,hosted HTTP endpoint 更为便捷。

</details>

---

Tool Reference

<details>
<summary>所有参数、时间输入标准及详情</summary>

Time Input

  • 绝对时间 (start_time_iso/end_time_isotime_iso) 的优先级高于 lookback_minutes
  • 相对时间窗口:使用 lookback_minutes
  • 绝对时间窗口:使用 RFC3339/ISO8601 标准 —— 2026-02-09T15:04:05Z
  • 为了兼容性,仅接受旧版的 YYYY-MM-DD HH:MM:SS 格式。

get_exceptions

  • limit (integer, 可选): 最大异常数。默认值:20。
  • lookback_minutes (integer, 可选): 默认值:60。
  • start_time_iso / end_time_iso (string, 可选): 绝对时间范围。
  • service_name (string, 可选): 按服务过滤。
  • span_name (string, 可选): 按 span 名称过滤。
  • env (string, 可选): 按环境过滤。

get_service_summary

  • start_time_iso / end_time_iso (string, 可选)
  • env (string, 可选): PromQL 正则表达式。默认为 .*。精确匹配需要锚点(例如 ^prod$)。
  • sort_by (string, 可选): request_count (默认), throughput_rpm, http_4xx_count, http_5xx_countgrpc_error_count
  • limit (integer, 可选): 最大排名行数。省略或为 0 则默认为 10;超过 100 的值将截断为 100。

get_service_environments

  • start_time_iso / end_time_iso (string, 可选)> 所有其他 APM 工具都需要 env 值。如果返回为空,请使用 ""

get_service_performance_details

  • service_name (string, required)
  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)
  • env (string, optional): 默认值为 prod

get_service_operations_summary

  • service_name (string, required)
  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)
  • env (string, optional): 默认值为 prod

get_service_dependency_graph

  • service_name (string, optional)
  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)
  • env (string, optional): 默认值为 prod

get_apm_service_deviations

  • service_name (string, optional): fleet 范围则省略;针对单个服务及其操作相关性则提供。
  • lookback_minutes (integer, optional): 当前窗口。默认值:60。
  • start_time_iso / end_time_iso (string, optional): 明确的当前窗口。
  • baseline_start_time_iso / baseline_end_time_iso (string, optional): 明确的基准线。默认值为紧接之前的等时长窗口。
  • datasource (string, optional): 将比较限制在单个 datasource。
  • env (string, optional): 默认值为 prod
  • max_services / max_operations (integer, optional): 默认 10,每项最大 10。

get_databases- env (string, optional): 按环境过滤。默认值:all。

  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)

get_database_slow_queries

  • db_system (string, optional): 例如 postgresql, mysql, mongodb, redis
  • host (string, optional): 数据库主机 (net_peer_name)。
  • service_name (string, optional): 调用服务名称。
  • env (string, optional)
  • min_duration_ms (float, optional): 最小查询耗时(单位:ms)。
  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)
  • limit (integer, optional): 默认值:20。

get_database_queries

  • db_system (string, optional)
  • host (string, optional)
  • service_name (string, optional)
  • env (string, optional)
  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)
  • limit (integer, optional): 默认值:20。

get_database_server_metrics

  • db_system (string, required): 例如 postgresql, mysql, mongodb, redis, aerospike
  • host (string, optional)
  • lookback_minutes (integer, optional): 默认值:60。
  • start_time_iso / end_time_iso (string, optional)

prometheus_range_query

  • query (string, required): PromQL 查询语句。
  • start_time_iso / end_time_iso (string, optional): 默认为最近 60 分钟。
  • lookback_minutes (float, optional): 默认值:60。

prometheus_instant_query- query (string, 必填)

  • time_iso (string, 可选):默认为当前时间。
  • lookback_minutes (float, 可选)

prometheus_label_values

  • match_query (string, 可选):PromQL 过滤器。
  • label (string, 必填):Label 名称。
  • start_time_iso / end_time_iso (string, 可选)

prometheus_labels

  • match_query (string, 可选):PromQL 过滤器。
  • start_time_iso / end_time_iso (string, 可选)

get_logs

  • logjson_query (array, 必填):JSON pipeline 查询。
  • lookback_minutes (integer, 可选):默认值:5。
  • start_time_iso / end_time_iso (string, 可选)
  • limit (integer, 可选):服务器默认值:5000。
  • index (string, 可选):physical_index:<name>rehydration_index:<block_name>

对于基于日志的服务清单,请先查询 physical_index_service_count

promql
sum by (name, service_name, env) (physical_index_service_count{destination="logs"})
service_name 作为 ServiceNameenv 作为环境(如果存在),name 作为物理索引名称。如果 name="default",则省略 index;如果用户选择了非默认的物理索引,则传递 index: "physical_index:<name>"。如果后端拒绝显式的物理索引过滤,请在不带 index 的情况下重试,并报告该后端不支持显式物理索引过滤。

get_service_logs

  • service_name (string, required)
  • lookback_minutes (integer, optional): 默认值: 60。
  • limit (integer, optional): 默认值: 20。
  • env (string, optional)
  • severity_filters (array, optional): 例如 ["error", "warn"]。采用 OR 逻辑。
  • body_filters (array, optional): 例如 ["timeout", "failed"]。采用 OR 逻辑。
  • start_time_iso / end_time_iso (string, optional)
  • index (string, optional)

多种过滤类型之间采用 AND 组合。每个数组内部采用 OR 逻辑。
请先使用 get_logs 进行广泛的聚合计数;仅在缩小范围至特定 service/env/index 且样本集较小时,才使用 get_service_logs

get_log_attributes

  • lookback_minutes (integer, optional): 默认值: 15。
  • start_time_iso / end_time_iso (string, optional)
  • region (string, optional)
  • index (string, optional)

get_log_attributes_for_pipeline- pipeline (array, required): 用于限定发现范围的前置过滤阶段,例如 [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]

  • lookback_minutes (integer, optional): 默认值:15。
  • start_time_iso / end_time_iso (string, optional)
  • region (string, optional)
  • index (string, optional)

get_drop_rules

无参数。通过 GET /otel_settings/drop?region=... 列出 drop rules。

add_drop_rule

  • name (string, required)
  • filters (array, required): 每个 filter 包含:keyvalueoperator (equals/not_equals)、conjunction (and)。
  • Filter keys 必须使用 attributes["key_name"]resource.attributes["key_name"](Last9 API 要求)。
  • 通过 POST /otel_settings/drop?region=...&cluster_id=... 创建规则。

get_traces

用于宽泛的搜索和聚合。如需精确查找 trace ID,请使用 get_service_traces

  • tracejson_query (array, required)
  • start_time_iso / end_time_iso (string, optional)
  • lookback_minutes (integer, optional): 默认值:60。
  • limit (integer, optional): 默认值:5000。

get_service_traces

trace_idservice_name 必须且只能提供其中一个。

  • trace_id (string, optional): 默认回溯时间:72 小时。
  • service_name (string, optional): 默认回溯时间:60 分钟。
  • lookback_minutes (integer, optional)
  • start_time_iso / end_time_iso (string, optional)
  • limit (integer, optional): 默认值:10。
  • env (string, optional)

get_trace_attributes- lookback_minutes (integer, optional): 默认值:15。

  • start_time_iso / end_time_iso (string, optional)
  • region (string, optional)

get_trace_attributes_for_pipeline

  • pipeline (array, required): 用于限定发现范围的前置过滤阶段,例如 [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]
  • lookback_minutes (integer, optional): 默认值:15。
  • start_time_iso / end_time_iso (string, optional)
  • region (string, optional)

get_trace_attribute_values

  • tag_name (string, required): 来自 get_trace_attributes 的属性名称(例如 resource_departmentattributes['http.method'])。
  • pipeline (array, optional): 用于限定值范围的前置过滤阶段;若获取全局值则省略。
  • region (string, optional)

get_trace_attribute_deviations- comparison_mode (string, 必填): latencyerrorstime

  • service_name (string, 必填)
  • environment (string, 必填): 准确的 deployment.environment 值。
  • operation (string, 可选)
  • filters (array, 可选): Trace JSON 过滤条件。
  • candidate_attributes (array, 可选): 最多 8 个;若为有界发现(bounded discovery)则省略。
  • latency_threshold_ms (number, 可选): latency 模式下必填;其他模式下将被拒绝。
  • start_time_iso / end_time_iso (string, 可选)
  • lookback_minutes (integer, 可选): 默认值:15。最大值:15。
  • baseline_start_time_iso / baseline_end_time_iso (string, 可选): time 模式下必填;需与目标窗口不重叠且时长相等。
  • minimum_cohort_size (integer, 可选): 默认值:100。最小值:20。
  • minimum_value_support (integer, 可选): 默认值:20。最小值:10。
  • limit (integer, 可选): 默认值:10。最大值:10。

需要启用配套的 backend 能力。

get_trace_waterfall

  • trace_id (string, 必填)
  • environment (string, 可选)
  • start_time_iso / end_time_iso (string, 可选)
  • lookback_minutes (integer, 可选): 默认值:4320 (72 小时)。
  • selected_span_id (string, 可选): 仅返回该 span 的 attributes、events 和 links。
  • max_spans (integer, 可选): 默认值:500。最大值:1000。

返回一个 investigation-evidence/v1 封包;waterfall 位于 data 字段下。

get_change_events- start_time_iso / end_time_iso (string, 可选)

  • lookback_minutes (integer, 可选): 默认值: 60。
  • service_name (string, 可选)
  • env (string, 可选)
  • event_name (string, 可选): 首次调用时请不传此参数以获取 available_event_names

get_alert_config

  • search_term (string, 可选): 对名称、组、数据源、标签进行全文搜索。
  • rule_name (string, 可选)
  • severity (string, 可选)
  • rule_type (string, 可选): staticanomaly
  • alert_group_name / alert_group_type / data_source_name (string, 可选)
  • tags (array, 可选): 必须全部匹配(AND 逻辑)。

get_alerts

  • time_iso (string, 可选): RFC3339 格式的评估时间。
  • window (integer, 可选): 回溯秒数。默认值: 900。范围: 60–86400。
  • lookback_minutes (integer, 可选): 范围: 1–1440。

get_alert_rule_state- start_time (integer, required): 时间范围的 Unix epoch 起始时间(包含)。

  • end_time (integer, required): 时间范围的 Unix epoch 结束时间(包含)。
  • step (integer, required): 样本之间的分辨率(秒)。样本数量 ((end_time - start_time) / step + 1) 上限为 100。
  • alert_group_id (string, optional): 按 alert group ID 过滤。
  • rule_name (string, optional): 对 rule name 的正则过滤。
  • alert_group_name (string, optional): 对 alert group name 的正则过滤。
  • label_filters (string, optional): 以逗号分隔的 key=value 标签过滤器。
  • state (string, optional): 按 state 过滤(例如 firing)。

返回一个 rule_id -> [{timestamp, is_firing}] 的 JSON 映射。如果在上游响应中缺失某个时间戳,则报告为 is_firing=0 —— 这意味着“未观察到处于 firing 状态”,而非确认的正常状态。

get_notification_channels

无参数。返回所有配置的通知渠道(Slack, PagerDuty, email, webhooks 等)。

did_you_mean

  • query (string, required): 要搜索的名称 —— 支持部分匹配、拼写错误或缩写。
  • type (string, optional): 限制实体类型:service, environment, host, database, k8s_deployment, k8s_namespace, job

返回最多 3 个最接近的匹配项及其相似度分数。在实体名称不确定时,请在调用任何工具前先使用此接口。如果之前的调用返回结果为空,请在重试前尝试此接口。

list_dashboards无参数。以 JSON 数组形式返回组织中所有自定义 dashboard 的 idname 和 metadata。

get_dashboard

  • id (string, required): Dashboard UUID。
  • region (string, optional): 用于 panel 查询填充的 region。默认为配置的数据源 region。

create_dashboard

  • dashboard (object, required): 包含 namepanels[] 的 dashboard 定义。每个 panel 需要 nameversionlayout (x, y, w, h)、visualization.typequeries[]
  • metadata (object, optional): Dashboard 元数据 —— _category_type 字段(例如 {"_category":"custom","_type":"metrics"})。

update_dashboard

  • id (string, required): 要更新的 Dashboard UUID。
  • dashboard (object, required): 完整的替换 dashboard 正文(结构与 create 相同)。
  • metadata (object, optional): 替换的元数据。只读的系统 dashboard 将返回 403 错误。

delete_dashboard

  • id (string, required): 要删除的 Dashboard UUID。只读的系统 dashboard 无法删除。

list_dashboard_snapshots

  • dashboard_id (string, required): 要列出快照的 Dashboard UUID。

仅返回元数据 (id, name, expires_at 等)。请使用 get_dashboard_snapshot 获取冻结的 panel 数据。

get_dashboard_snapshot

  • id (string, required): Snapshot UUID。

返回完整的冻结快照,包括 dashboard_definitionpanel_datatime_rangevariables

delete_dashboard_snapshot- id (string, required): 要删除的 Snapshot UUID。

</details>

---

Testing

有关集成测试的设置和说明,请参阅 TESTING.md

---

![MseeP.ai Security Assessment Badge](https://mseep.ai/app/last9-last9-mcp-server)

查看官方来源