CrawlForge
HomePlaygroundUse CasesIntegrationsPricingDocumentationBlog
How to Give ChatGPT Web Scraping with MCP Connectors (2026)
Tutorials
Back to Blog
Tutorials

How to Give ChatGPT Web Scraping with MCP Connectors (2026)

C
CrawlForge Team
Engineering Team
June 16, 2026
11 min read

On this page

Quick Answer

Yes -- ChatGPT can do web scraping through custom MCP connectors (renamed "apps" in December 2025), available on Plus, Pro, Business, Enterprise, and Edu via Developer mode. The catch: connectors must be remote HTTPS servers, so a local stdio server like CrawlForge cannot be added directly. The practical path is a thin remote MCP wrapper that proxies CrawlForge's REST API, which this guide walks through.

ChatGPT can now call your own tools through custom MCP connectors -- including web scraping. But there is a catch the marketing pages skip: connectors must be remote servers, so a local tool like CrawlForge cannot be pasted in directly. This guide is the honest version: what is actually possible, why a wrapper is needed, and the exact bridge to build.

Table of Contents

  • What ChatGPT Connectors Are
  • Which Plans Can Use Them
  • The Transport Catch: Remote Only
  • Why CrawlForge Needs a Wrapper
  • Build the Bridge: A Remote MCP Wrapper
  • Add the Connector in ChatGPT
  • Auth and Safety
  • A Simpler Alternative

What ChatGPT Connectors Are

ChatGPT supports custom MCP connectors -- renamed "apps" in December 2025, so the current UI says "Apps & Connectors." Through Developer mode, you connect an external MCP server and ChatGPT can call its tools mid-conversation, asking you to confirm before any write action. It is the same Model Context Protocol that powers web scraping in Claude -- just a different client.

Developer mode (full read/write MCP) is explicitly a beta; OpenAI notes the UI and permissions may change.

Which Plans Can Use Them

Per OpenAI's plan table, the ability to add a custom MCP connector is available on:

  • Plus, Pro, Business, Enterprise, and Edu -- yes.
  • Free and Go -- no.

Full write-action support is rolling out most broadly to Business, Enterprise, and Edu. If you only need ChatGPT to read scraped data, the read-only path below is enough.

The Transport Catch: Remote Only

This is the part that trips people up. A ChatGPT connector must be a remote MCP server reachable over HTTPS, using SSE or Streamable HTTP transport. You paste a URL into ChatGPT; you do not point it at a command on your machine.

That rules out local stdio servers -- the kind you install with npx. To use one, you either host it publicly or expose a local server through a tunnel such as ngrok or Cloudflare Tunnel.

There is also a tool-naming rule worth knowing: ChatGPT's deep research and company-knowledge paths require your server to expose two read-only tools named search and fetch with a specific schema. Full Developer mode lets you expose arbitrary tools, so that two-tool constraint applies only to the deep-research path.

Why CrawlForge Needs a Wrapper

CrawlForge ships as a local stdio MCP server (via npx) plus a REST API at https://www.crawlforge.dev/api/v1/tools/. Neither is a remote MCP URL, and its tools are named search_web, fetch_url, and extract_content -- not the search/fetch pair ChatGPT's deep-research mode expects.

So you cannot paste CrawlForge straight into ChatGPT today. The practical path is a thin remote MCP wrapper: a small server you host that exposes ChatGPT-shaped tools and calls CrawlForge's REST API behind the scenes. It is about 30 lines.

Build the Bridge: A Remote MCP Wrapper

FastMCP (Python) is the quickest way to stand up a remote MCP server with the search and fetch tools ChatGPT wants. Each tool calls CrawlForge's REST API using your cf_live_ key in the X-API-Key header:

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)

Run it, then expose it over HTTPS. For a quick test, tunnel your local port:

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

For Developer mode you can skip the search/fetch naming and instead map tools one-to-one to CrawlForge -- expose scrape_structured, stealth_mode, or deep_research directly. The wrapper pattern is the same.

Add the Connector in ChatGPT

  1. Open Settings -> Apps & Connectors -> Advanced and enable Developer mode.
  2. Go to Apps & Connectors -> Create.
  3. Paste your public HTTPS MCP URL (for example, your ngrok URL plus /mcp), name it, and choose an auth method.
  4. Confirm the "I trust this application" checkbox.

Your search and fetch tools now appear. In a chat, select the connector and ask ChatGPT to research a topic -- it will call search, then fetch the most relevant results through CrawlForge.

Auth and Safety

Connectors authenticate with none (public) or OAuth -- there is no simple API-key-header option in the ChatGPT UI, which is exactly why the wrapper holds your CrawlForge key server-side. ChatGPT also asks you to confirm before write actions, and you can inspect each tool call's payload before approving it.

Take OpenAI's warnings seriously: only connect servers you trust. A custom connector increases risk, including prompt injection, and a model mistake on a write action could destroy or leak data. A read-only scraping bridge like the one above is low-risk; lock it down with OAuth before sharing it.

A Simpler Alternative

If you would rather not host anything, use CrawlForge from code with the OpenAI Agents SDK or Responses API -- no remote MCP server required. See CrawlForge with the OpenAI Agents SDK for that path, and the complete guide to MCP web scraping for the bigger picture.

Get a free CrawlForge API key -- 1,000 credits, no credit card required, and wire it into your bridge in minutes.

Try this yourself — no signup needed

Run any of CrawlForge's 27 scraping and extraction tools in the playground, then start free with 1,000 credits.

1,000 free credits • Refills monthly • No credit card required

Tags

chatgptmcpopenaiweb-scrapingconnectorstutorial

About the Author

C

CrawlForge Team

Engineering Team

Building the most comprehensive web scraping MCP server. We create tools that help developers extract, analyze, and transform web data for AI applications.

Stay updated with the latest insights

Get tutorials, product updates, and web scraping tips delivered to your inbox.

No spam. Unsubscribe anytime.

Put this into practice

Test CrawlForge's tools on any URL — free, no signup.

On this page

Frequently Asked Questions

Can ChatGPT do web scraping with a custom MCP connector?+

Yes, indirectly. ChatGPT supports custom MCP connectors (called apps since December 2025), so you can connect a web-scraping MCP server and have ChatGPT call it. The catch is that the connector must be a remote server reachable over HTTPS, so you typically point it at a hosted scraping API through a thin MCP wrapper.

Does a ChatGPT MCP connector need a remote server, or can it use a local one?+

It must be remote. ChatGPT custom connectors require an MCP server reachable over HTTPS using SSE or Streamable HTTP transport. A local stdio server (like CrawlForge's npx package) cannot be pasted in directly -- you host a remote wrapper or tunnel a local server to a public URL.

Which ChatGPT plans can add custom MCP connectors?+

Per OpenAI's plan table, custom MCP connectors are available on Plus, Pro, Business, Enterprise, and Edu -- not Free or Go. Developer mode (full read/write MCP) is in beta, and full write-action support is rolling out most broadly to Business, Enterprise, and Edu.

Do ChatGPT MCP connectors still require search and fetch tools?+

Only for the deep research and company-knowledge (data-only) paths, where your server must expose read-only search and fetch tools using OpenAI's schema. Developer mode supports arbitrary tools, including write actions, so the two-tool requirement does not apply there.

Can I connect CrawlForge to ChatGPT directly?+

Not directly today. CrawlForge ships as a local stdio MCP server plus a REST API, while ChatGPT needs a remote HTTPS MCP URL. The practical path is a small remote MCP wrapper that exposes search and fetch (or arbitrary tools) and calls CrawlForge's REST API behind the scenes -- this guide shows the pattern.

Is it safe to connect a custom MCP server to ChatGPT?+

Connect only servers you trust. OpenAI warns that custom connectors increase risk, including prompt injection, and that model mistakes on write actions could destroy or leak data. ChatGPT asks you to confirm write actions, and you can inspect each tool call before approving it. Prefer read-only tools and OAuth where possible.

Related Articles

How to Build a Web-Scraping MCP Server in TypeScript (2026)
Tutorials

How to Build a Web-Scraping MCP Server in TypeScript (2026)

Build a working web-scraping MCP server in TypeScript with the official SDK: a minimal server, a real cheerio scraping tool, testing, and Claude Desktop setup.

C
CrawlForge Team
|
Jun 16
|
12m
How to Use CrawlForge with LangGraph Agents
Tutorials

How to Use CrawlForge with LangGraph Agents

Build stateful web scraping agents with LangGraph and CrawlForge. TypeScript guide covering graph nodes, state management, and conditional scraping flows.

C
CrawlForge Team
|
Apr 24
|
8m
How to Use CrawlForge with Dify Workflows
Tutorials

How to Use CrawlForge with Dify Workflows

Add CrawlForge as a custom tool in Dify for web scraping in your LLM app workflows. No-code and API integration guide with workflow examples.

C
CrawlForge Team
|
Apr 22
|
7m

Footer

CrawlForge

Enterprise web scraping for AI Agents. 27 specialized MCP tools designed for modern developers building intelligent systems.

Product

  • Features
  • Playground
  • Pricing
  • Use Cases
  • Integrations
  • Alternatives
  • Changelog

Resources

  • Getting Started
  • API Reference
  • Templates
  • Guides
  • Blog
  • Glossary
  • FAQ
  • Sitemap

Developers

  • MCP Protocol
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Company

  • About
  • Contact
  • Privacy
  • Terms
  • Acceptable Use
  • Cookies

Stay updated

Get the latest updates on new tools and features.

Built with Next.js and MCP protocol

© 2025-2026 CrawlForge. All rights reserved.