Last9 MCP服务器
你的AI代理不知道生产中发生了什么故障。这解决了这个问题。
Last9 MCP服务器 将Claude、Cursor、Windsurf和任何其他支持MCP的AI助手直接连接到您的生产可观察性数据——日志、指标、跟踪、异常、数据库查询、警报和部署。代理停止猜测并开始读取实际信号。
______________________________________________________________________
30秒后开始(托管)
没有要安装的二进制文件。没有要管理的令牌。完成一个URL,即浏览器中的OAuth。
在Last9 URL中查找您的组织结构: app.last9.io//...
克劳德代码
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations//mcp类型 /mcp,选择last9,进行身份验证。就这样
光标
设置>MCP>添加新的MCP服务器:
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations//mcp"
}
}
}点击 连接,完成OAuth。
VS Code
需要v1.99+版本。打开命令选项板→ MCP:添加服务器,粘贴URL,进行身份验证。
或直接在 settings.json:
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations//mcp"
}
}
}
}帆板运动
设置>级联>打开MCP市场>齿轮图标(mcp_config.json):
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations//mcp"
}
}
}克劳德网络/桌面
设置>连接器>添加自定义连接器。 命名它 last9,粘贴URL,进行身份验证。
需要对您的Claude组织具有管理员权限。
______________________________________________________________________
自托管(STDIO)
当您的MCP客户端不支持HTTP传输,或者需要服务器在本地运行时,请使用此选项。
安装
自制:
brew install last9/tap/last9-mcpNPM:
npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest二进制版本 (Windows/手动):
下载自 :
| 平台 | 存档 |
|---|---|
| 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 |
获取刷新令牌
仅 管理员 可以创建令牌。
- 首选 API访问
- 点击 生成令牌 具有写入权限
- 复制它
客户端配置
自制:
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": ""
}
}
}
}NPM:
{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": ""
}
}
}
}粘贴位置:
| 客户 | 位置 |
|---|---|
| Claude Web/桌面 | 设置>开发人员>编辑配置(claude_desktop_config.json) |
| 光标 | 设置>光标设置>MCP>添加新的全局MCP服务器 |
| Windsurf | 设置>级联>MCP市场>装备图标(mcp_config.json) |
| VS代码 | 换行 { "mcp": { "servers": { ... } } } 在 settings.json — 详情 |
VS Code STDIO config
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": ""
}
}
}
}
}对于NPM:使用 "command": "npx" 并添加 "args": ["-y", "@last9/mcp-server@latest"].
Windows
从下载后 ,提取并指向完整路径:
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": ""
}
}
}
}NPM路由在Windows上更容易——没有路径管理。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
LAST9_REFRESH_TOKEN | *(必填)* | 刷新令牌 API访问 |
LAST9_DATASOURCE | org default | 数据源/集群名称——当您有多个Levitate集群时很有用 |
LAST9_API_HOST | app.last9.io | 覆盖API主机 |
LAST9_MAX_GET_LOGS_ENTRIES | 5000 | 分块游戏的最大参赛人数 get_logs 请求: |
LAST9_DEBUG_CHUNKING | false | 设置 true 记录以下内容的块规划详细信息 get_logs, get_service_logs, get_traces |
LAST9_DISABLE_TELEMETRY | true | 设置 false 启用内部OTel跟踪 |
OTEL_SDK_DISABLED | -- | 标准OTel环境变量覆盖 LAST9_DISABLE_TELEMETRY |
OTEL_EXPORTER_OTLP_ENDPOINT | -- | OTLP收集器端点(仅当启用遥测时) |
OTEL_EXPORTER_OTLP_HEADERS | -- | OTLP身份验证标头(仅当启用遥测时) |
______________________________________________________________________
它能做什么
服务健康
get_service_summary--所有服务的吞吐量、错误率、p95响应时间get_service_environments--为您的服务提供的可用环境。首先运行此程序——其他APM工具需要env从这里get_service_performance_details--完整细分:吞吐量、错误率、p50/p90/p95/avg/max、apdex、可用性get_service_operations_summary--按HTTP端点、DB调用、消息传递、HTTP客户端分组的操作get_service_dependency_graph--上游/下游/基础设施的吞吐量、延迟和错误率的依赖关系图get_exceptions--带有服务和跨度过滤器的服务器端异常
数据库可观察性
四种直接影响数据库性能的工具,源自OpenTetry跟踪跨度。如果您已经在使用OTel,则不需要额外的仪器。
get_databases--发现基础架构中的所有数据库:数据库类型、主机、吞吐量(查询/分钟)、p95延迟、错误率、依赖服务数量get_database_slow_queries--实际最慢的查询执行,按持续时间排序,带有用于钻取完整跟踪的跟踪IDget_database_queries--查询模式和聚合:查询运行的频率、平均/p95持续时间、错误率get_database_server_metrics--数据库主机本身的服务器端指标(CPU、连接、缓冲区命中率——取决于您的数据库系统)
支持PostgreSQL、MySQL、MongoDB、Redis、Aerospike和任何其他OTel跟踪 db_system 属性。
普罗米修斯/PromQL
prometheus_range_query--PromQL范围查询任何指标prometheus_instant_query--即时查询;使用汇总函数,如avg_over_time,sum_over_timeprometheus_label_values--给定系列的标签值prometheus_labels--一个系列的所有标签
通过设置,将这些数据指向与默认数据源/集群不同的数据源/群集 LAST9_DATASOURCE.
日志
get_logs--完整的JSON管道日志查询(聚合、过滤器、字段提取)get_service_logs--服务的原始日志行,可按严重性和正文内容进行筛选get_log_attributes--时间窗口日志架构中的可用属性get_drop_rules--日志删除规则来自 Last9控制平面add_drop_rule--创建新的删除规则以在源位置删除日志卷
痕迹
get_traces--用于广泛搜索和聚合的JSON管道跟踪查询get_service_traces--通过精确的跟踪ID或服务名称进行跟踪。当你有跟踪ID时使用它——它更快get_trace_attributes--跟踪架构中的可用属性
更改事件和警报
get_change_events--部署、配置更改、回滚。将事件与变化联系起来get_alert_config--警报规则配置——可按名称、严重性、类型、标签进行搜索get_alerts--当前在时间窗口内发出警报get_notification_channels--已配置的通知渠道(Slack、PagerDuty、电子邮件等)
模糊名称解析
did_you_mean--当代理不确定实体名称时,它会返回目录中最接近的匹配项(服务、环境、主机、数据库、K8s部署/命名空间、作业)。最多3条具有相似性评分的建议。当名称查找返回空时,服务器会在大多数工具之前自动调用此函数。
______________________________________________________________________
运作原理
每个回复都有深层次的链接。 每个工具返回一个 deep_link 字段——Last9仪表板中用于该确切查询和时间范围的直接URL。代理人可以给你链接;你点击它;你在那里。
实时属性缓存。 在启动时,服务器从数据中获取实际的日志和跟踪属性名称,并将其嵌入到工具描述中。这意味着AI助手知道你的模式中存在哪些字段,而不仅仅是一个通用列表。缓存每2小时刷新一次。
大块的结果。 get_logs 和 get_traces 通过分块而不是截断来处理大型结果集。日志的默认限制为5000条;可通过以下方式配置 LAST9_MAX_GET_LOGS_ENTRIES.
______________________________________________________________________
发展
HTTP mode, curl testing, building from source
在HTTP模式下运行
export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server服务器启动时间 http://localhost:8080/mcp.
卷曲测试
MCP Streamable HTTP需要先进行初始化握手。不要设置 Mcp-Session-Id 根据第一个请求。
# Step 1: Initialize
SESSION_ID=$(curl -si -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "curl-test", "version": "1.0"}
}
}' | grep -i "^Mcp-Session-Id:" | awk '{print $2}' | tr -d '\r')
echo "Session: $SESSION_ID"
# Step 2: Send initialized notification
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}'
# Step 3: List tools
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}'
# Step 4: Call a tool
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_service_logs",
"arguments": {
"service": "your-service-name",
"lookback_minutes": 30,
"limit": 10
}
}
}'从源代码构建
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-serverLAST9_HTTP=true 是为了地方发展。对于实际使用 托管HTTP端点 更容易。
______________________________________________________________________
工具参考
All parameters, time input standards, and details
时间输入
- 绝对时间(
start_time_iso/end_time_iso,或time_iso)优先于lookback_minutes. - 对于相对窗口:使用
lookback_minutes. - 对于绝对窗口:使用RFC3339/ISO8601--
2026-02-09T15:04:05Z. - 遗产
YYYY-MM-DD HH:MM:SS仅出于兼容性考虑而接受。
get_exceptions
limit(整数,可选):最大异常数。默认值:20。lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选):绝对时间范围。service_name(字符串,可选):按服务筛选。span_name(字符串,可选):按span名称筛选。deployment_environment(字符串,可选):按环境筛选。
get_service_summary
start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod.
get_service_environment
start_time_iso/end_time_iso(字符串,可选)
所有其他APM工具都需要env价值。使用""如果返回为空。
get_service_performance_details
service_name(字符串,必填)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod.
get_service_operations_summary
service_name(字符串,必填)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod.
get_service_dependence_graph
service_name(字符串,可选)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod.
get_tabases
env(字符串,可选):按环境筛选。默认值:全部。lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)
get_database_slow_查询
db_system(字符串,可选):例如。postgresql,mysql,mongodb,redis.host(字符串,可选):数据库主机(net_peer_name).service_name(字符串,可选):调用服务名称。env(字符串,可选)min_duration_ms(float,可选):最小查询持续时间(毫秒)。lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):默认值:20。
get_database_查询
db_system(字符串,可选)host(字符串,可选)service_name(字符串,可选)env(字符串,可选)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):默认值:20。
get_database_server_metrics
db_system(字符串,必填):例如。postgresql,mysql,mongodb,redis,aerospike.host(字符串,可选)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)
prometheus_range_query
query(string,必填):PromQL查询。start_time_iso/end_time_iso(字符串,可选):默认为最后60分钟。lookback_minutes(浮点数,可选):默认值:60。
prometheus_instant_query
query(字符串,必填)time_iso(string,可选):默认为现在。lookback_minutes(浮动,可选)
普罗米修斯标签值
match_query(字符串,可选):PromQL筛选器。label(字符串,必填):标签名称。start_time_iso/end_time_iso(字符串,可选)
普罗米修斯标签
match_query(字符串,可选):PromQL筛选器。start_time_iso/end_time_iso(字符串,可选)
get_logs
logjson_query(数组,必填):JSON管道查询。lookback_minutes(整数,可选):默认值:5。start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):服务器默认值:5000。index(字符串,可选):physical_index:或rehydration_index:.
get_service_logs
service(字符串,必填)lookback_minutes(整数,可选):默认值:60。limit(整数,可选):默认值:20。env(字符串,可选)severity_filters(数组,可选):例如。["error", "warn"].OR逻辑。body_filters(数组,可选):例如。["timeout", "failed"].OR逻辑。start_time_iso/end_time_iso(字符串,可选)index(字符串,可选)
多种过滤器类型与AND结合使用。每个数组内部都使用OR。
get_log_属性
lookback_minutes(整数,可选):默认值:15。start_time_iso/end_time_iso(字符串,可选)region(字符串,可选)index(字符串,可选)
get_drop_rules
没有参数。
add_drop_rule
name(字符串,必填)filters(数组,必填):每个过滤器:key,value,operator(equals/not_equals),conjunction(and).
get_traces
用于广泛搜索和聚合。要进行精确的跟踪ID查找,请使用 get_service_traces.
tracejson_query(数组,必填)start_time_iso/end_time_iso(字符串,可选)lookback_minutes(整数,可选):默认值:60。limit(整数,可选):默认值:5000。
get_service_traces
正是其中之一 trace_id 或 service_name 是必需的。
trace_id(字符串,可选):默认回溯时间:72小时。service_name(字符串,可选):默认回溯时间:60分钟。lookback_minutes(整数,可选)start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):默认值:10。env(字符串,可选)
get_trace_attributes
lookback_minutes(整数,可选):默认值:15。start_time_iso/end_time_iso(字符串,可选)region(字符串,可选)
get_change_events
start_time_iso/end_time_iso(字符串,可选)lookback_minutes(整数,可选):默认值:60。service(字符串,可选)environment(字符串,可选)event_name(string,可选):不首先调用此命令即可获取available_event_names.
get_alert_config
search_term(字符串,可选):跨名称、组、数据源、标签进行自由文本搜索。rule_name(字符串,可选)severity(字符串,可选)rule_type(字符串,可选):static或anomaly.alert_group_name/alert_group_type/data_source_name(字符串,可选)tags(数组,可选):所有必须匹配(AND逻辑)。
获取警报
time_iso(字符串,可选):RFC3339中的评估时间。window(整数,可选):以秒为单位进行回溯。默认值:900。范围:60-86400。lookback_minutes(整数,可选):范围:1–1440。
get_notification_channels
没有参数。返回所有已配置的通知通道(Slack、PagerDuty、电子邮件、webhooks等)。
你知道吗
query(string,必填):要搜索的名称--部分、拼写错误或缩写。type(字符串,可选):仅限于实体类型:service,environment,host,database,k8s_deployment,k8s_namespace,job.
最多返回3个具有相似性得分的最接近匹配。在实体名称不确定的任何工具调用之前使用此选项。如果之前的调用返回了空结果,请在重试之前尝试此操作。
______________________________________________________________________
测试
看 测试.md 用于集成测试设置和说明。
______________________________________________________________________
](https://mseep.ai/app/last9-last9-mcp-server)

