OP3 MCP Server
NPM · @CONORBRONSDON/OP3-MCP · SCANNED AUG 3
OP3 podcast analytics: downloads, geography, app share, episode breakdowns. Read-only.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to conorbronsdon/op3-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 25 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability68
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1004 tokens (~167/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @conorbronsdon/op3-mcp
claude mcp add conorbronsdon-op3-mcp -- npx -y @conorbronsdon/op3-mcp
codex mcp add conorbronsdon-op3-mcp -- npx -y @conorbronsdon/op3-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"conorbronsdon-op3-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@conorbronsdon/op3-mcp"
],
"enabled": true
}
}
} openclaw mcp add conorbronsdon-op3-mcp --command npx --arg -y --arg @conorbronsdon/op3-mcp
mcp_servers:
conorbronsdon-op3-mcp:
command: "npx"
args: ["-y", "@conorbronsdon/op3-mcp"] {
"mcpServers": {
"conorbronsdon-op3-mcp": {
"command": "npx",
"args": [
"-y",
"@conorbronsdon/op3-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +57
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Provenance: unverified → pass ▲ security
- The attested source repository moved: conorbronsdon/op3-mcp security
- Dependency health: partial → unverified ▼ functional
- Stability: unverified → 0.23 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Licence: MIT functional
- Package version: 0.1.0 → 0.2.0 functional
- 1 Aug 26 +2
- Malware scan: unverified → pass ▲ security
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- 31 Jul 26 −25
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 28 Jul 26 +20
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: unverified functional
- First check of Schema quality: fail functional
- 27 Jul 26 24
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@conorbronsdon/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- conorbronsdon/op3-mcp
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/conorbronsdon/op3-mcp/.github/workflows/publish.yml@refs/heads/main
- Rekor log index:
- 2113300320
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:2c774a07ca053670dcfce9c547952e6740c1c7db7d4054520d3a1c9648756668413cef7b0b7005181f322fc9141b0da1103c068506b13896630db70b1
- Discovery method:
- attestation_endpoint
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
op3_downloads_timeseries ~209
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.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | — | End time, ISO date or datetime. |
| episode_id | string | — | Filter to a single episode by its OP3 episodeId. |
| limit | number | — | Max records to return (default 20, cap 200). Records are verbose; keep this small. |
| show_uuid | string | yes | OP3 show UUID (32 hex chars). |
| start | string | — | Start time, ISO date or datetime (e.g. 2026-06-01 or 2026-06-01T00:00:00Z). |
No output schema declared.
No examples provided.
op3_episode_downloads ~128
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max episodes to return, newest first (default 10). |
| show_uuid | string | yes | OP3 show UUID (32 hex chars). |
| sort_by | string | — | Order results: recent (default), all-time downloads, or 7-day downloads. |
No output schema declared.
No examples provided.
op3_get_show ~174
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).
| Name | Type | Req | Description |
|---|---|---|---|
| episode_limit | number | — | Max episodes to return when include_episodes is true (default 10). |
| identifier | string | yes | Show identifier: an OP3 show UUID (32 hex chars), a podcast:guid, or a base64-encoded feed URL. Use op3_get_show to resolve a feed to its UUID. |
| include_episodes | boolean | — | Include the episode list. Off by default to keep the response small. |
No output schema declared.
No examples provided.
op3_show_downloads ~77
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).
| Name | Type | Req | Description |
|---|---|---|---|
| show_uuid | string | yes | OP3 show UUID (32 hex chars). |
No output schema declared.
No examples provided.
op3_top_apps ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max apps to return, ranked by downloads (default 10). |
| show_uuid | string | yes | OP3 show UUID (32 hex chars). |
No output schema declared.
No examples provided.
op3_top_countries ~324
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.
| Name | Type | Req | Description |
|---|---|---|---|
| by | string | — | Aggregate by country code or by region (state/province) name. |
| end | string | — | End of the window, ISO date or datetime. Defaults to now. |
| limit | number | — | Max countries/regions to return, ranked (default 10). |
| max_records | number | — | How many download records to sample for the aggregation (default 5000, cap 20000). Higher is more accurate but slower. |
| show_uuid | string | yes | OP3 show UUID (32 hex chars). |
| start | string | — | Start of the window, ISO date or datetime (e.g. 2026-05-01). If omitted, defaults to window_days ago. OP3 records are oldest-first, so without a start the sample would otherwise be the show's oldest… |
| window_days | number | — | When start is omitted, sample this many days back from now (default 90). Ignored if start is set. |
No output schema declared.
No examples provided.