播客管理 MCP 服务器

Buzzsprout MCP 服务器为 AI 助手提供播客管理接口,支持节目列表、单集增删改查、音频上传与发布自动化,适用于通过 MCP 客户端管理 Buzzsprout 播客的场景。

  • by JamesTeague
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 JamesTeague/buzzsprout-mcp

使用说明

buzzsprout-mcp

MCP server for Buzzsprout podcast management -- episodes, audio upload, and publishing automation.

Installation

Run directly with npx:

npx buzzsprout-mcp

Or install globally:

npm install -g buzzsprout-mcp
buzzsprout-mcp

Configuration

Set the following environment variables:

Variable Description Where to find
BUZZSPROUT_API_TOKEN API authentication token Buzzsprout dashboard > My Account > API
BUZZSPROUT_PODCAST_ID Numeric podcast identifier URL path on your Buzzsprout dashboard (e.g., https://www.buzzsprout.com/12345 -> 12345)
BUZZSPROUT_ALLOWED_UPLOAD_DIR Allowlist root for local audio uploads. Absolute path to the directory holding your episode audio. Unset means every audio_file_path upload is refused; audio_url uploads keep working either way. You choose it -- e.g. /Users/you/podcast/audio
export BUZZSPROUT_API_TOKEN="your-api-token"
export BUZZSPROUT_PODCAST_ID="12345"
export BUZZSPROUT_ALLOWED_UPLOAD_DIR="/Users/you/podcast/audio"

Breaking change from 0.1.1: local uploads require an allowlist root

Through 0.1.1, audio_file_path accepted any path and uploaded those bytes under your API token. An AI agent steered by prompt injection could name ~/.ssh/id_rsa or a project .env and exfiltrate it.

Local file uploads are now refused unless BUZZSPROUT_ALLOWED_UPLOAD_DIR is set, and a path is only accepted when it resolves inside that directory -- .. traversal, symlinks pointing out of the root, and sibling directories sharing a name prefix are all rejected. File content is validated by magic bytes rather than by extension, so a non-audio file renamed .mp3 is refused too.

If file uploads started failing after upgrading, set BUZZSPROUT_ALLOWED_UPLOAD_DIR to your audio directory. audio_url mode is unchanged.

Available Tools

Tool Description
buzzsprout_list_episodes List all episodes for the podcast
buzzsprout_get_episode Get details for a specific episode by ID
buzzsprout_create_episode Create a new episode with title, description, tags, and scheduling
buzzsprout_update_episode Update an existing episode's metadata
buzzsprout_delete_episode Soft-delete an episode (sets to private)
buzzsprout_upload_audio Upload audio via URL, or via a local file path that resolves inside BUZZSPROUT_ALLOWED_UPLOAD_DIR (local uploads are refused when that variable is unset)

MCP Client Configuration

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "buzzsprout": {
      "command": "npx",
      "args": ["-y", "buzzsprout-mcp"],
      "env": {
        "BUZZSPROUT_API_TOKEN": "your-api-token",
        "BUZZSPROUT_PODCAST_ID": "12345",
        "BUZZSPROUT_ALLOWED_UPLOAD_DIR": "/Users/you/podcast/audio"
      }
    }
  }
}

License

MIT