# podcast-commerce-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/teamsincetoday/podcast-commerce-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 150  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/podcast-commerce-mcp

## Description
Extract product mentions from podcast transcripts with affiliate signals. Free tier 200/day.

## Tools
Capabilities this server exposes over MCP:

- **extract_podcast_products** — Extract products/brands from a transcript with confidence scores
- **analyze_episode_sponsors** — Identify sponsor segments and estimate read-through rates
- **track_product_trends** — Compare product mentions across multiple episodes
- **compare_products_across_shows** — Cross-show product ranking with entity resolution across multiple shows
- **generate_show_notes_section** — Format extracted products as a shoppable show notes section

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

```json
"mcpServers": {
  "podcast-commerce-mcp": {
    "command": "npx",
    "args": ["-y","podcast-commerce-mcp"]
  }
}
```

## Documentation & README

# Podcast Commerce Intelligence MCP

[![npm](https://img.shields.io/npm/v/podcast-commerce-mcp)](https://www.npmjs.com/package/podcast-commerce-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Stars](https://img.shields.io/github/stars/teamsincetoday/podcast-commerce-mcp?style=social)](https://github.com/teamsincetoday/podcast-commerce-mcp)

**Turn podcast transcripts into affiliate revenue.** Give any episode transcript to an AI agent — get back every product mentioned, who said it, how strongly they recommended it, and which affiliate network carries it. F1=100% on eval suite. Free tier: 200 calls/day.

⭐ **If this saves you time, please star the repo** — it helps other developers find it.

> **Live endpoint**: `https://podcast-commerce-mcp.sincetoday.workers.dev/mcp` · [See examples](https://podcast-commerce-mcp.sincetoday.workers.dev/examples)

Extract product mentions, sponsor segments, and product trends from podcast transcripts. Built on x402, the open payment standard backed by Shopify, Google, Microsoft, Visa, and the Linux Foundation.

## Tools

| Tool | Description |
|------|-------------|
| `extract_podcast_products` | Extract products/brands from a transcript with confidence scores |
| `analyze_episode_sponsors` | Identify sponsor segments and estimate read-through rates |
| `track_product_trends` | Compare product mentions across multiple episodes |
| `compare_products_across_shows` | Cross-show product ranking with entity resolution across multiple shows |
| `generate_show_notes_section` | Format extracted products as a shoppable show notes section |

## Quick Start

```bash
# Install
npm install podcast-commerce-mcp

# Configure
cp .env.example .env
# Edit .env: set OPENAI_API_KEY

# Run (stdio MCP server)
npx podcast-commerce-mcp
```

## Connect in Claude Code — No Install Required

Add to your `claude_desktop_config.json` or use `/add-mcp` in Claude Code. Free tier: 200 calls/day, no API key needed:

```json
{
  "mcpServers": {
    "podcast-commerce": {
      "url": "https://podcast-commerce-mcp.sincetoday.workers.dev/mcp"
    }
  }
}
```

## MCP Client Config (local/stdio)

```json
{
  "mcpServers": {
    "podcast-commerce": {
      "command": "npx",
      "args": ["podcast-commerce-mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}
```

## Tool Reference

### `extract_podcast_products`

```json
{
  "transcript": "Raw text or URL to a .txt file",
  "episode_id": "optional-cache-key",
  "category_filter": ["saas", "physical_goods"],
  "api_key": "optional-paid-key"
}
```

Returns:
```json
{
  "episode_id": "...",
  "products": [
    {
      "name": "Notion",
      "category": "saas",
      "mention_context": "I use Notion every day...",
      "speaker": "Host",
      "confidence": 0.9,
      "recommendation_strength": "strong",
      "affiliate_link": null,
      "mention_count": 2
    }
  ],
  "sponsor_segments": [...],
  "_meta": { "processing_time_ms": 1200, "ai_cost_usd": 0.001, "cache_hit": false }
}
```

### `analyze_episode_sponsors`

```json
{
  "transcript": "...",
  "episode_id": "optional",
  "api_key": "optional"
}
```

### `track_product_trends`

```json
{
  "episode_ids": ["ep1", "ep2", "ep3"],
  "category_filter": ["saas"]
}
```

Requires episodes to be previously extracted and cached. Returns `trends[]` with `brand`, `trend` (rising/stable/falling), `avg_recommendation_strength`, and `top_category`.

### `compare_products_across_shows`

```json
{
  "show_ids": ["show-a", "show-b"],
  "min_show_count": 2,
  "min_confidence": 0.85
}
```

Ranks products by how many shows mention them. Returns `products[]` with `brand`, `show_count`, `avg_confidence`, `recommendation_consensus` (unanimous/majority/mixed/rare).

### `generate_show_notes_section`

```json
{
  "episode_id": "previously-extracted-id",
  "format": "markdown",
  "style": "full"
}
```

Formats cached product data as a shoppable show notes block. Returns a formatted string ready to paste into episode notes.

## Example Output

Real extraction from a Huberman Lab episode transcript (live eval: **F1=89%**, 96/100 score, $0.00046/call, 8100ms):

```json
{
  "episode_id": "huberman-ep-312",
  "products": [
    {
      "name": "AG1 (Athletic Greens)",
      "brand": "AG1",
      "category": "supplement",
      "mention_context": "today's episode is brought to you by AG1. I've been taking it every morning for six months",
      "confidence": 0.97,
      "recommendation_strength": "strong"
    },
    {
      "name": "Oura Ring",
      "category": "physical_goods",
      "mention_context": "I've been wearing it for sleep tracking for two years. They're not a sponsor, just a genuine rec",
      "confidence": 0.95,
      "recommendation_strength": "strong"
    }
  ],
  "sponsor_segments": [
    {
      "sponsor_name": "AG1",
      "read_type": "host_read",
      "estimated_read_through": 0.72,
      "call_to_action": "code HUBERMAN for a free year's supply of Vitamin D"
    }
  ]
}
```

See `/examples` endpoint for full output with value narrative: `https://podcast-commerce-mcp.sincetoday.workers.dev/examples`

## Pricing

- Free tier: 200 calls/day per agent (no API key required)
- Paid: $0.01/call — set `MCP_API_KEYS` with valid keys

## Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `OPENAI_API_KEY` | Yes | — | OpenAI API key |
| `AGENT_ID` | No | `anonymous` | Agent identifier for rate limiting |
| `MCP_API_KEYS` | No | — | Comma-separated paid API keys |
| `CACHE_DIR` | No | `./data/cache.db` | SQLite cache path |
| `PAYMENT_ENABLED` | No | `false` | Set `true` to enforce limits |

## Development

```bash
npm install
npm run typecheck   # Zero type errors
npm test            # All tests pass
npm run build       # Compile to dist/
```

## License

MIT — Since Today Studio

