本页内容
ChatGPT 现在可以通过自定义 MCP connectors 调用你自己的工具 —— 包括 web scraping。但有一个营销页面略过不提的前提:connectors 必须是远程服务器,所以像 CrawlForge 这样的本地工具无法直接粘贴进去。本指南讲的是诚实的版本:到底什么是可行的、为什么需要一层封装,以及要搭建的确切桥接。
目录
- ChatGPT connectors 是什么
- 哪些套餐可以使用
- 传输层的前提:仅限远程
- 为什么 CrawlForge 需要一层封装
- 搭建桥接:一台远程 MCP 封装服务器
- 在 ChatGPT 中添加 connector
- 认证与安全
- 一个更简单的替代方案
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:
# 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 把它暴露出去。要做一次快速测试,可把你的本地端口用隧道暴露:
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
- 打开 Settings -> Apps & Connectors -> Advanced 并启用 Developer mode。
- 前往 Apps & Connectors -> Create。
- 粘贴你公开的 HTTPS MCP URL(例如你的 ngrok URL 加上
/mcp),为它命名,并选择一种认证方式。 - 勾选 "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 中运行 CrawlForge 的 27 个抓取与提取工具中的任意一个,然后免费开始,获取 1,000 credits。
1,000 免费 credits • 每月补充 • 无需信用卡
标签
及时获取最新洞察
将教程、产品更新与 Web 抓取技巧直接发送到你的收件箱。
拒绝垃圾邮件,随时可取消订阅。