# com.petabloom/podcasts

> An MCP server that provides tools to discover and retrieve podcast episodes transcripts.

- name: com.petabloom/podcasts
- version: 0.2.8
- connection class: R0 (autonomous)
- trust: 77/100 flags: no-repository
- quality: 96/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.petabloom%2Fpodcasts
- tools: https://api.protogrid.dev/v1/servers/com.petabloom%2Fpodcasts/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "podcasts": {
      "type": "http",
      "url": "https://podcasts.petabloom.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 45
- drivers: +dns-namespace +reachable +uptime-100% ~updated-70d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 96/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,692 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 1,692 tokens to load them all
- tool set hash: a0a1322fbcff2d1837903f46851aeb26
- badge: [![protogrid quality](https://protogrid.dev/badge/com.petabloom/podcasts.svg)](https://protogrid.dev/servers/com.petabloom/podcasts)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://podcasts.petabloom.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `get_latest_episodes`: Return the most recent transcript-ready episodes across the full podcast catalog.
- `get_transcript`: Fetch a bounded transcript chunk for a specific episode using its show and episode GUIDs. Use `next_cursor` to continue reading.
- `give_feedback`: Send structured feedback about bugs, missing data, unclear behavior, or feature requests.
- `search_episodes`: Search indexed podcast episodes by keyword or show name and return the show/episode GUIDs needed for transcript retrieval.
- `search_episodes_by_topic`: Semantic topic search across the podcast catalog. Unlike `search_episodes` (which does lexical/keyword matching), this tool understands meaning: a query for 'AI safety' will match episodes about 'AI alignment', 'AGI risk', or 'frontier model evaluation' even if they don't contain the exact phrase. Returns ranked episodes with the matched topic phrases so you can explain *why* each result is relevant before fetching the transcript. Best for conceptual or thematic queries — use `search_episodes` instead when the user is looking for a specific person, product, or verbatim phrase.
