# conorbronsdon/op3-mcp [Health: Active]

**Category:** 🎙️ Podcasts  
**Repository:** https://github.com/conorbronsdon/op3-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 148  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/conorbronsdon-op3-mcp

## Description
Podcast analytics from OP3, the Open Podcast Prefix Project: downloads over time, listener geography, app share, and per-episode breakdowns. Read-only by design.

## Tools
Capabilities this server exposes over MCP:

- **op3_get_show** — Look up a podcast show on OP3 and get its UUID, title, podcast GUID, and stats page URL. Pass a show UUID, a podcast:guid, or a base64-encoded feed URL. This is the entry point: most other tools need the show UUID this returns. Set include_episodes to also list episodes (id, title, pubdate).
- **op3_show_downloads** — Get a show's recent download summary from OP3: monthly downloads, a week-by-week breakdown, and the average weekly downloads. Use this for 'how many downloads does my show get' questions. Needs a show UUID (from op3_get_show).
- **op3_episode_downloads** — Get per-episode download counts for a show from OP3: for each recent episode, downloads in the first 1/3/7/30 days after publish and all-time. Good for comparing how episodes perform. Needs a show UUID. Use limit to cap how many episodes come back.
- **op3_top_apps** — Get the top podcast apps and players downloading a show, from OP3, over the last three calendar months. Returns each app with its download count and percent share. Answers 'what apps do my listeners use'. Needs a show UUID.
- **op3_top_countries** — Get the top listener countries (or regions) for a show. NOTE: OP3 has no native geography query, so this counts raw download records and aggregates by country client-side. It is a representative sample, not an exact lifetime total. OP3 returns raw records oldest-first, so to keep the sample recent this tool defaults to the last `window_days` days (90) when you do not pass an explicit start. Each result has a download count and percent share. Needs a show UUID. Keep max_records modest to stay fast and within rate limits.
- **op3_downloads_timeseries** — Fetch raw download records for a show from OP3 over a date range. Returns individual download events (time, country, app, device). This is the low-level feed behind the other tools. Use it when you need to filter by episode or a specific date window. Keep limit low (records are verbose). For totals or geography summaries, prefer op3_show_downloads / op3_top_countries.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "op3-mcp": {
    "command": "npx",
    "args": ["-y","@conorbronsdon/op3-mcp"],
    "env": {
      "OP3_API_TOKEN": ""
    }
  }
}
```

**Requires environment variables:** `OP3_API_TOKEN` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What conorbronsdon/op3-mcp MCP server does

The conorbronsdon/op3-mcp MCP server connects AI assistants to OP3, the Open Podcast Prefix Project. It exposes read-only podcast analytics through six tools, covering show identification, download trends, episode-level performance, listening applications, listener countries, and raw download events.

OP3 records downloads when an episode URL uses its redirect prefix. The server can therefore report only activity that passed through OP3; downloads from before the prefix was added are not backfilled. The server does not modify shows, episodes, feeds, or analytics data.

## Tools and capabilities

- `op3_get_show` accepts a show UUID, podcast GUID, or base64-encoded feed URL. It returns the show UUID, title, podcast GUID, and stats page URL. With `include_episodes`, it also returns episode IDs, titles, and publication dates.
- `op3_show_downloads` returns monthly totals, a weekly breakdown, and average weekly downloads.
- `op3_episode_downloads` reports each recent episode's downloads during its first 1, 3, 7, and 30 days, plus its all-time count. Use `limit` to restrict the result size.
- `op3_top_apps` lists downloading apps and players with counts and percentage shares for the previous three calendar months.
- `op3_top_countries` estimates country or regional shares by aggregating raw download records on the client side.
- `op3_downloads_timeseries` returns individual records containing time, country, app, and device data for a selected date range.

## How it works

Start with `op3_get_show` when the show UUID is unknown. The returned UUID is required by most other tools. List-producing tools use a low default `limit` to keep responses smaller. For raw records, keep limits modest because each record is verbose and OP3 rate limits are not publicly documented.

Country results are samples rather than exact lifetime totals. Because OP3 provides raw records oldest-first and no native geography aggregate, `op3_top_countries` defaults to a 90-day window when no start date is supplied. `max_records` controls the sample size, with a documented cap of 20,000; the response indicates when the sample reached its cap.

## Setup and configuration

The conorbronsdon/op3-mcp MCP server requires an OP3 API token in the `OP3_API_TOKEN` environment variable. Obtain a token from OP3 after signing in. OP3 also publishes the shared preview token `preview07ce` for testing against public shows.

For Claude Code or Claude Desktop, configure the server with the `npx` command and package `@conorbronsdon/op3-mcp`, passing `OP3_API_TOKEN` in the server environment. The project targets Node 18 or newer. A local development setup can clone the repository, run `npm install`, build with `npm run build`, and start with `OP3_API_TOKEN=your-token npm start`.

## Limitations and notes

The app-share window is fixed to the last three calendar months by OP3. There is no aggregate device tool, although device fields appear in timeseries records. OP3 download queries exclude bots by default.

A missing or invalid token produces an authentication error. Other typed failures distinguish rate limits, missing shows or resources, invalid parameters, OP3 server failures, and network or unmapped errors. Tool failures retain the MCP `isError: true` response shape.

If a feed does not use the OP3 prefix, the server has no OP3 data to return. Adding the prefix starts collecting new downloads but does not reconstruct historical activity.

_Full upstream README: https://allmcps.com/mcp/conorbronsdon-op3-mcp/readme_

