Unofficial server for the Fireside.fm podcast API: podcasts, episodes, uploads and downloads.
An MCP server for the Fireside.fm podcast hosting API. It lets an MCP host such as Claude Code or Claude Desktop read your podcasts, episodes and download statistics, and create, edit, publish and unpublish episodes.
This is an unofficial project. It is not affiliated with or endorsed by Fireside.
A Read Only key enables the read tools; a Read/Write key also enables the tools that change episodes. Use a Read Only key unless you want your assistant to create, edit or publish episodes. A key covers every podcast on your Fireside account.
| Variable | Required | Meaning |
|---|---|---|
FIRESIDE_API_TOKEN | yes | Your Fireside API key (fire_…). |
FIRESIDE_PODCAST | no | Token or slug of the podcast to use when a request doesn't name one. |
FIRESIDE_READ_ONLY | no | true to offer only the read tools, even with a Read/Write key. |
At startup the server checks the key with Fireside. The write tools are offered only when the key is Read/Write and FIRESIDE_READ_ONLY is not set. A rejected key stops the server with an explanation on stderr. If the key cannot be checked for any other reason, such as a network error or a Fireside outage, the server starts with only the read tools and says why on stderr; restart it to try again.
Both hosts below store the key in plain text in their configuration file.
claude mcp add fireside \
--env FIRESIDE_API_TOKEN=fire_… \
--env FIRESIDE_PODCAST=your-podcast-slug \
-- npx -y firesidefm-mcp-server
This adds the server for the current project only. Add --scope user to make it available in every project.
Edit Claude Desktop's configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd an entry under mcpServers (create the object if the file doesn't have one yet):
{
"mcpServers": {
"fireside": {
"command": "npx",
"args": ["-y", "firesidefm-mcp-server"],
"env": {
"FIRESIDE_API_TOKEN": "fire_…",
"FIRESIDE_PODCAST": "your-podcast-slug"
}
}
}
}
Then quit and reopen Claude Desktop.
Claude Desktop does not read your shell profile, so if Node was installed with a version manager such as nvm, it may not find npx. In that case set "command" to the full path printed by which npx.
Podcasts and episodes can be named by token or by slug. An episode's slug defaults to its episode number, so "episode 42" works unless the slug was customised in the dashboard (for example s02e04).
| Tool | Needs Read/Write key | What it does |
|---|---|---|
fireside_get_account | The connected account and whether its key is Read Only or Read/Write. | |
fireside_list_podcasts | Podcasts you own or collaborate on. | |
fireside_get_podcast | One podcast's details and all-time downloads. | |
fireside_list_episodes | Episodes, newest first, including drafts and scheduled ones; filter by status. | |
fireside_get_episode | Every field of one episode, including show notes. | |
fireside_get_episode_metrics | Downloads per episode at 1, 7, 14, 30 and 90 days, Spotify, and total. | |
fireside_get_monthly_downloads | Downloads per calendar month and the all-time total. | |
fireside_create_episode | ✓ | Create a private draft episode. |
fireside_update_episode | ✓ | Change title, subtitle, slug, show notes, season, type or explicit flag. |
fireside_publish_episode | ✓ | Publish now, schedule, or backdate; public or unlisted. |
fireside_unpublish_episode | ✓ | Return an episode to a private draft. |
fireside_get_episode includes the episode's preview link, which plays the episode for anyone who has it, even before release.
These come from the Fireside API itself:
npm install
npm run build # compiles to dist/
npm run typecheck
npm test # unit and in-process MCP tests; no network
npm run test:e2e # builds, then runs dist/cli.js over stdio against a local stand-in API
npm run check # all of the above
npm run dev # run from source with tsx
scripts/ holds two checks that run against the real Fireside API with a key read from the macOS Keychain; see the comment at the top of each file. live-read-check.ts only reads. live-draft-check.ts creates and edits one draft episode, which you then delete in the dashboard; it refuses to send publish or unpublish requests.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y firesidefm-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-jkotzker-firesidefm-mcp-server": {
"command": "npx",
"args": [
"-y",
"firesidefm-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceFireside.fm (unofficial) works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.