如何将网络搜索添加到 GitHub Copilot CLI:无抓取 MCP 集成指南
Advanced Bot Mitigation Engineer
关键要点:
- 一个配置文件将实时网页访问与Copilot CLI连接。 只需将一个
scrapeless块放入~/.copilot/mcp-config.json,您的终端代理将获得Google SERP抓取程序、趋势抓取程序、HTML/Markdown/屏幕截图页助手和完整的云浏览器自动化功能——无需SDK代码,无需额外运行的服务。 - 代理通过简单提示搜索、呈现和操作浏览器。 使用自然语言请求它搜索Google、呈现一个JavaScript重的页面或点击多步骤流程,它会逐步组合正确的工具调用,而不是仅限于本地文件和训练截止知识。
- 住宅代理和反检测在云端处理。 每个请求通过Scrapeless反检测云浏览器进行路由,采用195多个国家的住宅代理,因此代理在商业网站上获得可用的响应,而无需在您的机器上设置任何代理或指纹。
- 它与Copilot的编码工具在同一会话中运行。 Scrapeless工具与Copilot CLI的文件编辑、终端命令和代码生成并排放置,因此单个代理调用可以抓取实时网页,并将结果直接写入您正在构建的代码中。
- 在SERP、无状态抓取和浏览器自动化中总共有21个工具。 Scrapeless MCP服务器暴露
google_search、google_trends、scrape_html/scrape_markdown/scrape_screenshot,以及16个browser_*自动化工具——每次调用时代理的计划者将从一个命名空间中提取工具。 - 可通过HTTP流传输支持托管设置。 通过
npx的标准输入是工作站的默认选项;对于远程开发容器或CI运行器,您可以将相同的配置指向可流式传输的HTTP端点。 - 免费开始。 新的Scrapeless账户包括免费的抓取浏览器运行时——请在 Scrapeless 注册。
介绍:您的终端代理,现在可以实时访问网页
GitHub Copilot CLI于2026年2月25日正式发布,作为终端本地的编码代理,默认为Claude Sonnet 4.5。它读取您的代码库,编辑文件,运行命令,并在其面前对项目进行推理——所有这些都不离开终端。它无法开箱即用地查看实时网页。它的知识截止于训练截止时,以及磁盘上的文件。
当任务需要当前的公共数据时,这个差距就会显现。代理无法拉取实时SERP,读取竞争对手的定价页面,检查最新的变更日志,或呈现仅由JavaScript构建的应用程序——因此答案变得过时,任何时间敏感的信息都变成了从浏览器进行手动复制粘贴,代理在截止后的任何发布内容上都是盲目的。
这篇文章通过将Scrapeless MCP服务器连接到GitHub Copilot CLI,填补了这个空白。一个配置块为代理提供了Google搜索、JavaScript渲染和完整的云浏览器,所有功能都可以通过它已经接受的自然语言提示进行访问。有关通过其他MCP客户端获得相同Scrapeless功能的信息,请查看 谷歌反重力指南 和 MCP服务器指南。
您可以用它做什么
- 终端中的实时SERP研究。 请求代理运行
google_search查询,并将顶部结果以JSON格式返回,因此研究可以在终端中进行,而不是在单独的浏览器标签中。 - 竞争对手和定价快照。 将竞争对手的URL放入提示中,让代理呈现定价页面并提取计划名称、价格和功能,以便您将其放入代码旁边的结构化记录中。
- 喂入代码的文档和变更日志查询。 让代理获取库的最新文档或发布说明,以干净的Markdown格式写作,而不是依赖于对API的过时记忆。
- 市场和趋势检查。 使用
google_trends拉取目标区域的主题兴趣信号,然后用当前证据为功能文案、内容模板或实验想法提供创意。 - JS页面提取到类型记录中。 指向代理一个JavaScript渲染的页面;云浏览器为其提供数据,代理将结果解析为您正在编写的脚本的类型对象。
- 多步骤浏览器流程。 将
browser_goto、browser_click、browser_type和browser_scroll链接起来,因此代理可以实现分页导航、展开面板或在提取之前完成向导步骤。 - 截屏以供审查。 使用
scrape_screenshot或browser_screenshot捕获渲染页面作为图像,代理可以将其附加到对话中或保存在工作空间中。 - 搜索然后读取的管道。 将
google_search与scrape_markdown组合,让代理找到顶部结果,读取每一个,然后在单次终端调用中总结它们。
在Scrapeless,我们只访问公开可用的数据,同时严格遵守适用的法律、法规和网站隐私政策。本帖中的内容仅供演示使用。
为什么选择Scrapeless MCP服务器
Scrapeless MCP服务器是一个可定制的反检测桥梁,连接AI代理与实时网络。专为GitHub Copilot CLI设计,它提供:
- 一个具有JavaScript渲染的反检测云浏览器。 页面在完整的Scrapeless Scraping Browser中被加载,提取之前的操作,因此单页应用(SPAs)、无限滚动的动态列表和懒加载面板成为
browser_goto+browser_get_html的优先目标。 - 覆盖195个国家的住宅代理。 地理绑定的查询返回本地用户所见的列表,代理的出站流量完全由Scrapeless处理。
- 通过
npx执行一条标准输入输出命令,无需SDK代码。 服务器通过npx -y scrapeless-mcp-server作为子进程启动;您的项目中无需构建、托管或导入任何内容。 - 跨越SERP、无状态抓取和完整浏览器自动化的21个工具。
google_search和google_trends涵盖SERP数据,scrape_html/scrape_markdown/scrape_screenshot涵盖一次性页面抓取,16个browser_*工具覆盖有状态导航、点击、输入、滚动和截图。 - 为托管代理提供HTTP流式传输。 当Copilot CLI在远程容器或CI运行器中运行时,可以通过可流式传输的HTTP端点而不是标准输入输出访问相同的接口。
免费计划足以完成这一切并运行真实的提示;当您超出使用限制时,请在定价页面上比较配额。在app.scrapeless.com上获取免费计划的API密钥。
先决条件
- 工作站上安装Node.js 18或更新版本 — Copilot CLI是通过npm安装的,而标准输入输出MCP服务器是通过
npx生成的。 - 安装GitHub Copilot CLI并拥有有效的GitHub Copilot订阅。 CLI会根据您的GitHub帐户进行身份验证,代理循环会消耗Copilot配额;没有有效的订阅,模型步骤将无法运行。
- 一个Scrapeless帐户和API密钥 — 在Scrapeless的免费计划上注册,并从设置 → API密钥管理中复制密钥。
- 基本的终端熟悉度 — 整个设置只需几个命令加上一个小的JSON文件。
安装
该设置由五个子步骤组成;每个子步骤均可独立验证。
1. 安装GitHub Copilot CLI
从npm全局安装CLI,然后启动它:
bash
npm install -g @github/copilot
copilot
首次启动会进入交互式Copilot会话,您可以在其中运行后续步骤。
2. 验证Copilot
在会话中,使用/login命令登录,并按照GitHub设备授权流程进行操作:
text
/login
这需要一个有效的GitHub Copilot订阅 — CLI使用您的GitHub身份进行身份验证和模型配额。Copilot CLI默认使用Claude Sonnet 4.5;可以随时使用/model命令切换后端。
3. 添加Scrapeless MCP服务器(标准输入输出)
Copilot CLI从~/.copilot/mcp-config.json读取MCP服务器。创建该文件(或将scrapeless块添加到现有的mcpServers对象中),并输入标准输入输出配置:
json
{
"mcpServers": {
"scrapeless": {
"type": "local",
"command": "npx",
"args": ["-y", "scrapeless-mcp-server"],
"env": { "SCRAPELESS_KEY": "YOUR_SCRAPELESS_KEY" },
"tools": ["*"]
}
}
}
这里有一个细节容易混淆:Scrapeless MCP服务器从**SCRAPELESS_KEY**读取密钥,而不是SCRAPELESS_API_KEY。Scrapeless CLI和SDK使用SCRAPELESS_API_KEY,但MCP服务器是一个文档例外 — 在这里使用SCRAPELESS_KEY,否则服务器将启动而没有凭证。服务器源代码位于github.com/scrapeless-ai/scrapeless-mcp-server。
将您的真实密钥替换为YOUR_SCRAPELESS_KEY。"tools": ["*"]这一行暴露了完整的工具表面。您还可以使用/mcp命令(/mcp add、/mcp show、/mcp edit、/mcp delete、/mcp enable和/mcp disable)从会话内部管理服务器 — 这些命令会写入相同的配置文件。
4. 或者使用HTTP流式传输模式
如果主机无法可靠地启动npx — 如托管的开发容器、远程工作区或CI沙箱 — 请将Copilot指向Scrapeless HTTP端点,而不是本地进程:
json
{
"mcpServers": {
"scrapeless": {
"type": "http",
"url": "https://api.scrapeless.com/mcp",
"headers": { "x-api-token": "YOUR_SCRAPELESS_KEY" },
"tools": ["*"]
}
}
}
相同的密钥值在两种模式中都有效;请注意,HTTP 可流式传输将其作为 x-api-token 头传递,而不是 SCRAPELESS_KEY 环境变量。在开发工作站上,标准 I/O 是正确的默认值;对于长时间运行的子进程难以保持存活的地方,HTTP 可流式传输是正确的默认值。
5. 验证连接
启动 CLI 并列出连接的 MCP 服务器:
text
copilot
/mcp
scrapeless 服务器应该显示,加载了 21 个工具 —— Google 数据工具(google_search,google_trends),一次性页面助手(scrape_html,scrape_markdown,scrape_screenshot),和云浏览器原语(browser_create,browser_goto,browser_get_html,browser_get_text,browser_click,browser_type,browser_press_key,browser_scroll,browser_scroll_to,browser_screenshot,browser_snapshot,browser_wait,browser_wait_for,browser_go_back,browser_go_forward,browser_close)。如果服务器列出并且工具列举,连接良好,API 密钥有效。
如何实际使用:提示你的 Copilot CLI 代理
在连接 MCP 服务器后,您可以通过在终端与 Copilot CLI 交谈来获取实时网页数据——而不是手动编写工具调用。代理读取 Scrapeless MCP 服务器公开的工具列表,并根据需要选择 google_search、scrape_markdown 或 browser_* 工具,从自然语言提示中逐步组合它们。您不需要在自己这边创建工具 JSON,也不需要手动发出 MCP 调用。(Copilot CLI 可以在会话中交互式运行提示,或者使用 copilot -p "<prompt>" 进行一次性运行和脚本编写。)
可以粘贴的提示
| 提示 | 代理执行的操作 |
|---|---|
"查找 vector database benchmarks 2026 的 Google 顶级结果并以 JSON 格式返回。" |
使用 google_search 的 q、hl、gl → 输入结果行。 |
"现在在美国,developer tools 相关的搜索主题有哪些上升趋势?" |
使用 google_trends。 |
"以干净的 Markdown 格式抓取 https://react.dev/learn/synchronizing-with-effects 上的 React 文档页面。" |
使用 scrape_markdown。 |
"打开 https://pricing.example.com,这是一个 JavaScript 应用程序——渲染它并提取计划名称、价格和功能,返回 JSON。" |
browser_create → browser_goto → browser_get_html → 输入结果。 |
"比较 https://a.example.com/pricing 和 https://b.example.com/pricing 的定价页面,并告诉我它们的不同之处。" |
browser_create → browser_goto(页面 A)→ browser_get_html → browser_goto(页面 B)→ browser_get_html → 差异。 |
"对 https://example.com/landing 进行全页面截图。" |
使用 scrape_screenshot。 |
"抓取 https://example.com 的渲染 HTML,以便我可以阅读标记。" |
使用 scrape_html。 |
"打开 https://example.com/jobs,等待列表加载,拍摄快照,然后提取每个职位的名称和地点,返回 JSON。" |
browser_create → browser_goto → browser_wait_for → browser_snapshot → 输入提取 → browser_close。 |
实际示例
你输入:
bash
copilot -p "查找 'web scraping python' 的顶级自然结果,并总结前三个结果及其链接。"
代理的计划(简单英语):
- 以
q: "web scraping python"、hl: "en"、gl: "us"调用google_search。 - 接收结果行的数组,并读取
position、title、link和snippet字段。 - 按
position排序,并保留前三行。 - 从每个结果的
snippet中总结,并将摘要与行的title和link配对。 - 将三个摘要及其链接返回终端。
你得到的结果(示例形状——代理从这样的行中工作):
json
[
{
"position": 1,
"title": "Python Web Scraping Tutorial",
"link": "https://www.example.com/python-web-scraping",
"snippet": "逐步指南,介绍如何使用 Python、requests 和分析器抓取网页。",
"source": "example.com"
},
{
"position": 2,
"title": "Beautiful Soup Documentation",
"link": "https://www.example.org/beautifulsoup/docs",
"snippet": "Python 中解析 HTML 和 XML 文档的参考。",
"source": "example.org"
},
{
"position": 3,
"title": "Scraping Dynamic Sites in Python",
"link": "https://blog.example.net/dynamic-scraping",
"snippet": "如何在提取数据之前渲染 JavaScript 页面。",
"source": "example.net"
}
]
// 字段名称匹配 google_search 行的形状;值为示例。
无状态数据工具(google_search、google_trends、scrape_html、scrape_markdown)将其有效载荷作为带有前缀 Response:\n\n 的主体返回;代理在解析 JSON 之前解开该前缀,因此您在答案中永远不会看到它。
形状提示
| 说这个 | 效果 |
|---|---|
| "…来自德国" / "…德语结果" | 通过 proxyCountry 路由出口,并在搜索时设置 gl=de。 |
| "…按 Markdown 格式,跳过导航和样板" | 选择 scrape_markdown 以获取干净的文本负载,而不是原始 HTML。 |
| "…先渲染,它是一个单页应用" | 强制执行 browser_* 路径(browser_create → browser_goto → browser_get_html),以便提取在已加载的 DOM 上运行。 |
| "…仅限前 5 个" | 将返回的数组修剪为前五行。 |
| "…为每个结果包含片段" | 在输出行中保留 snippet 字段。 |
| "…完成后关闭会话" | 在 browser_create 中添加最终的 browser_close 及其 sessionId。 |
Scrapeless MCP 工具界面
一旦服务器连接,GitHub Copilot CLI 可以看到 21 个工具,涵盖 SERP 数据、无状态抓取和完整的反检测云浏览器控制。
| 工具 | 功能 |
|---|---|
google_search |
运行 Google 搜索(q、hl、gl),并返回结构化的自然结果行。 |
google_trends |
拉取某查询的 Google 热度数据。 |
scrape_html |
抓取 URL 并返回其渲染的 HTML。 |
scrape_markdown |
抓取 URL 并返回页面的干净 Markdown。 |
scrape_screenshot |
捕获目标 URL 的屏幕截图。 |
browser_create |
在反检测云浏览器上开启会话。 |
browser_goto |
导航会话至一个 URL。 |
browser_click |
在实时页面中点击元素。 |
browser_type |
在输入或可编辑字段中输入文本。 |
browser_get_text / browser_get_html |
读取页面的文本或 HTML。 |
browser_screenshot |
捕获实时会话的屏幕截图。 |
browser_snapshot |
返回页面的可访问性/结构快照。 |
browser_wait / browser_wait_for |
等待固定的时间间隔,或等待某个条件/元素。 |
browser_scroll / browser_scroll_to |
滚动页面,或滚动到特定元素。 |
browser_go_back / browser_go_forward |
在会话历史中移动。 |
browser_press_key |
向页面发送键盘按键。 |
browser_close |
结束云浏览器会话。 |
在免费计划中获取您的 API 密钥:Scrapeless
您获得的结果
google_search 调用返回一个自然结果行的 JSON 数组。每一行都带有相同的键,方便代理直接映射到标题、链接和片段:
json
// 字段名称反映了 google_search 工具的输出;值为示例。
[
{
"position": 1,
"title": "Python 网页抓取教程",
"link": "https://example.com/python-web-scraping",
"snippet": "使用 Python 抓取网页和解析 HTML 的逐步指南。",
"source": "example.com"
},
{
"position": 2,
"title": "网页抓取最佳实践",
"link": "https://example.org/best-practices",
"snippet": "如何负责任地抓取:速率限制、robots.txt 和结构化输出。",
"source": "example.org"
}
]
在您开始运行提示后,有几个诚实的观察结果:
- 像
google_search和scrape_markdown这样的无状态工具返回的主体以Response:\n\n前缀,后面跟着 JSON 有效载荷;代理会自动解开该前缀,这样您就可以处理数据,而不是包装。 browser_*工具返回没有Response:\n\n前缀的纯文本。- 工具参数采用小驼峰命名法:请完全按照名称传递
sessionId、proxyCountry及类似字段。 proxyCountry是请求,不是保证——它可能取决于您帐户上配置的区域。- 工具输出中的值依赖于内容:结果计数、顺序和片段文本因实时查询而异。
结论:从终端进行搜索、渲染和浏览
整个集成简化为一个 MCP 配置块加上自然语言提示。通过设置 scrapeless-mcp-server 入口和环境中的密钥,GitHub Copilot CLI 实现实时 Google 搜索、JavaScript 渲染和完整的反检测云浏览器——所有这些都无需离开终端或手动连接任何 HTTP 客户端。您描述任务,代理选择工具。
如果您在连接其他代理,相同的 Scrapeless MCP 服务器也可以应用于它们:请参阅 Google Antigravity 和 Pi Agent 的集成,以及 Scrapeless MCP 服务器概述 以获取完整的工具参考。将您的 API 密钥存入 SCRAPELESS_KEY,为本地 CLIs 优先选择 stdio 传输,针对托管代理使用 HTTP 可流式传输,并让代理选择工具。完整参考请见 docs.scrapeless.com。
常见问题解答
通过代理进行网页抓取是否合法?
抓取公开可用数据通常是允许的,但您需要对使用方式负责。请审核每个网站的服务条款并遵守 robots.txt,并且请记住,关于个人数据和访问的规则因管辖区而异。在有疑问时,请为您的具体用例寻求法律建议。
您需要 Scrapeless API 密钥吗?哪个环境变量保存它?
需要。Scrapeless MCP 服务器通过您在 SCRAPELESS_KEY 中设置的帐户密钥进行身份验证。如果没有它,服务器会启动,但其工具无法访问 Scrapeless 后端。
您需要 GitHub Copilot 订阅吗?
需要。GitHub Copilot CLI 在 Copilot 模型上运行其操作,这需要一个具有可用配额的有效 Copilot 订阅。MCP 服务器及其工具是独立的;订阅涵盖代理的模型,而不是 Scrapeless 调用。
stdio 与 HTTP 可流式传输 — 何时应使用各自?
当服务器与 CLI 本地运行时,请使用 stdio:代理启动 scrapeless-mcp-server 作为子进程,并通过标准输入/输出与其通信。当代理托管或远程并且不能生成本地进程时,请使用 HTTP 可流式传输(https://api.scrapeless.com/mcp 及 x-api-token 头)。对于本地 Copilot CLI 设置,stdio 是最简单的选择。
代理可以运行完整的浏览器流程,而不仅仅是搜索吗?
可以。16 个 browser_* 工具允许代理打开会话、导航、点击、输入、滚动、等待元素、快照、截图并关闭 — 完全由自然语言提示驱动的完整云浏览器流程。
proxyCountry 是否总是适用?
不一定。proxyCountry 是一个偏好,可以推迟到您帐户上配置的区域。如果地理定位很重要,请确认出境区域,而不是假设每次调用的值总是优先。
可以在没有 AI 代理的情况下使用它吗?
可以。Scrapeless MCP 服务器是标准的 MCP 服务器,因此任何 MCP 兼容的客户端都可以调用它 — 或者您可以通过 JSON-RPC 直接驱动它(initialize,然后 tools/list 和 tools/call)。代理是一个便利,而不是必需品。
准备构建您的 AI 驱动数据管道吗?
加入我们的社区,领取免费计划,并与正在构建 GitHub Copilot CLI + Scrapeless MCP 代理的开发者联系: Discord · Telegram。
请在 Scrapeless 注册以获取免费的抓取浏览器运行时,并将上面的集成适应于您的团队所需的 SERP、页面和区域。完整参考请访问 docs.scrapeless.com。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



