Skip to main content

Confirm

Are you sure?

Integrations

URLpipe in Zed

Zed's agent, able to read any page — rendered — and pull its metadata.

By · Last updated: September 2026

TL;DR

Zed configures MCP servers under "context_servers" in settings.json. Add URLpipe with "url": "https://urlpipe.dev/mcp" and "headers": {"Authorization": "Bearer YOUR_TOKEN"}. With that header set, Zed skips its OAuth prompt; the indicator in Settings → AI → MCP Servers turns green when the server is active.

Free plan, no credit card. 1,000 credits a month.

Why

What Zed's agent gets

The Agent Panel can use any MCP server's tools. URLpipe adds reading pages as Markdown after their JavaScript has run, extract_metadata for a page's title, description, author, dates and feed, and screenshots, console output and Lighthouse audits when the agent needs to look closer.

Setup

1. Create an organization token

MCP uses its own credential, not a project API key: an organization token, created under Organization → MCP access in the dashboard. An agent works across projects, and a project key names only one. The token is shown once — copy it when you create it.

Choose Fetch pages and read results for an agent that works normally, or Read past results only for one that must not spend credits (more on that below). The account's email address must be confirmed before the token works; until then the server answers 403 with email_unverified.

Setup

2. Add the server to settings.json

Run zed: open settings file from the command palette (it is ~/.config/zed/settings.json on macOS and Linux) and add a context_servers entry. A server with a url is remote; nothing is launched locally.

settings.json
{
  "context_servers": {
    "urlpipe": {
      "url": "https://urlpipe.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Put it in your user settings, not a project's .zed/settings.json, so the token never lands in a repository. Without an Authorization header Zed starts the standard MCP OAuth flow — URLpipe has none to offer, so the header is required.

Check it's active

Open Settings → AI → MCP Servers and look at the dot next to urlpipe: green, with the tooltip "Server is active", means connected. Any other colour means the URL or the header is wrong. In the Agent Panel, the tools appear in the profile's tool list.

Try it

3. A first prompt to try

Prompt for Zed
Use urlpipe with sync: true to extract the metadata of these three articles and make a
Markdown table with title, author, publication date and feed URL:
https://example.com/blog/a  https://example.com/blog/b  https://example.com/blog/c

extract_metadata reads the page with a model, which is why it costs 5 credits against 1 for fetch_markdown.

The agent starts with list_projects, because every fetching tool takes a project_id. Async is the default, as over HTTP: without sync: true a tool returns a token and the agent collects the result with get_result. Most agents work this out from the tool descriptions; saying "use sync: true" in the prompt saves a round trip.

Tokens

Keep the token safe and the spend bounded

  • A read-only token cannot spend. Created with Read past results only, it can list projects, read usage and retrieve results already paid for, and nothing else. Give it to an agent that should only look things up.
  • Narrow it. A token can be limited to one project, or given an expiry date. Deleting it revokes it at once.
  • Keep it out of version control. Put it in an environment variable or the client's secret prompt rather than in a config file you commit.
  • Same credits as the API. fetch_markdown costs 1 credit, summarize_page 17; a cached result is free. get_usage shows what is left. See pricing.

Troubleshooting

If it doesn't connect

  • 401 — "A bearer token is required" or "not valid". The header must be exactly Authorization: Bearer YOUR_TOKEN: the word Bearer, one space, the token. Check that an environment variable actually expanded.
  • 403 email_unverified. Confirm the account's email address; the token then works as it is.
  • The client asks you to sign in with OAuth. URLpipe has no OAuth flow — the header is the whole of the authentication. Set it, and the client has nothing to sign in to.
  • Tool calls fail with rate_limited. The server allows 300 calls per 5 minutes per token. concurrency_limit means your plan's parallel requests are all busy.

The server speaks streamable HTTP and answers each message with a single JSON response — it opens no SSE stream and keeps no session. Every argument and tool is in the MCP docs.

FAQ

Frequently asked questions

What is the settings key for MCP servers in Zed?
context_servers. A remote server takes a url and, for URLpipe, a headers object with the Authorization bearer token.
Why does Zed ask me to sign in to URLpipe?
Zed starts OAuth for a remote server with no Authorization header. URLpipe uses a bearer token instead, so add the header and the prompt goes away.
How do I know the server connected in Zed?
In Settings → AI → MCP Servers, the indicator next to urlpipe turns green and its tooltip reads "Server is active".
What metadata does extract_metadata return?
Title, description, language, main image URL, favicon URL, author name, feed URL, publication date and additional author information — any of which can be null.

Connect it in five minutes.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.