Transistor MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows linking podcast episodes to YouTube videos by providing a video_url parameter when creating or updating episodes.

晶体管 MCP 服务器

该 MCP 服务器提供与Transistor.fm API 交互的工具,允许您管理播客、剧集和查看分析。

配置

使用您的 Transistor API 密钥将服务器添加到您的 MCP 设置配置文件中:

{ "mcpServers": { "transistor": { "command": "node", "args": ["path/to/Transistor-MCP/build/index.js"], "env": { "TRANSISTOR_API_KEY": "your-api-key-here" } } } }

可用工具

获取已验证用户

获取已验证用户帐户的详细信息。

{ // No parameters needed }

授权上传

获取用于上传音频文件的预签名 URL。在创建包含本地音频文件的剧集之前,请使用此 URL。

{ "filename": string // Required: Name of the audio file to upload }

响应包括:

  • upload_url:用于上传文件的预签名 S3 URL
  • content_type:上传时使用的内容类型(例如“audio/mpeg”)
  • expires_in:上传 URL 过期时间(秒)
  • audio_url:创建剧集时使用的最终 URL

列表节目

列出您 Transistor.fm 帐户中的所有节目,按更新日期排序(最新节目优先)。返回分页列表,每页包含 10 个项目。

{ "page": number, // Optional, defaults to 0 (first page) "per": number, // Optional, defaults to 10 items per page "private": boolean, // Optional: filter for private shows "query": string // Optional: search query }

注意:所有参数均为可选参数。不带参数调用此端点将返回节目的第一页。

列出剧集

列出特定节目的剧集。

{ "show_id": string, // Required "page": number, // Optional, defaults to 0 "per": number, // Optional, defaults to 10 "query": string, // Optional: search query "status": string, // Optional: "published", "draft", or "scheduled" "order": string // Optional: "desc" (newest first) or "asc" (oldest first), defaults to "desc" }

获取剧集

获取有关特定剧集的详细信息。

{ "episode_id": string, // Required "include": string[], // Optional: array of related resources to include "fields": { // Optional: sparse fieldsets "episode": string[], // Fields to include for episode "show": string[] // Fields to include for show } }

获取分析数据

获取某个节目或特定剧集的分析数据。如果未提供日期,则默认为过去 14 天。

{ "show_id": string, // Required "episode_id": string, // Optional: include for episode-specific analytics "start_date": string, // Optional: format "dd-mm-yyyy", required if end_date is provided "end_date": string // Optional: format "dd-mm-yyyy", required if start_date is provided }

创建情节

创建新剧集。

{ "show_id": string, // Required "title": string, // Required "audio_url": string, // Required "summary": string, // Optional "description": string, // Optional: may contain HTML "transcript_text": string, // Optional: full episode transcript "author": string, // Optional "explicit": boolean, // Optional "image_url": string, // Optional: episode artwork "keywords": string, // Optional: comma-separated list "number": number, // Optional: episode number "season_number": number, // Optional "type": string, // Optional: "full", "trailer", or "bonus" "alternate_url": string, // Optional: override share_url "video_url": string, // Optional: YouTube URL "email_notifications": boolean, // Optional: override show setting "increment_number": boolean // Optional: auto-set next episode number }

更新剧集

更新现有剧集。

{ "episode_id": string, // Required "title": string, // Optional "summary": string, // Optional "description": string, // Optional: may contain HTML "transcript_text": string, // Optional: full episode transcript "author": string, // Optional "explicit": boolean, // Optional "image_url": string, // Optional: episode artwork "keywords": string, // Optional: comma-separated list "number": number, // Optional: episode number "season_number": number, // Optional "type": string, // Optional: "full", "trailer", or "bonus" "alternate_url": string, // Optional: override share_url "video_url": string, // Optional: YouTube URL "email_notifications": boolean // Optional: override show setting }

获取所有剧集分析

获取某部剧集所有剧集的分析数据。如果未提供日期,则默认为过去 7 天的分析数据。

{ "show_id": string, // Required "start_date": string, // Optional: format "dd-mm-yyyy", required if end_date is provided "end_date": string // Optional: format "dd-mm-yyyy", required if start_date is provided }

列表_webhooks

列出节目的所有 webhook。

{ "show_id": string // Required }

订阅 webhook

订阅节目的 webhook。

{ "event_name": string, // Required: e.g., "episode_created" "show_id": string, // Required "url": string // Required: URL to receive webhook events }

取消订阅webhook

取消订阅 webhook。

{ "webhook_id": string // Required }

重要提示

  • API 请求的速率限制为每 10 秒 10 次(如 ( https://developers.transistor.fm/#:~:text=API requests are rate-limited,to use the API again.)\[Transistor\[Transistor) API 参考] 所规定)
  • 日期必须采用“dd-mm-yyyy”格式
  • 页码从 0 开始
  • 所有端点都支持:
    • 稀疏字段集:使用fields[resource_type][]指定要返回的字段
    • 包含相关资源:使用include[]在单个请求中获取相关资源
  • 包含数组使用格式["resource_name"]
  • 字段对象指定每个资源类型返回哪些字段
  • 所有工具都以 JSONAPI 格式返回具有适当关系和元数据的数据

示例用法

列表显示:

// List first page of shows (default behavior) const result = await use_mcp_tool({ server_name: "transistor", tool_name: "list_shows", arguments: {} }); // List shows with pagination and filtering const resultWithParams = await use_mcp_tool({ server_name: "transistor", tool_name: "list_shows", arguments: { page: 1, per: 20, private: true, query: "podcast" } });

获取剧集详情:

const result = await use_mcp_tool({ server_name: "transistor", tool_name: "get_episode", arguments: { episode_id: "123456", include: ["show"], fields: { episode: ["title", "summary", "description"], show: ["title"] } } });

获取节目分析:

// Get analytics for the last 14 days (default behavior) const result = await use_mcp_tool({ server_name: "transistor", tool_name: "get_analytics", arguments: { show_id: "123456" } }); // Get analytics for a specific date range const resultWithDates = await use_mcp_tool({ server_name: "transistor", tool_name: "get_analytics", arguments: { show_id: "123456", start_date: "01-01-2024", end_date: "31-01-2024" } }); // Get analytics for a specific episode const episodeAnalytics = await use_mcp_tool({ server_name: "transistor", tool_name: "get_analytics", arguments: { show_id: "123456", episode_id: "789012", start_date: "01-01-2024", end_date: "31-01-2024" } });

更新剧集:

const result = await use_mcp_tool({ server_name: "transistor", tool_name: "update_episode", arguments: { episode_id: "123456", title: "Updated Episode Title", summary: "New episode summary", description: "New detailed description", season_number: 2, episode_number: 5 } });

获取所有剧集分析:

// Get analytics for all episodes for the last 7 days (default behavior) const result = await use_mcp_tool({ server_name: "transistor", tool_name: "get_all_episode_analytics", arguments: { show_id: "123456" } }); // Get analytics for all episodes for a specific date range const resultWithDates = await use_mcp_tool({ server_name: "transistor", tool_name: "get_all_episode_analytics", arguments: { show_id: "123456", start_date: "01-01-2024", end_date: "31-01-2024" } });

管理 webhook:

// List webhooks const webhooks = await use_mcp_tool({ server_name: "transistor", tool_name: "list_webhooks", arguments: { show_id: "123456" } }); // Subscribe to webhook const subscription = await use_mcp_tool({ server_name: "transistor", tool_name: "subscribe_webhook", arguments: { event_name: "episode_created", show_id: "123456", url: "https://your-webhook-endpoint.com/hook" } }); // Unsubscribe from webhook const unsubscribe = await use_mcp_tool({ server_name: "transistor", tool_name: "unsubscribe_webhook", arguments: { webhook_id: "webhook123" } });

获取已认证用户:

const result = await use_mcp_tool({ server_name: "transistor", tool_name: "get_authenticated_user", arguments: {} });

授权音频文件上传:

// First, get a pre-signed upload URL const auth = await use_mcp_tool({ server_name: "transistor", tool_name: "authorize_upload", arguments: { filename: "my-episode.mp3" } }); // Then use the returned upload_url to upload your file via PUT request // Finally, use the returned audio_url when creating your episode: const episode = await use_mcp_tool({ server_name: "transistor", tool_name: "create_episode", arguments: { show_id: "123456", title: "My New Episode", audio_url: auth.data.attributes.audio_url } });

尚未实施

以下 Transistor API 功能尚未实现:

  • 私人剧集功能(订阅者管理)
    • 获取 /v1/订阅者
    • 获取 /v1/subscribers/:id
    • POST /v1/订阅者
    • POST /v1/subscribers/batch
    • PATCH /v1/订阅者/:id
    • 删除 /v1/订阅者
    • 删除/v1/订阅者/:id
-
security - not tested
A
license - permissive license
-
quality - not tested

促进与 Transistor.fm API 的交互,提供有效管理播客、剧集和访问分析的功能。

  1. Configuration
    1. Available Tools
      1. get_authenticated_user
      2. authorize_upload
      3. list_shows
      4. list_episodes
      5. get_episode
      6. get_analytics
      7. create_episode
      8. update_episode
      9. get_all_episode_analytics
      10. list_webhooks
      11. subscribe_webhook
      12. unsubscribe_webhook
    2. Important Notes
      1. Example Usage
        1. Not Yet Implemented
          ID: xyvobqi3am