当前位置: 首页 > article >正文

通过 Elastic MCP Server 将 Cursor 连接到生产日志

作者来自 Elastic Jeffrey Rengifo了解如何使用 Elastic Agent Builder MCP server 将 Cursor 连接到你的 Elastic APM 数据这样你就可以在不离开编辑器的情况下调试生产错误并基于真实使用数据做出 UI 决策。前置条件Elasticsearch 9.3或 Elastic Cloud ServerlessElasticsearch API KEY 和 Kibana URL一个已接入 Elastic APM 的应用用于前端交互的 RUM agent写入 traces-apm-以及用于后端错误的 APM agent写入 logs-apm.error-已安装 Cursor版本 2.6两个世界的问题应用日志和代码处于两个互不相通的世界。如果你想把日志洞察应用到代码中你必须先分析日志然后回到编辑器手动应用你的发现。Model Context Protocol MCP 改变了这一点。 MCP 是一个开放标准它允许 AI 客户端例如 Cursor 通过统一接口连接外部工具和数据源。你的 IDE 不再只能理解本地代码它还可以连接你的 Elasticsearch 集群、查询 APM 数据并将生产环境行为与源代码一起进行推理。Elastic 在 Agent Builder中提供了内置的 MCP server。你可以在 Kibana 中定义工具通过 MCP endpoint 暴露它们然后任何支持 MCP 的客户端都可以调用这些工具。Cursor 原生支持 MCP这意味着你可以在几分钟内完成配置。我们正在构建的内容我们使用一个已接入 Elastic APM 的电商搜索应用作为示例。RUM JS agent 会追踪浏览器中的筛选点击交互并存储在 traces-apm-default 中。Node.js APM agent 会捕获后端错误并存储在 logs-apm.error-default 中。在开发过程中会出现两个典型场景用例 1产品团队希望简化搜索页面。目前有 6 个筛选条件但我们不知道用户实际点击了哪些。我们需要使用数据来决定哪些可以保留。用例 2用户报告搜索接口出现间歇性 500 错误。这些错误不是持续发生的并且是从两天前开始出现的。我们需要错误详情来定位根本原因。为了将这些数据引入 Cursor我们将在 Kibana 中构建两个 Agent Builder 工具并通过 Elastic Agent Builder MCP Server 进行连接get_filter_usage查询 traces-apm-default 中的筛选点击事件并按 filter name 返回使用情况统计get_recent_errors查询 logs-apm.error-default 中最近的错误分组按 service包含异常信息和导致问题的 stack trace要更深入了解整体架构可以查看 Agent Builder 参考指南。设置 Elastic MCP Server步骤 1创建 Agent Builder 工具我们通过 Kibana Agent Builder API 创建这两个工具。每个工具本质上是一个 ES|QL 查询包含名称和描述Cursor 会根据这些信息判断何时调用它们。工具的完整实现可以在以下 notebook 中查看。工具 1get_filter_usage产品团队需要在决定删除哪些筛选条件之前了解用户实际点击了哪些筛选项。该查询会从 traces-apm-default 中读取 RUM 交互事件并按 filter name 进行分组{ id: get_filter_usage, type: esql, description: Returns the usage count for each search filter in the ecommerce-search-ui service, sorted by most used first., configuration: { query: FROM traces-apm-default | WHERE service.name \ecommerce-search-ui\ | WHERE transaction.type \user-interaction\ | WHERE labels.filter_name IS NOT NULL | STATS count COUNT(*) BY labels.filter_name | SORT count DESC } }工具 2get_recent_errors针对错误调试场景我们需要展示某个 service 中最近最常见的错误并指出它们在代码中的来源位置。 STATS ... BY 会按错误指纹grouping_key对错误进行分组提取异常信息以及导致错误的代码位置culprit并按出现频率进行排序{ id: get_recent_errors, type: esql, description: Returns the most frequent error groups for ecommerce-search-ui, ranked by occurrence count, with the exception message and code location., configuration: { query: FROM logs-apm.error-default | WHERE service.name \ecommerce-search-ui\ | WHERE processor.name \error\ | STATS count COUNT(*) BY error.grouping_key, error.exception.0.message, error.culprit | SORT count DESC | LIMIT 5 } }这两个工具都是通过 POST /api/agent_builder/tools 创建的。你可以在这里了解更多关于 Elastic Agent Builder 的 Kibana API 端点。步骤 2连接到 Cursor打开 ~/.cursor/mcp.json 并添加 Elastic server。更多细节可以参考 Cursor 文档。Agent Builder MCP endpoint 使用 Server-Sent Events SSE 传输因此我们通过 mcp-remote 进行连接——这是一个轻量级桥接工具由 Cursor 作为本地进程调用{ mcpServers: { elastic-agent-builder: { command: npx, args: [ -y, mcp-remote, https://YOUR_KIBANA_URL/api/agent_builder/mcp, --header, Authorization: ApiKey YOUR_API_KEY ] } } }将YOUR_KIBANA_URL和YOUR_API_KEY替换为你的实际值。重启 Cursor打开 Agent 面板并确认 get_filter_usage 和 get_recent_errors 已出现在可用工具列表中。用例 1数据驱动的 UI 优化电商搜索页面包含 6 个筛选条件category分类、manufacturer制造商、price range价格范围、customer gender用户性别、day of week星期几、region地区。产品团队希望通过移除使用率较低的筛选项来简化 UI但他们不想靠猜测而是直接让 Cursor 来分析。当你在 Cursor 的 Agent 面板中输入提示时模型可以看到所有已连接 MCP 工具的名称和描述并据此自动匹配最合适的工具并调用。这也是为什么我们在步骤 1 中设置的 description 字段非常重要——模型正是通过它来判断应该使用哪个工具来回答你的问题。如果你想了解更多关于 Cursor 的 MCP 工具管理可以阅读相关文档。打开 Cursor 聊天并提问“Show me how often each search filter is used.” Cursor 会调用工具并返回类似如下结果category 和 manufacturer 筛选项获得最多点击。使用率最低的三个筛选项 customer_gender、 day_of_week、 region 几乎很少被使用。让 Cursor 基于这些数据执行操作“Based on this data, simplify the SearchFilters component. Keep the top 3 filters visible, collapse the others under a More filters toggle./根据这些数据简化 SearchFilters 组件。保留使用率最高的 3 个筛选项将其他筛选项折叠到一个 ‘More filters’更多筛选开关中。”Cursor 会打开 src/components/SearchFilters.jsx读取当前实现并提出修改建议。修改前修改后整个流程只用了一个聊天提示。这个决策是基于生产数据而不是团队对 “用户可能在意什么” 的主观讨论。用例 2生产错误调试收到一个 bug 报告search endpoint 出现间歇性 500 错误。这些错误从两天前开始出现但并不是持续发生。开发者打开 Cursor 并提问“Show me what errors ecommerce-search-ui is throwing.”Cursor 调用工具并返回错误分组错误信息很明确category 是一个 text 字段不能用于 terms 聚合。正确的字段应该是 category.keyword。当 APM 数据与代码一起可用时调试过程就变成了一种“对话”你描述现象agent 拉取相关日志然后你们在同一个上下文中一起分析问题。你可以继续追问、检查错误是否与最近一次部署相关或者查看哪些 endpoint 受影响最严重而所有这些都发生在你最终会进行修复的同一环境中。如果你想更进一步Elastic 也在 Agent Builder 中提供了预置的可观测性工具可以和这里自定义的工具一起使用。关于 AI 驱动可观测性的补充方案可以参考如何使用 OpenLIT 和 Elastic 监控 web AI agents。结论我们涵盖了如何在 Kibana 中创建 Agent Builder 工具来封装 APM 数据查询如何通过三行 JSON 将 Elastic Agent Builder MCP Server 连接到 Cursor如何使用生产环境遥测数据做出基于真实使用情况的 UI 决策如何在修复问题的同一窗口中调试生产错误这两个用例只是起点。同样的模式适用于你在 Elasticsearch 中的任何数据性能指标、A/B 测试结果、审计日志、功能开关使用情况、用户会话数据。定义 Agent Builder 工具通过 MCP 连接它就会成为 Cursor 中开发上下文的一部分。更多示例可以参考使用 MCP 自动化合成监控以及基于 agent 的 CI/CD 部署门禁。后续步骤Elastic Agent Builder MCP server 文档Model Context Protocol 规范Elastic Agent Builder 概览原文https://www.elastic.co/observability-labs/blog/elastic-mcp-server-cursor-production-logs

相关文章:

通过 Elastic MCP Server 将 Cursor 连接到生产日志

作者:来自 Elastic Jeffrey Rengifo 了解如何使用 Elastic Agent Builder MCP server 将 Cursor 连接到你的 Elastic APM 数据,这样你就可以在不离开编辑器的情况下调试生产错误,并基于真实使用数据做出 UI 决策。 前置条件 Elasticsearch 9…...

DX-BT04-A蓝牙模块连接不上?可能是AT指令这几个坑你没注意

DX-BT04-A蓝牙模块连接故障排查指南:AT指令的七个致命陷阱 蓝牙模块在物联网设备开发中扮演着关键角色,而DX-BT04-A以其稳定性和易用性成为众多开发者的首选。但当你满怀信心地发送AT指令时,模块却沉默不语——这种挫败感我深有体会。去年在…...

在 Elastic 中使用 MCP 自动化用户旅程以进行合成监控

作者:来自 Elastic Jessica Garson 本文探讨如何使用 Elastic Observability、TypeScript 和 FastMCP 自动创建合成监控中的用户旅程(journeys),并演示该应用及其工作流程。 Elastic Observability 中的 Synthetic Monitoring 允许…...

别再只盯着算法了!手把手教你用ROS和Gazebo搭建第一个激光SLAM仿真环境(Ubuntu 20.04)

激光SLAM实战:从仿真环境搭建到算法验证全流程指南 在机器人导航领域,激光SLAM技术已经从实验室走向工业应用,成为自动驾驶、服务机器人等场景的核心组件。但许多初学者常陷入一个误区——过度关注算法理论而忽视工程实践。本文将打破这一惯性…...

Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%

作者:来自 Elastic Sri Kolagani 了解如何使用 elastic-caveman,在保留 Elastic 代理能力优势的同时减少 AI 响应的 token 消耗。 Agent Builder 现已正式发布。通过 Elastic Cloud Trial 开始使用,并查看这里的 Agent Builder 文档。 当通过…...

Navicat无限试用完整解决方案:三步彻底解决macOS版14天限制

Navicat无限试用完整解决方案:三步彻底解决macOS版14天限制 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还在为…...

Windows热键冲突终极指南:3分钟精准定位占用程序的免费工具

Windows热键冲突终极指南:3分钟精准定位占用程序的免费工具 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是…...

终极指南:如何免费解锁WeMod高级功能?Wand-Enhancer为你提供完整解决方案

终极指南:如何免费解锁WeMod高级功能?Wand-Enhancer为你提供完整解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否…...

5分钟掌握:终极免费图像转字节数组工具让OLED开发如此简单

5分钟掌握:终极免费图像转字节数组工具让OLED开发如此简单 【免费下载链接】image2cpp 项目地址: https://gitcode.com/gh_mirrors/im/image2cpp image2cpp图像转换工具是一个专为嵌入式开发者设计的强大在线工具,能够将普通图像快速转换为适用于…...

不只是MC和L4D2:用Python RCON库,我还能管理这些Steam游戏服务器

用Python RCON库解锁多款Steam游戏服务器的管理潜能 当你在《Rust》中需要紧急重启服务器,或想在《7 Days to Die》里实时调整僵尸数量时,是否厌倦了反复登录服务器控制面板?Python的RCON库能让你用代码直接与游戏服务器对话。这不仅仅是《我…...

ParroT框架实战:用指令与反馈数据驯化开源大模型,打造可控翻译助手

1. 项目概述:用“提示”与“反馈”驯化大语言模型,打造专属翻译助手 在机器翻译领域,我们正处在一个激动人心的十字路口。以ChatGPT、GPT-4为代表的大语言模型(LLMs)展现出了令人惊叹的对话和翻译能力,但它…...

DRIFT技术:动态微调提升多模态大模型推理性能

1. 项目概述 DRIFT(Dynamic Refinement through Injected Fine-Tuning)是一种针对多模态大模型的轻量级优化技术,通过在推理阶段动态注入梯度信号,显著提升模型在复杂任务中的表现。这项技术特别适合处理需要跨模态对齐的视觉-语言…...

阿里推AI生成视频模型Happy Horse,算力消耗与商业价值不匹配,打法或需调整

01 跑分第一名月月有,不必过于上心欲拒还迎的阿里把AI生成视频模型Happy Horse正式推上了台面。Happy Horse 1.0开启灰度测试,专业创作者和企业客户走阿里云百炼,大众用户在千问首页就能用上新加的胶囊入口。刊例价720P每秒0.9元、1080P每秒1…...

3分钟极速安装:Windows下iPhone USB网络共享驱动一键解决方案

3分钟极速安装:Windows下iPhone USB网络共享驱动一键解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com…...

如何彻底解决Dell G15散热问题:tcc-g15开源控制中心完整指南

如何彻底解决Dell G15散热问题:tcc-g15开源控制中心完整指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 想象一下,你正在用Dell G1…...

专业窗口调整工具:重新掌控你的Windows桌面布局

专业窗口调整工具:重新掌控你的Windows桌面布局 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer WindowResizer是一款基于C和MFC开发的免费开源工具,专门用于…...

解放STM32的串口潜力:Arduino环境下玩转多串口通信(Serial1/2/3实例化与数据收发实战)

解放STM32的串口潜力:Arduino环境下玩转多串口通信 当你第一次接触STM32时,可能会被它丰富的硬件资源所震撼——尤其是那些看似普通却功能强大的串口。不同于常见的Arduino Uno只有一个硬件串口,STM32系列单片机通常配备2-10个不等的硬件串口…...

3大核心优化,让你的魔兽争霸III在现代电脑上重获新生

3大核心优化,让你的魔兽争霸III在现代电脑上重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在现代电脑上的兼容…...

别再傻等画面了!海康/大华摄像头RTSP延迟高?试试这3个立竿见影的配置优化

海康/大华摄像头RTSP延迟优化实战指南 监控画面延迟3秒,关键事件发生时你还在看历史影像?这个问题困扰着无数安防工程师。上周某大型商超的防损案例就很典型——当值班人员通过监控发现货架商品被盗时,嫌疑人早已离开现场,3秒的延…...

精密低电流与高阻测量技术解析与应用

1. 精密低电流测量技术解析 在半导体材料特性分析、纳米器件测试以及光电探测器评估等前沿领域,皮安级甚至飞安级电流的精确测量已成为关键技术瓶颈。这类测量面临的核心挑战在于:待测信号极其微弱,而环境干扰和系统噪声往往比有用信号高出数…...

Swoole长连接承载LLM请求的5层熔断设计:连接层、协议层、推理层、缓存层、降级层——2024金融级容灾白皮书首次公开

更多请点击: https://intelliparadigm.com 第一章:Swoole长连接承载LLM请求的5层熔断设计全景概览 在高并发LLM服务场景中,Swoole协程长连接作为请求入口,需应对模型推理延迟突增、GPU显存溢出、网络抖动、客户端异常重连及上游限…...

遥感新手别踩坑:哥白尼Dataspace下载Sentinel-1数据时,关于‘单文件下载’和‘离线申请’的几点真相

遥感数据获取实战:避开Copernicus Dataspace的五个典型操作陷阱 当你第一次登录Copernicus Dataspace平台,面对琳琅满目的功能按钮时,是否感到无从下手?作为欧洲航天局最新的遥感数据门户,这个平台确实藏着不少新手容易…...

OpenClaw从入门到应用——Agent:订阅认证(OAuth)

通过OpenClaw实现副业收入:《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》 OpenClaw 通过 OAuth 支持"订阅认证",适用于提供此功能的提供商(特别是 OpenAI Codex (ChatGPT OAuth))。对于 Anthro…...

STM32H743飞控DIY:手把手教你搞定BMI088的SPI引脚配置与PX4驱动移植(避坑指南)

STM32H743飞控DIY:手把手教你搞定BMI088的SPI引脚配置与PX4驱动移植(避坑指南) 在DIY飞控板的开发过程中,传感器接口的正确配置往往是决定项目成败的关键环节。特别是当使用STM32H743这类高性能MCU搭配BMI088这样的高精度IMU时&a…...

QT6升级后,用qmake管理QML资源文件踩坑记:从.pro文件到.qrc的转变

QT6升级后qmake资源管理实战:从.qrc陷阱到高效配置指南 当我把一个运行多年的QT5 QML项目升级到QT6时,本以为只是简单的版本号变更,直到新建的QML页面反复报错"QQmlApplicationEngine failed to load component"——这个看似简单的…...

SSV6155/6255 WiFi模块调试日记:手把手解决‘驱动装了但搜不到网’的问题

SSV6x5x WiFi模块深度排障指南:从硬件信号到软件配置的完整解决方案 当你在Linux环境下成功加载了SSV6155/6255 WiFi模块驱动,dmesg显示一切正常,但执行ifconfig wlan0 up后却搜不到任何网络——这种看似简单的问题背后往往隐藏着硬件、驱动、…...

如何在Windows上免装iTunes快速安装苹果设备驱动:3分钟搞定iPhone连接问题

如何在Windows上免装iTunes快速安装苹果设备驱动:3分钟搞定iPhone连接问题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https:/…...

Verilog有符号数比较的坑,我踩了!用Verdi波形带你复盘(附完整代码)

Verilog有符号数比较的坑,我踩了!用Verdi波形带你复盘(附完整代码) 数字电路设计中,有符号数的处理一直是工程师们容易踩坑的重灾区。最近我在一个FPGA项目中就遇到了这样的问题:仿真结果与预期完全不符&am…...

3步掌握全平台智能资源下载器:轻松捕获视频号、抖音、小红书等多媒体资源

3步掌握全平台智能资源下载器:轻松捕获视频号、抖音、小红书等多媒体资源 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-download…...

移动设备AI控制代理:强化学习实现跨应用自动化

1. 项目背景与核心目标 DigiData项目旨在构建一个能够通用化处理移动设备控制任务的AI代理系统。这个系统不同于传统的单一功能自动化工具,它需要具备跨应用、跨场景的自主决策能力,能够像人类用户一样灵活操作各类移动终端设备。 在移动互联网高度普及…...