Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

OP3 MCP Server

NPM · @CONORBRONSDON/OP3-MCP · SCANNED AUG 3

OP3 podcast analytics: downloads, geography, app share, episode breakdowns. Read-only.

+54 this week 78 Trust /100
Trust breakdown (6 categories)

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
Install

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

# add to Claude Code
claude mcp add conorbronsdon-op3-mcp -- npx -y @conorbronsdon/op3-mcp
# add to Codex CLI
codex mcp add conorbronsdon-op3-mcp -- npx -y @conorbronsdon/op3-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "conorbronsdon-op3-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@conorbronsdon/op3-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add conorbronsdon-op3-mcp --command npx --arg -y --arg @conorbronsdon/op3-mcp
# ~/.hermes/config.yaml
mcp_servers:
  conorbronsdon-op3-mcp:
    command: "npx"
    args: ["-y", "@conorbronsdon/op3-mcp"]
// mcp.json
{
  "mcpServers": {
    "conorbronsdon-op3-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@conorbronsdon/op3-mcp"
      ]
    }
  }
}
Changelog

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.

Diagnostics

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.

MCP tools — 6 exposed · ~1,004 tokens

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.

Tool Tokens
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.

NameTypeReqDescription
endstringEnd time, ISO date or datetime.
episode_idstringFilter to a single episode by its OP3 episodeId.
limitnumberMax records to return (default 20, cap 200). Records are verbose; keep this small.
show_uuidstringyesOP3 show UUID (32 hex chars).
startstringStart 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.

NameTypeReqDescription
limitnumberMax episodes to return, newest first (default 10).
show_uuidstringyesOP3 show UUID (32 hex chars).
sort_bystringOrder 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).

NameTypeReqDescription
episode_limitnumberMax episodes to return when include_episodes is true (default 10).
identifierstringyesShow 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_episodesbooleanInclude 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).

NameTypeReqDescription
show_uuidstringyesOP3 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.

NameTypeReqDescription
limitnumberMax apps to return, ranked by downloads (default 10).
show_uuidstringyesOP3 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.

NameTypeReqDescription
bystringAggregate by country code or by region (state/province) name.
endstringEnd of the window, ISO date or datetime. Defaults to now.
limitnumberMax countries/regions to return, ranked (default 10).
max_recordsnumberHow many download records to sample for the aggregation (default 5000, cap 20000). Higher is more accurate but slower.
show_uuidstringyesOP3 show UUID (32 hex chars).
startstringStart 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_daysnumberWhen start is omitted, sample this many days back from now (default 90). Ignored if start is set.

No output schema declared.

No examples provided.