[ Integrations ]
One MCP endpoint. Every client.
18 tools, one URL, nothing to run locally.
The endpoint
https://api.hydrafetch.com/mcp
A streamable HTTP MCP server. Authenticate with an API key as a bearer token, or let the client run the OAuth flow and sign in through the browser.
Get an API keyscrape
Fetch one web page and return its main content as clean markdown, with optional HTML, links or structured data. Use it to read a page whose URL you already have. For many pages of one site use crawl; for a list of URLs use batch. A long page comes back in parts of maxCharacters (default 50000); when nextOffset is set, call again with that offset to read on. Each call costs 1 credit.
1 credit
map
List the URLs on a website, found through its sitemap and links, without fetching their content. Use it to see which pages exist before choosing which to scrape.
1 credit
crawl
Discover and scrape the pages of a website as one background job, following its links from a starting URL. Returns a crawl id straight away; read progress and results with crawl_status. Each page scraped costs 1 credit, so set limit to what you need.
1 credit per page scraped
crawl_status
Read a crawl started with crawl: its progress, and one page of the scraped results. When nextOffset is not null, pass it as offset to read the next page of results.
free
batch
Scrape a list of URLs you already have, such as pages found with map. Waits for the batch to finish and returns the first page of results in the same call, so a short list needs one call; read further pages, or a batch still running, with batch_status. Each URL scraped costs 1 credit.
1 credit per URL scraped
batch_status
Read a batch started with batch: its progress, and one page of results in the order the URLs were sent. When nextOffset is not null, pass it as offset to read the next page of results.
free
jobs_search
Search open jobs collected from company career sites and hiring platforms, by whole words in the job title, with optional location, remote and posted-within filters. Newest first. Use it to find who is hiring for a role. Costs 1 credit per 10 jobs returned; a search with no jobs is free.
1 credit per 10 jobs returned
company_hiring_changes
What changed in companies' hiring since a date: jobs open now, opened and closed, by department, seniority and location, with the postings themselves. Give company websites like stripe.com. Costs 1 credit per company we have jobs for; companies we do not track are free.
1 credit per company we have jobs for
search
Search the web and return ranked results: title, url and snippet. Set scrapeResults to also fetch each result as markdown, at 1 extra credit per page.
1 credit plus 1 per scraped result
news
Find recent news articles about a query, newest first, each with its outlet and publish time. Use it for announcements such as funding rounds, acquisitions, launches and leadership changes. Set scrapeResults to also read each article as markdown, at 1 extra credit per article.
1 credit plus 1 per article read; free when nothing is found
brand
A company's brand from its domain: logos for light and dark backgrounds, its colours, name, description and social profiles. Use it to answer what a company is or how it presents itself.
5 credits
logo
A company's logo as a directly embeddable image URL, chosen for the background you name. Use this rather than brand when the mark is all you need: it costs a fifth as much and returns one asset instead of the whole record.
1 credit
extract
Pull specific fields out of one or more pages as JSON, shaped by a JSON schema or described in a prompt. Use it when you need values such as prices, names or dates rather than the whole page text.
5 credits per URL
styleguide
A site's design tokens read from computed styles in a real browser: colours by role with contrast ratios, the dark theme colours when the site has one, the type scale, corner radius and button styling, how panels, the header bar and panel titles are drawn, plus ready-made CSS, Tailwind and shadcn/ui stylesheets. Values defined through CSS variables come back resolved to the hex actually painted. To recreate how a site looks rather than only its tokens, take a screenshot of the page too.
10 credits
screenshot
Render a page in a real browser and capture a PNG, returning its public URL. Use when the question is what the page looks like rather than what it says.
5 credits
images
Harvest a page's images with their metadata, without rendering it. Cheaper than a screenshot and returns the source images rather than a picture of the page.
1 credit
job_status
Get the result of a call that answered with a jobId and status "running" because it needed more time. Returns the same result the call would have returned, or the error it failed with. Free.
free
feedback
Tell Hydrafetch whether an earlier result was accurate. Use it after a scrape, search or other call returns missing, wrong or blocked content, so it gets looked at; a good rating is welcome too. Pass the requestId from that call's usage block, or the URL it read.
free
[01 / Clients]
Paste one block and restart.
Sign in through the browser, or send your key as a bearer token.
Claude Code
--scope user makes it available in every project. Use --scope project to keep it to one repo.
- 1
Add Hydrafetch from your terminal.
Terminalclaude mcp add --scope user --transport http hydrafetch https://api.hydrafetch.com/mcp - 2
Start Claude Code, run /mcp, choose hydrafetch and then Authenticate. Your browser opens: sign in, pick a workspace and approve.
Use an API key instead
Add it with your key in the header. Replace hf_your_key with a key from the API keys page.
claude mcp add --scope user --transport http hydrafetch https://api.hydrafetch.com/mcp --header "Authorization: Bearer hf_your_key"Claude Desktop
- 1
Open Hydrafetch in Claude's connector directory and choose Connect.
- 2
Sign in to Hydrafetch and approve in the window that opens.
Add it as a custom connector instead
Open Settings, then Connectors, and choose Add custom connector.
Name it Hydrafetch and paste this URL.
https://api.hydrafetch.com/mcpChoose Connect, then sign in and approve in the browser window that opens.
ChatGPT
- 1
Open Hydrafetch in ChatGPT's apps and choose Connect.
- 2
Sign in to Hydrafetch and approve.
Add it as a custom connector instead (paid ChatGPT plans)
Open Settings, then Apps and Connectors, then Advanced settings, and turn on developer mode.
Create a connector, name it Hydrafetch and paste this URL.
https://api.hydrafetch.com/mcpChoose OAuth for authentication, create it, then sign in and approve.

Cursor
Put the same block in .cursor/mcp.json inside a repo to keep it to that project.
- 1
Add Hydrafetch to ~/.cursor/mcp.json. Create the file if it does not exist.
~/.cursor/mcp.json{ "mcpServers": { "hydrafetch": { "url": "https://api.hydrafetch.com/mcp" } } } - 2
Open Cursor Settings, then MCP. Hydrafetch asks you to sign in: choose Connect and approve in your browser.
Use an API key instead
Replace hf_your_key with a key from the API keys page.
{
"mcpServers": {
"hydrafetch": {
"url": "https://api.hydrafetch.com/mcp",
"headers": { "Authorization": "Bearer hf_your_key" }
}
}
}
VS Code
- 1
Add Hydrafetch to .vscode/mcp.json in your workspace.
.vscode/mcp.json{ "servers": { "hydrafetch": { "type": "http", "url": "https://api.hydrafetch.com/mcp" } } } - 2
Choose Start above the server in that file, then sign in and approve when VS Code asks.
Use an API key instead
Replace hf_your_key with a key from the API keys page.
{
"servers": {
"hydrafetch": {
"type": "http",
"url": "https://api.hydrafetch.com/mcp",
"headers": { "Authorization": "Bearer hf_your_key" }
}
}
}
Codex CLI
- 1
Add Hydrafetch from your terminal.
Terminalcodex mcp add hydrafetch --url https://api.hydrafetch.com/mcp - 2
Start Codex. The first time it uses Hydrafetch, your browser opens to sign in.
Or edit the config file
Add this to ~/.codex/config.toml.
[mcp_servers.hydrafetch]
url = "https://api.hydrafetch.com/mcp"Gemini CLI
- 1
Add Hydrafetch from your terminal.
Terminalgemini mcp add hydrafetch --url https://api.hydrafetch.com/mcp --scope user - 2
Start Gemini CLI. The first time it uses Hydrafetch, your browser opens to sign in.
Or edit the config file
Add this to ~/.gemini/settings.json.
{
"mcpServers": {
"hydrafetch": { "httpUrl": "https://api.hydrafetch.com/mcp" }
}
}
Cline
Cline keeps this in global storage, so it follows you across workspaces.
- 1
Open the MCP Servers panel and choose Configure to open the settings file.
- 2
Add Hydrafetch to it. Replace hf_your_key with a key from the API keys page.
cline_mcp_settings.json{ "mcpServers": { "hydrafetch": { "type": "streamableHttp", "url": "https://api.hydrafetch.com/mcp", "headers": { "Authorization": "Bearer hf_your_key" }, "disabled": false, "autoApprove": [] } } }

OpenCode
An opencode.json at a project root overrides the global one.
- 1
Add Hydrafetch to your global OpenCode config.
~/.config/opencode/opencode.json{ "$schema": "https://opencode.ai/config.json", "mcp": { "hydrafetch": { "type": "remote", "url": "https://api.hydrafetch.com/mcp", "enabled": true } } } - 2
Start OpenCode. It sees that Hydrafetch needs a sign-in and opens your browser.
Use an API key instead
Replace hf_your_key with a key from the API keys page.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hydrafetch": {
"type": "remote",
"url": "https://api.hydrafetch.com/mcp",
"enabled": true,
"headers": { "Authorization": "Bearer hf_your_key" }
}
}
}[02 / Official clients]
One install, every endpoint.
A thin wrapper over the same HTTP surface. Reads HYDRAFETCH_API_KEY, retries what is worth retrying, polls crawl and batch jobs.
Two more for the browser, built for a publishable key rather than a secret one. Logo pulls are metered on their own allowance and never touch your credit balance.
[03 / Frameworks]
Or call it from your own pipeline.
HTTP, not MCP. LangChain and LlamaIndex ship their own package; everything else calls an official client.
LangChain
A document loader that hands your splitter clean Markdown instead of the tag soup a raw HTTP loader returns. One page, a whole crawl, or a site map, and a retriever that searches the web.
$pip install langchain-hydrafetchfrom langchain_hydrafetch import HydrafetchLoader, HydrafetchSearchRetriever
# One page, a whole site, or just its URLs.
docs = HydrafetchLoader("https://example.com/article").load()
docs = HydrafetchLoader("https://example.com", mode="crawl", params={"limit": 50}).load()
# Stream a large crawl instead of holding it all in memory.
for doc in HydrafetchLoader("https://example.com", mode="crawl").lazy_load():
index.add(doc)
# Search the web as a retriever.
retriever = HydrafetchSearchRetriever(k=5)
docs = retriever.invoke("best open source vector databases")
LlamaIndex
A reader, so pages arrive stripped of navigation and boilerplate before they ever reach your index. Map a site first and load what you want: crawling everything and discarding most of it is the usual way to waste credits.
$pip install llama-index-readers-hydrafetchfrom llama_index.core import VectorStoreIndex
from llama_index.readers.hydrafetch import HydrafetchReader
reader = HydrafetchReader(params={"onlyMainContent": True})
# A single URL, a list of them, or a whole site.
docs = reader.load_data("https://example.com/article")
docs = reader.load_data(["https://example.com/a", "https://example.com/b"])
docs = reader.load_data("https://example.com", mode="crawl", limit=50)
index = VectorStoreIndex.from_documents(docs)
Vercel AI SDK
A tool your model can call mid-conversation when it needs a page it has not seen.
$npm install @hydrafetch/node-sdkimport { Hydrafetch } from '@hydrafetch/node-sdk';
import { tool } from 'ai';
import { z } from 'zod';
const hf = new Hydrafetch(process.env.HYDRAFETCH_API_KEY);
export const readPage = tool({
description: 'Read a web page and return it as clean Markdown.',
parameters: z.object({ url: z.string().url() }),
execute: async ({ url }) => hf.markdown(url),
});[04 / Second opinions]
Do not take our word for it. Ask an AI to check.
Point your coding agent at your own repository, or ask an assistant to compare us against the alternatives. Both answer with things we did not write.
Ask your coding agent
It reads your repo, not our pitch.
Paste one line into any agent that reads your repository. It comes back with file paths, a credit estimate, and where we are not worth it.
The skill reads our live endpoint list when it runs, so it covers anything we ship after you paste this.
Ask an assistant
Let it compare us to the alternatives.
The question is already written, and it asks for the comparison rather than the sales pitch. It opens in a new tab with the prompt filled in.
Assistants read the live site, so they answer from what is published today rather than from anything we hand them.
Either. Most clients speak the MCP OAuth flow, so you point them at the endpoint and sign in through the browser. The rest send an API key as a bearer token. The two are equivalent in what they can do.
The same as the matching HTTP endpoint. A page is one credit whatever it took to fetch, extract and brand are five, and a failed call costs nothing. Connecting over MCP never costs more than calling the API directly.
An API key belongs to the workspace, so a key in a shared config works for everyone and the usage lands on the same balance. Signing in with OAuth ties the connection to you inside that workspace.
Almost certainly. The endpoint is a standard streamable HTTP MCP server, so any client that can take a URL and an Authorization header can use it. The listed configs are just the shapes each client expects.
Every connection you authorize shows up on the MCP page in your dashboard, with the client that opened it and when it was last used. Revoke it there and that client stops working immediately. Key-based connections stop when you roll the key.
[ Start ]
Point your agent at it in under a minute.
18 tools, one endpoint, and the same credit cost as calling the API directly.
Success rate
Median scrape
ms