在终端中输入一个自然语言问题,官方的 Elastic GitHub Copilot CLI 插件会检查你的索引 schema,生成相应的 Elasticsearch 查询语言 (ES|QL) 查询,并运行它,最终以格式化表格的形式返回结果。无需 Kibana,也无需手动编写查询语法。一个命令即可搞定!该插件现已在 Awesome GitHub Copilot marketplace 上线。
Elastic 已将我们的技能和插件源代码发布到官方的 elastic/agent-skills 仓库中。
GitHub Copilot CLI 是一个 AI 代理,它将 Copilot 的模型直接带到你的终端。它帮助开发者在本地开发环境中生成代码、编辑文件和运行 shell 命令。当与 Elastic 插件结合使用时,它允许开发者直接从 shell 使用自然语言查询 Elasticsearch 数据。
你可以使用你偏好的包管理器安装它。例如,通过 npm:
npm install -g @github/copilot(如果你偏爱 Homebrew,可以运行 brew install copilot-cli。Windows 用户可以使用 winget install GitHub.Copilot)。
安装后,运行以下命令验证你的 Copilot 会话:
copilot然后输入 /login,并按照浏览器中的提示操作。
成功登录后,输入 /quit 返回 shell。
Elastic 插件已发布在 Awesome GitHub Copilot marketplace,这是 GitHub 社区精选的 Copilot CLI 代理、技能和配置集合。该市场默认已在 Copilot CLI 中注册。安装只需一个命令。
copilot plugin install elasticsearch@awesome-copilot要验证它是否正确安装,请键入 copilot plugin list。你应该会看到 elasticsearch@awesome-copilot 处于活动状态并可供使用。
该插件通过三个环境变量连接到 Elasticsearch:ELASTICSEARCH_URL、ELASTICSEARCH_API_KEY 和 ELASTIC_MCP_URL。如果你想使用 Model Context Protocol (MCP) 服务器集成,你需要 Elasticsearch 9.2+ 或 Elastic Cloud Serverless。
1. 激活集群: 你可以在 Elastic Cloud 上开始免费试用,或者使用 start-local 脚本 在本地运行(curl -fsSL https://elastic.co/start-local | sh)。
2. 获取你的 ELASTICSEARCH_URL: 该值可以在 Kibana 主页的右上角找到,并且会以 “.es.region.elastic.cloud:443” 结尾。

3. 获取你的 ELASTICSEARCH_API_KEY: 在 Kibana 中,前往 Stack Management > Security > API Keys,或者在右上角的搜索框中输入“API Keys”,然后创建一个 API 密钥。为你的 API 密钥命名,并保留默认设置。复制编码后的密钥。完成此操作后,你可以返回并删除此密钥,以免留下一个已过期但具有完整权限的密钥。


4. 获取你的 ELASTIC_MCP_URL: 前往 Agents > View all tools > Manage MCP,并复制你的 MCP 服务器 URL。
在你的项目目录中创建一个 .env 文件,以便插件可以在不需要全局 shell 配置的情况下进行身份验证。
ELASTICSEARCH_URL="your-elasticsearch-url"
ELASTICSEARCH_API_KEY="your-encoded-api-key"
ELASTIC_MCP_URL="your-elasticsearch-mcp-url"与在 ~/.bashrc 或 ~/.zshrc 中导出变量相比,这种方法更受推荐,特别是当你需要在多个集群或环境之间切换时。
使用以下 shell 命令加载 .env 文件:
set -a && source .env && set +a为了测试此功能,我们建议安装 Kibana 中提供的 ecommerce 订单数据集。它包含一个名为 kibana_sample_data_ecommerce 的索引,其中包含 4,675 个订单,以及产品类别、定价和地理信息。
要安装示例数据,请在 Kibana 中打开 Integrations 页面(从顶部搜索栏搜索“Integration”)并安装“Sample Data”。更多详细信息,请参阅此处的文档:https://www.elastic.co/docs/explore-analyze/#gs-get-data-into-kibana。
@elasticsearch 代理安装后,Copilot 会通过自定义的 @elasticsearch 代理为你处理工具路由。你可以询问有关集群的问题,它将自动调用 Elasticsearch MCP 工具。
让我们进行一次快速的发现检查。我们建议传递 --allow-tool 'shell' 标志,以确保 Copilot 拥有执行底层后台查询的权限:
copilot -p "@elasticsearch Can you list my available Elasticsearch indices?" --allow-tool 'shell'Copilot 将连接到你的集群,获取索引数据,并在终端中返回一个整洁的表格:
Here are your available Elasticsearch indices:
| Index Name | Health | Status |
| :--- | :--- | :--- |
| kibana_sample_data_ecommerce | green | open |
| system-logs-2026 | green | open |Elastic GitHub Copilot CLI 插件围绕 ES|QL 构建,这是 Elastic 用于数据探索的管道查询语言。你无需手动查找语法或切换到 Kibana,就可以向 Copilot 提出关于数据的自然语言问题。
尝试运行此提示:
copilot -p "@elasticsearch Use ES|QL to find the top 5 product categories by total sales revenue in the kibana_sample_data_ecommerce index. Show me the results in a table." --allow-tool 'shell'在幕后,代理会尝试几种不同的执行方式。首先,它会尝试 Node.js 命令并失败,然后它会检查你的集群是否在本地机器上运行(https://localhost:9200)并失败。然后它会检查你的环境变量并成功。
kibana_sample_data_ecommerce 的映射。FROM kibana_sample_data_ecommerce
| STATS total_revenue = SUM(taxful_total_price) BY category.keyword
| SORT total_revenue DESC
| LIMIT 5Here are the top 5 product categories by total sales revenue:
| Rank | Category | Total Revenue |
|---|---|---|
| 1 | Men's Clothing | 149,393.91 |
| 2 | Women's Clothing | 135,099.91 |
| 3 | Women's Shoes | 105,479.17 |
| 4 | Men's Shoes | 91,797.92 |
| 5 | Women's Accessories | 60,830.31 |Schema 发现、查询生成和执行都在后台进行。你只需获得结果。
将 Model Context Protocol 直接集成到 GitHub Copilot CLI 中,允许开发者使用自然语言与 Elasticsearch 数据进行交互。无论你是在调试应用程序日志中的生产问题,还是在分析电商收入,你现在都可以即时获得答案。
如何在不切换到 Kibana 的情况下从终端查询 Elasticsearch?
安装 Elastic GitHub Copilot CLI 插件。设置完成后,用简单的英语向 @elasticsearch 代理提问,它会生成并运行针对你的集群的 ES|QL 查询,并将结果以格式化表格的形式返回到你的终端。
我可以使用自然语言生成 ES|QL 查询吗?
是的。Elastic GitHub Copilot CLI 插件使用 Elasticsearch 的 MCP 服务器来检查你的索引 schema,并将自然语言问题自动转换为有效的 ES|QL 查询。你无需了解 ES|QL 语法即可获得结果。
MCP 集成需要哪个版本的 Elasticsearch?
MCP 服务器集成需要 Elasticsearch 9.2 或更高版本,或者 Elastic Cloud Serverless 部署。早期版本不支持基于 MCP 的查询工作流程。
Elastic GitHub Copilot CLI 插件是开源的吗?
是的。该插件发布在 github.com/elastic/agent-skills,可供安装、贡献或派生。它在本地运行,并通过环境变量连接到你的 Elasticsearch 集群。该插件也可以在 Awesome GitHub Copilot marketplace 中找到。
自然语言 ES|QL 查询生成有哪些限制?
查询的准确性取决于你的索引映射对数据的描述程度。模糊的字段名或复杂的跨索引查询可能需要手动优化 ES|QL。该插件最适合探索性查询和数据发现,而不是生产查询管道。
我需要付费的 GitHub Copilot 订阅才能使用此功能吗?
需要任何 Copilot 计划(免费版、专业版、商业版、企业版);免费版的高级请求数量有限。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。