# Apple Podcasts MCP Server (npm · @conorbronsdon/apple-podcasts-mcp)

Apple Podcasts Connect owner analytics over Reporter: plays, followers, episodes. Read-only.

- Trust score: 73/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `@conorbronsdon/apple-podcasts-mcp`: 73/100 (this document), [markdown](https://verifymcp.io/servers/conorbronsdon-apple-podcasts-mcp/conorbronsdon-apple-podcasts-mcp.md), [page](https://verifymcp.io/servers/conorbronsdon-apple-podcasts-mcp/conorbronsdon-apple-podcasts-mcp)

## Channel facts

- Registry: `npm`
- Package: `@conorbronsdon/apple-podcasts-mcp`
- Version: `0.2.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to conorbronsdon/apple-podcasts-mcp).
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 1 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1065 tokens (~266/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add conorbronsdon-apple-podcasts-mcp -- npx -y @conorbronsdon/apple-podcasts-mcp
```

### Codex

```bash
codex mcp add conorbronsdon-apple-podcasts-mcp -- npx -y @conorbronsdon/apple-podcasts-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "conorbronsdon-apple-podcasts-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@conorbronsdon/apple-podcasts-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add conorbronsdon-apple-podcasts-mcp --command npx --arg -y --arg @conorbronsdon/apple-podcasts-mcp
```

### Hermes

```yaml
mcp_servers:
  conorbronsdon-apple-podcasts-mcp:
    command: "npx"
    args: ["-y", "@conorbronsdon/apple-podcasts-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "conorbronsdon-apple-podcasts-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@conorbronsdon/apple-podcasts-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 73, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-08-03 (score 73, +27)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: excellent

### 2026-08-02 (score 46)

First indexed and scored.

## MCP tools (4)

### `apple_podcasts_check_access` (~75 tokens)

Verify the configured Apple Podcasts Connect credentials and list the vendor numbers this access token can read. Run this first, and run it whenever another tool reports an auth failure: Reporter access tokens expire 180 days after they are generated, and the failure looks like a permissions problem rather than an expiry. Returns no listening data.

### `apple_podcasts_summary` (~343 tokens)

Show-level listening summary from Apple Podcasts Connect over a date range: plays, unique listeners, engaged listeners, and followers, per period and totalled. Apple aggregates listening from unique devices, so listener counts are devices, not people, and an engaged listener is a device that played at least 20 minutes or 40% of an episode. This is the owner-side data Apple's hosting APIs do not expose. Use it for 'how is the show doing on Apple' questions. Keep the range short; each period is a separate call to Apple.

Input parameters:

- `end` (string): End of the range, YYYY-MM-DD (or YYYY-MM for Monthly). Defaults to 2 days ago, because Apple publishes reports on a lag.
- `max_periods` (integer): How many periods to fetch, cap 31. Reporter has no range query, so each period is a separate call to Apple and a wide range will hit their throttle. Default 7. Ranges longer than this are truncated t…
- `period` (string): Reporter period. Daily and Weekly take YYYY-MM-DD dates; Monthly takes YYYY-MM. Weekly dates are Apple's week-ending Sundays.
- `start` (string): Start of the range, YYYY-MM-DD (or YYYY-MM for Monthly). Defaults to 7 days back for Daily, 7 weeks for Weekly, 6 months for Monthly — each sized to fit the default max_periods of 7.
- `worldwide` (boolean): Use the worldwide report (one row per period) instead of the per-storefront report (one row per storefront). Worldwide is smaller and is what you want unless you need geography.

### `apple_podcasts_episodes` (~379 tokens)

Per-episode listening from Apple Podcasts Connect over a date range: plays, unique listeners, and engaged listeners for each episode, rolled up across the range and ranked. Answers 'which episodes held attention on Apple'. Apple aggregates from unique devices, so these are device counts, not headcounts, and an engaged listener is a device that played at least 20 minutes or 40% of an episode — a depth threshold, not a completion. Takes an explicit date range and a row cap; both are required to keep the response bounded.

Input parameters:

- `end` (string): End of the range, YYYY-MM-DD (or YYYY-MM for Monthly). Defaults to 2 days ago, because Apple publishes reports on a lag.
- `limit` (integer): Max episodes to return, ranked by sort_by. Default 10, cap 50.
- `max_periods` (integer): How many periods to fetch, cap 31. Reporter has no range query, so each period is a separate call to Apple and a wide range will hit their throttle. Default 7. Ranges longer than this are truncated t…
- `period` (string): Reporter period. Daily and Weekly take YYYY-MM-DD dates; Monthly takes YYYY-MM. Weekly dates are Apple's week-ending Sundays.
- `sort_by` (string): Which metric ranks the episodes. Default plays.
- `start` (string): Start of the range, YYYY-MM-DD (or YYYY-MM for Monthly). Defaults to 7 days back for Daily, 7 weeks for Weekly, 6 months for Monthly — each sized to fit the default max_periods of 7.
- `worldwide` (boolean): Use the worldwide episode report instead of the per-storefront one. Per-storefront repeats every episode once per country, which is far more rows for the same totals.

### `apple_podcasts_followers` (~268 tokens)

Follower trend for the show on Apple Podcasts over a date range: one value per period plus the change across the window. Use it for 'is my Apple following growing'. Read the resolvedColumn field in the response before interpreting the numbers: Apple's follower column has been both a running total and a per-period count, and which one you get changes what 'change' means.

Input parameters:

- `end` (string): End of the range, YYYY-MM-DD (or YYYY-MM for Monthly). Defaults to 2 days ago, because Apple publishes reports on a lag.
- `max_periods` (integer): How many periods to fetch, cap 31. Reporter has no range query, so each period is a separate call to Apple and a wide range will hit their throttle. Default 14. Ranges longer than this are truncated…
- `period` (string): Reporter period. Daily and Weekly take YYYY-MM-DD dates; Monthly takes YYYY-MM. Weekly dates are Apple's week-ending Sundays.
- `start` (string): Start of the range, YYYY-MM-DD (or YYYY-MM for Monthly). Defaults to 7 days back for Daily, 7 weeks for Weekly, 6 months for Monthly — each sized to fit the default max_periods of 7.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/conorbronsdon-apple-podcasts-mcp/conorbronsdon-apple-podcasts-mcp#diagnostics

## Score history

- 2026-08-04: 73
- 2026-08-03: 73
- 2026-08-02: 46

## Links

- npm package: https://www.npmjs.com/package/@conorbronsdon/apple-podcasts-mcp
- Socket report: https://socket.dev/npm/package/@conorbronsdon/apple-podcasts-mcp
- Repository: https://github.com/conorbronsdon/apple-podcasts-mcp
- Changelog RSS feed: https://verifymcp.io/servers/conorbronsdon-apple-podcasts-mcp/conorbronsdon-apple-podcasts-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/conorbronsdon-apple-podcasts-mcp/conorbronsdon-apple-podcasts-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/conorbronsdon-apple-podcasts-mcp/conorbronsdon-apple-podcasts-mcp
