Fireside.fm (unofficial)

io.github.jkotzker由 GitHub 账号 jkotzker 发布v0.3.0更新于 Oct 30, 2026

Unofficial server for the Fireside.fm podcast API: podcasts, episodes, uploads and downloads.

已验证STDIO仅桌面数据与分析媒体与设计

概览

AI 生成的概览

非官方的 Fireside.fm 播客 API MCP 服务器,可让助手读取播客、单集与下载统计,并在使用读写密钥时创建、编辑、发布单集及上传媒体文件。

可以做什么
  • 读取账户、播客与单集信息,包括节目说明以及草稿和定时单集
  • 读取单集、按月与按日的下载统计,Spotify 单独计数
  • 创建和编辑草稿单集,包括标题、节目说明、季数、音频、封面和文字稿
  • 从允许的本地目录上传 MP3 音频、封面图片和纯文本文字稿
  • 立即发布、定时或回溯发布单集,或将其退回私有草稿
适用场景
适合在 Fireside.fm 托管播客、希望助手查询单集详情和下载数据,或在不打开后台的情况下起草、修改和发布单集的场景。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node.js 22 或更高版本。必须在 FIRESIDE_API_TOKEN 中提供 Fireside API 密钥;可选 FIRESIDE_PODCAST 设置默认播客,FIRESIDE_READ_ONLY 仅启用读取工具,FIRESIDE_UPLOAD_DIRS 启用上传。需要能访问 Fireside 的网络。
安装前请注意
该 API 密钥覆盖账户下所有播客,并以明文保存在宿主的配置文件中。读写密钥允许创建、编辑、发布和取消发布单集,发布时还可能同步到播客已关联的社交账号。上传会把本地文件发送给 Fireside,应把 FIRESIDE_UPLOAD_DIRS 限制在必要目录。单集预览链接在正式发布前也能被任何持有者播放。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Fireside.fm (unofficial),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

firesidefm-mcp-server

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, create, edit, publish and unpublish episodes, and upload episode audio, cover art and transcripts.

This is an unofficial project. It is not affiliated with or endorsed by Fireside.

Requirements

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. A key can be switched between Read Only and Read/Write under Account > API Keys; restart the server afterwards, since it chooses its tools when it starts.

Configuration

VariableRequiredMeaning
FIRESIDE_API_TOKENyesYour Fireside API key (fire_…).
FIRESIDE_PODCASTnoToken or slug of the podcast to use when a request doesn't name one.
FIRESIDE_READ_ONLYnotrue to offer only the read tools, even with a Read/Write key.
FIRESIDE_UPLOAD_DIRSnoDirectories whose files may be uploaded, separated as in PATH (: on macOS and Linux, ; on Windows). Absolute paths; a leading ~/ stands for your home directory. Uploads are off when this is not set.

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.

fireside_upload_file is offered only with a Read/Write key and FIRESIDE_UPLOAD_DIRS set. It sends only files inside those directories (symbolic links are followed before the check, which is repeated once the file is open; a hard link cannot be told apart from the file it points to, and another program rewriting those directories at the same moment could race the check), so set it to the folders where you keep finished episode files rather than your home directory.

Both hosts below store the key in plain text in their configuration file.

Claude Code

sh
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.

Claude Desktop

Edit Claude Desktop's configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add an entry under mcpServers (create the object if the file doesn't have one yet):

json
{  "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.

Tools

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).

ToolNeeds Read/Write keyWhat it does
fireside_get_accountThe connected account and whether its key is Read Only or Read/Write.
fireside_list_podcastsPodcasts you own or collaborate on.
fireside_get_podcastOne podcast's details and all-time downloads.
fireside_list_episodesEpisodes, newest first, including drafts and scheduled ones; filter by status.
fireside_get_episodeEvery field of one episode, including show notes.
fireside_get_episode_metricsDownloads per episode at 1, 7, 14, 30 and 90 days, Spotify, and total.
fireside_get_monthly_downloadsDownloads per calendar month and the all-time total.
fireside_get_daily_downloadsDownloads per day for the podcast or one episode, with Spotify counted separately; up to a year per call.
fireside_create_episode✓Create a private draft episode, optionally with audio, cover art and a transcript.
fireside_update_episode✓Change title, subtitle, slug, show notes, season, type, explicit flag, audio, cover art or transcript.
fireside_upload_file✓Upload an MP3, cover image (JPG, PNG, GIF or WebP) or plain-text transcript from FIRESIDE_UPLOAD_DIRS, and attach it to an episode or return a file_url for create and update.
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.

Before uploading an MP3, the server reads its headers. A file that holds no MP3 audio (such as a renamed WAV) is refused. One that differs from the settings the Fireside dashboard suggests for MP3s (mono, 64–96 kb/s, 44.1 kHz) is stopped with a list of the differences; your assistant should ask you, and uploads it as it is only with accept_audio_specs: true. The audio limit depends on your Fireside plan, which the API does not report; Fireside checks the size before anything is sent, and the server then names the file's size as a likely cause.

Uploaded audio transfers to the episode in the background; audio_status on the episode shows processing, then ready or failed (with audio_error). Cover art and transcripts are attached during the call. Large audio files can take longer to upload than an MCP host allows for a tool call; in Claude Code, raise the limit with the MCP_TOOL_TIMEOUT environment variable (milliseconds).

Limitations

These come from the Fireside API itself:

  • Chapters cannot be uploaded through the API. Publishing an episode without audio fails.
  • Files must fit your plan's limits: cover art up to 1.91 MB, transcripts up to 195 KB, and audio within your plan's MP3 limit.
  • Episodes cannot be deleted, and podcast settings cannot be changed.
  • Publishing also posts to the podcast's connected social accounts when the episode is set to do so in the dashboard. The API cannot see or change that setting.
  • Daily downloads come back at most 90 days per request. The server combines requests, so one call covers up to a year; ask for longer periods in parts.
  • Requests are limited to 120 per minute per key. The server waits out short rate-limit pauses and reports longer ones.

Development

sh
npm installnpm run build       # compiles to dist/npm run typechecknpm test            # unit and in-process MCP tests; no networknpm run test:e2e    # builds, then runs dist/cli.js over stdio against a local stand-in APInpm run check       # all of the abovenpm 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.

License

MIT

来源:README.md,提交 fb3c4fd

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

3
  1. v0.3.0最新Oct 23, 2026
  2. v0.2.0Oct 14, 2026
  3. v0.1.0Oct 13, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分