跳到正文

CrawlForge Team工程团队

阅读时长 11 分钟

如何用 MCP connectors 为 ChatGPT 添加 web scraping(2026)

ChatGPT 现在可以通过自定义 MCP connectors 调用你自己的工具 —— 包括 web scraping。但有一个营销页面略过不提的前提:connectors 必须是远程服务器,所以像 CrawlForge 这样的本地工具无法直接粘贴进去。本指南讲的是诚实的版本:到底什么是可行的、为什么需要一层封装,以及要搭建的确切桥接。

目录

ChatGPT connectors 是什么

ChatGPT 支持自定义 MCP connectors —— 在 2025 年 12 月被改名为 "apps",所以当前的 UI 显示的是 "Apps & Connectors"。通过 Developer mode,你连接一台外部 MCP server,ChatGPT 便可以在对话过程中调用它的工具,并在任何写入操作前请你确认。这与驱动 Claude 中的 web scraping 的是同一套 Model Context Protocol —— 只是换了一个客户端。

Developer mode(完整的读/写 MCP)明确处于 beta 阶段;OpenAI 指出其 UI 和权限可能会变化。

哪些套餐可以使用

根据 OpenAI 的套餐对照表,添加自定义 MCP connector 的能力可用于:

  • Plus、Pro、Business、Enterprise 和 Edu —— 可以。
  • Free 和 Go —— 不可以。

完整的写入操作支持正在最广泛地向 Business、Enterprise 和 Edu 推送。如果你只需要 ChatGPT 读取抓取到的数据,下文的只读路径就足够了。

传输层的前提:仅限远程

这正是让人栽跟头的地方。一个 ChatGPT connector 必须是一台可通过 HTTPS 访问的远程 MCP server,使用 SSE 或 Streamable HTTP 传输。你把一个 URL 粘贴进 ChatGPT;而不是把它指向你机器上的某条命令。

这就排除了本地 stdio 服务器 —— 也就是你用 npx 安装的那种。要用它,你要么把它公开托管,要么通过 ngrok 或 Cloudflare Tunnel 之类的隧道把本地服务器暴露出去。

还有一条值得了解的工具命名规则:ChatGPT 的 deep research 和 company-knowledge 路径要求你的服务器暴露两个只读工具,分别名为 search 和 fetch,并采用特定的 schema。完整的 Developer mode 允许你暴露任意工具,所以那条双工具约束只适用于 deep-research 路径。

为什么 CrawlForge 需要一层封装

CrawlForge 以一台本地 stdio MCP server(通过 npx)外加一个位于 https://www.crawlforge.dev/api/v1/tools/ 的 REST API 的形式发布。两者都不是远程 MCP URL,而且它的工具名为 search_web、fetch_url 和 extract_content —— 并不是 ChatGPT deep-research 模式所期望的 search/fetch 这一对。

所以今天你无法把 CrawlForge 直接粘贴进 ChatGPT。可行的路径是一层轻量的远程 MCP 封装:一台你托管的小服务器,它暴露符合 ChatGPT 形态的工具,并在背后调用 CrawlForge 的 REST API。大约 30 行代码。

搭建桥接:一台远程 MCP 封装服务器

FastMCP(Python)是用 ChatGPT 所要的 search 和 fetch 工具迅速搭起一台远程 MCP server 的最快方式。每个工具都用你放在 X-API-Key 请求头里的 cf_live_ 密钥来调用 CrawlForge 的 REST API:

Python
# server.py
import os
import httpx
from fastmcp import FastMCP

mcp = FastMCP("CrawlForge Bridge")
BASE = "https://www.crawlforge.dev/api/v1/tools"
HEADERS = {"X-API-Key": os.environ["CRAWLFORGE_API_KEY"]}

@mcp.tool()
async def search(query: str) -> list[dict]:
    """Search the web. Returns id/title/url results for ChatGPT."""
    async with httpx.AsyncClient(timeout=30) as client:
        r = await client.post(f"{BASE}/search_web", headers=HEADERS,
                              json={"query": query, "limit": 10})
    results = r.json().get("results", [])
    return [{"id": x["link"], "title": x["title"], "url": x["link"]} for x in results]

@mcp.tool()
async def fetch(id: str) -> dict:
    """Fetch full page content by id (the URL) for ChatGPT."""
    async with httpx.AsyncClient(timeout=30) as client:
        r = await client.post(f"{BASE}/extract_content", headers=HEADERS,
                              json={"url": id})
    data = r.json()
    return {"id": id, "title": data.get("title", id),
            "text": data.get("content", ""), "url": id}

if __name__ == "__main__":
    mcp.run(transport="http", host="0.0.0.0", port=8000)

运行它,然后通过 HTTPS 把它暴露出去。要做一次快速测试,可把你的本地端口用隧道暴露:

Bash
pip install fastmcp httpx
export CRAWLFORGE_API_KEY="cf_live_your_key_here"
python server.py
# in another terminal:
ngrok http 8000

对于 Developer mode,你可以跳过 search/fetch 的命名,转而把工具与 CrawlForge 一对一映射 —— 直接暴露 scrape_structured、stealth_mode 或 deep_research。封装的模式是一样的。

在 ChatGPT 中添加 connector

  1. 打开 Settings -> Apps & Connectors -> Advanced 并启用 Developer mode。
  2. 前往 Apps & Connectors -> Create。
  3. 粘贴你公开的 HTTPS MCP URL(例如你的 ngrok URL 加上 /mcp),为它命名,并选择一种认证方式。
  4. 勾选 "I trust this application" 复选框。

你的 search 和 fetch 工具现在出现了。在一段对话里,选中该 connector 并让 ChatGPT 研究某个主题 —— 它会调用 search,然后通过 CrawlForge 对最相关的结果执行 fetch。

认证与安全

Connectors 以 none(公开)或 OAuth 进行认证 —— ChatGPT 的 UI 里并没有简单的 API-key-header 选项,这正是为什么这层封装把你的 CrawlForge 密钥保存在服务端。ChatGPT 还会在写入操作前请你确认,而且你可以在批准之前检查每一次工具调用的 payload。

请认真对待 OpenAI 的警告:只连接你信任的服务器。 一个自定义 connector 会增加风险,包括 prompt injection;模型在某个写入操作上犯错可能会摧毁或泄露数据。像上面那样的只读抓取桥接风险很低;在分享它之前,用 OAuth 把它锁紧。

一个更简单的替代方案

如果你宁可什么都不托管,那就用代码搭配 OpenAI Agents SDK 或 Responses API 来使用 CrawlForge —— 不需要远程 MCP server。那条路径见 CrawlForge 搭配 OpenAI Agents SDK,更大的全景见 MCP web scraping 完整指南。

免费获取 CrawlForge API 密钥 —— 1,000 credits,无需信用卡,几分钟即可把它接入你的桥接。

亲自试一试——无需注册

在 Playground 中探索全部 31 个 CrawlForge 抓取与提取工具,然后免费开始,获取 1,000 credits。

1,000 免费 credits • 一次性 • 无需信用卡

标签

  • chatgpt
  • mcp
  • openai
  • web-scraping
  • connectors
  • tutorial

关于作者

CrawlForge Team

工程团队

我们正在打造功能最全面的 Web 抓取 MCP server。我们开发的工具帮助开发者为 AI 应用提取、分析和转换 Web 数据。

邮件订阅

及时获取最新洞察

将教程、产品更新与 Web 抓取技巧直接发送到你的收件箱。

拒绝垃圾邮件,随时可取消订阅。

FAQ

常见问题

01ChatGPT 能用自定义 MCP connector 做 web scraping 吗?

可以,间接地。ChatGPT 支持自定义 MCP connectors(自 2025 年 12 月起称为 apps),所以你可以连接一台 web-scraping MCP server 并让 ChatGPT 调用它。前提是该 connector 必须是一台可通过 HTTPS 访问的远程服务器,所以你通常会通过一层轻量的 MCP 封装把它指向一个托管的抓取 API。

02ChatGPT MCP connector 需要远程服务器吗,还是可以用本地的?

它必须是远程的。ChatGPT 自定义 connectors 要求一台可通过 HTTPS 访问的 MCP server,使用 SSE 或 Streamable HTTP 传输。本地 stdio 服务器(比如 CrawlForge 的 npx 包)无法直接粘贴进去 —— 你要托管一层远程封装,或把本地服务器用隧道暴露到一个公开 URL。

03哪些 ChatGPT 套餐可以添加自定义 MCP connectors?

根据 OpenAI 的套餐对照表,自定义 MCP connectors 可用于 Plus、Pro、Business、Enterprise 和 Edu —— 而非 Free 或 Go。Developer mode(完整的读/写 MCP)处于 beta 阶段,完整的写入操作支持正在最广泛地向 Business、Enterprise 和 Edu 推送。

04ChatGPT MCP connectors 仍然需要 search 和 fetch 工具吗?

只有 deep research 和 company-knowledge(仅数据)路径需要,那里你的服务器必须用 OpenAI 的 schema 暴露只读的 search 和 fetch 工具。Developer mode 支持任意工具,包括写入操作,所以那条双工具要求在那里并不适用。

05我能把 CrawlForge 直接接入 ChatGPT 吗?

今天还不能直接接入。CrawlForge 以一台本地 stdio MCP server 外加一个 REST API 的形式发布,而 ChatGPT 需要一个远程 HTTPS MCP URL。可行的路径是一台小型的远程 MCP 封装服务器,它暴露 search 和 fetch(或任意工具)并在背后调用 CrawlForge 的 REST API —— 本指南展示了这一模式。

06把一台自定义 MCP server 接入 ChatGPT 安全吗?

只连接你信任的服务器。OpenAI 警告称自定义 connectors 会增加风险,包括 prompt injection,而且模型在写入操作上的失误可能会摧毁或泄露数据。ChatGPT 会请你确认写入操作,你也可以在批准之前检查每一次工具调用。尽可能优先选择只读工具和 OAuth。

继续阅读

相关文章

教程

8 分钟

如何在 LangGraph 智能体中使用 CrawlForge

使用 LangGraph 和 CrawlForge 构建有状态的网页爬取智能体。本篇 TypeScript 指南涵盖图节点、状态管理以及条件化的爬取流程,从安装依赖到构建完整研究智能体,含可运行的代码示例。

教程

7 分钟

如何将 CrawlForge 与 Dify 工作流结合使用

在 Dify 中将 CrawlForge 添加为自定义工具,让你的 LLM 应用工作流具备 web scraping 能力。附带工作流示例的无代码与 API 集成指南,从 OpenAPI schema 导入到工作流调用几分钟完成。