---
name: distro-reader
description: Read free Distro stories through the public authless Reader MCP. No account, OAuth, or API key.
---

# Distro Reader

Read Distro inside any MCP client. The Reader is public and read-only.

- Endpoint: `https://reader.distro.media/mcp/reader/stream`
- Transport: Streamable HTTP
- Authentication: none
- Setup guide: https://distro.media/reader.md

Do not send an Authorization header, OAuth client, or `dv_*` API key. Those belong to Publisher, a different server.

## One-line bootstrap

Paste this into any agent:

```
Connect Distro Reader (Streamable HTTP MCP: https://reader.distro.media/mcp/reader/stream — no auth; setup guide: https://distro.media/reader.md) and show me the latest free stories.
```

## Install

### Cursor

Open this install link (it adds a server named `distro-reader`):

cursor://anysphere.cursor-deeplink/mcp/install?name=distro-reader&config=eyJ1cmwiOiJodHRwczovL3JlYWRlci5kaXN0cm8ubWVkaWEvbWNwL3JlYWRlci9zdHJlYW0ifQ%3D%3D

Decoded config: `{"url":"https://reader.distro.media/mcp/reader/stream"}`

Or add `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "distro-reader": {
      "url": "https://reader.distro.media/mcp/reader/stream"
    }
  }
}
```

### Claude Code

```
claude mcp add --transport http distro-reader https://reader.distro.media/mcp/reader/stream
```

### Codex

```
codex mcp add distro-reader --url https://reader.distro.media/mcp/reader/stream
```

### Claude (web and desktop)

1. Open Customize → Connectors → Add custom connector.
2. Name it Distro Reader. Paste `https://reader.distro.media/mcp/reader/stream` into Remote MCP server URL. Leave OAuth and other auth fields blank.
3. Select Add, then ask for the latest free stories.

### ChatGPT

1. Open Settings → Security and login, then turn on Developer mode. Availability can depend on account and workspace policy.
2. Open Plugins and select the plus button.
3. Name it Distro Reader. Choose Server URL and paste `https://reader.distro.media/mcp/reader/stream`. Do not add an API key.
4. Create the connection, review the discovered tools, then ask for the latest free stories.

### Other MCP agents

Hermes, OpenClaw, Windsurf, Zed, and any client that speaks remote MCP:

- URL: `https://reader.distro.media/mcp/reader/stream`
- Transport: Streamable HTTP
- Authentication: none
- Skill: https://distro.media/reader.md

```json
{
  "mcpServers": {
    "distro-reader": {
      "url": "https://reader.distro.media/mcp/reader/stream"
    }
  }
}
```

Older stdio-only clients can bridge with this one line:

```
npx -y mcp-remote https://reader.distro.media/mcp/reader/stream
```

## Tools

### distro_feed_latest

Browse latest stories. Browse the latest published stories. Optionally filter by publication slug or numeric id (not both) and limit (default 10, max 50). Returns id, slug, url, and publication metadata. Paid bodies are never included.

### distro_story_read

Read a story. Read one story by storyId, slug ("publication/story"), or url. Free stories return the full body. Premium stories withhold the body and return paywall metadata. Pass accessToken only after the user has already paid.

### distro_search

Search Distro. Full-text search across published Distro stories. Requires query. Same story shape as distro_feed_latest. Paid bodies are never included.

### distro_media_series

Get a podcast or video series. Discover an agent-readable podcast or video series by publication slug and series slug. Returns series metadata, subscription links, and episode records.

### distro_story_render_hud

Render a story. Render a story in the Distro Reader. Identify it the same way as distro_story_read. Premium bodies stay behind the paywall until a valid access token is passed.

### distro_book_render_hud

Render a book. Render a public book with metadata, table of contents, and every available free chapter. A whole-book purchase unlocks every chapter. Do not start that payment without an explicit user confirmation.

### distro_payment_info

Get payment info for a story. Return the price, currency, and accepted payment rails for a contentId, plus a whole-book offer when the story is a chapter. This call does not charge anyone.

### distro_tip (optional)

Tip the publisher. Optional. Present only when tips are enabled on the server. Call with no amount for the suggested menu, then again with an amount only after the user picks one. A tip grants no access. Never tip unless the user asked.

## Free stories and paid stories

Free stories return their full body. They need no account, wallet, or API key.

A paid story does not return its body. `distro_story_read` and the render tools return a teaser and price metadata. The canonical article URL answers HTTP 402 with `_distro.teaser` until it is paid. Nothing is charged automatically. Show the price and stop. Pay only after the user explicitly confirms that exact purchase.

`distro_payment_info` only describes the price. It does not move money.

## Safety

- Never pay, buy, or tip without an explicit confirmation from the user for that action.
- Never call `distro_tip` unless the user asked to tip or support the publisher. A tip does not unlock the story.
- Do not retry a payment the user declined. Do not invent a wallet signature.
- Publisher tools are not on this server. Publishing requires https://app.distro.media/mcp/stream and a Distro publisher account. Request access at https://distro.media/#request-access.

## Verify

```
Use Distro Reader to show the latest 3 stories with titles, sources, dates and links. Read one free story and summarize it with a citation. Do not buy, pay or tip.
```

Connected: the latest stories include titles, sources, dates, and links.

Tools not visible yet: start a new chat or refresh connectors.

Paid story: the tool returns a teaser and price info. Pick any free story to read in full.
