Transistor MCP Server
方便与 Transistor.fm API 交互,提供高效管理播客、剧集和访问分析的功能。
README
Transistor MCP 服务器
此 MCP 服务器提供与 Transistor.fm API 交互的工具,允许您管理播客、剧集和查看分析。
配置
将服务器添加到您的 MCP 设置配置文件中,并提供您的 Transistor API 密钥:
{
"mcpServers": {
"transistor": {
"command": "node",
"args": ["path/to/Transistor-MCP/build/index.js"],
"env": {
"TRANSISTOR_API_KEY": "your-api-key-here"
}
}
}
}
可用工具
get_authenticated_user
获取已验证用户帐户的详细信息。
{
// 无需参数
}
authorize_upload
获取用于上传音频文件的预签名 URL。 在使用本地音频文件创建剧集之前使用此方法。
{
"filename": string // 必需:要上传的音频文件的名称
}
响应包括:
- upload_url:用于上传文件的预签名 S3 URL
- content_type:上传时使用的内容类型(例如,“audio/mpeg”)
- expires_in:上传 URL 过期的秒数
- audio_url:创建剧集时使用的最终 URL
list_shows
列出您 Transistor.fm 帐户中的所有节目,按更新日期排序(最新在前)。 返回一个分页列表,每页 10 个项目。
{
"page": number, // 可选,默认为 0(第一页)
"per": number, // 可选,默认为每页 10 个项目
"private": boolean, // 可选:筛选私人节目
"query": string // 可选:搜索查询
}
注意:所有参数都是可选的。 调用此端点而不带参数将返回节目的第一页。
list_episodes
列出特定节目的剧集。
{
"show_id": string, // 必需
"page": number, // 可选,默认为 0
"per": number, // 可选,默认为 10
"query": string, // 可选:搜索查询
"status": string, // 可选:“published”、“draft”或“scheduled”
"order": string // 可选:“desc”(最新在前)或“asc”(最旧在前),默认为“desc”
}
get_episode
获取有关特定剧集的详细信息。
{
"episode_id": string, // 必需
"include": string[], // 可选:要包含的相关资源数组
"fields": { // 可选:稀疏字段集
"episode": string[], // 要包含的剧集字段
"show": string[] // 要包含的节目字段
}
}
get_analytics
获取节目或特定剧集的分析。 如果未提供日期,则默认为最近 14 天。
{
"show_id": string, // 必需
"episode_id": string, // 可选:包含剧集特定分析
"start_date": string, // 可选:格式“dd-mm-yyyy”,如果提供了 end_date,则为必需
"end_date": string // 可选:格式“dd-mm-yyyy”,如果提供了 start_date,则为必需
}
create_episode
创建一个新的剧集。
{
"show_id": string, // 必需
"title": string, // 必需
"audio_url": string, // 必需
"summary": string, // 可选
"description": string, // 可选:可能包含 HTML
"transcript_text": string, // 可选:完整剧集文字稿
"author": string, // 可选
"explicit": boolean, // 可选
"image_url": string, // 可选:剧集封面
"keywords": string, // 可选:逗号分隔的列表
"number": number, // 可选:剧集编号
"season_number": number, // 可选
"type": string, // 可选:“full”、“trailer”或“bonus”
"alternate_url": string, // 可选:覆盖 share_url
"video_url": string, // 可选:YouTube URL
"email_notifications": boolean, // 可选:覆盖节目设置
"increment_number": boolean // 可选:自动设置下一个剧集编号
}
update_episode
更新现有剧集。
{
"episode_id": string, // 必需
"title": string, // 可选
"summary": string, // 可选
"description": string, // 可选:可能包含 HTML
"transcript_text": string, // 可选:完整剧集文字稿
"author": string, // 可选
"explicit": boolean, // 可选
"image_url": string, // 可选:剧集封面
"keywords": string, // 可选:逗号分隔的列表
"number": number, // 可选:剧集编号
"season_number": number, // 可选
"type": string, // 可选:“full”、“trailer”或“bonus”
"alternate_url": string, // 可选:覆盖 share_url
"video_url": string, // 可选:YouTube URL
"email_notifications": boolean // 可选:覆盖节目设置
}
get_all_episode_analytics
获取节目所有剧集的分析。 如果未提供日期,则默认为最近 7 天。
{
"show_id": string, // 必需
"start_date": string, // 可选:格式“dd-mm-yyyy”,如果提供了 end_date,则为必需
"end_date": string // 可选:格式“dd-mm-yyyy”,如果提供了 start_date,则为必需
}
list_webhooks
列出节目的所有 Webhook。
{
"show_id": string // 必需
}
subscribe_webhook
订阅节目的 Webhook。
{
"event_name": string, // 必需:例如,“episode_created”
"show_id": string, // 必需
"url": string // 必需:接收 Webhook 事件的 URL
}
unsubscribe_webhook
取消订阅 Webhook。
{
"webhook_id": string // 必需
}
重要提示
- API 请求的速率限制为每 10 秒 10 个请求(如 (https://developers.transistor.fm/#:~:text=API%20requests%20are%20rate%2Dlimited,to%20use%20the%20API%20again.)[Transistor API 参考] 所述)
- 日期必须为“dd-mm-yyyy”格式
- 页码从 0 开始
- 所有端点都支持:
- 稀疏字段集:使用
fields[resource_type][]指定要返回的字段 - 包含相关资源:使用
include[]在单个请求中获取相关资源
- 稀疏字段集:使用
- Include 数组使用格式
["resource_name"] - Fields 对象指定要为每种资源类型返回的字段
- 所有工具都以 JSONAPI 格式返回数据,并带有适当的关系和元数据
使用示例
列出节目:
// 列出节目的第一页(默认行为)
const result = await use_mcp_tool({
server_name: "transistor",
tool_name: "list_shows",
arguments: {}
});
// 使用分页和筛选列出节目
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"]
}
}
});
获取节目分析:
// 获取最近 14 天的分析(默认行为)
const result = await use_mcp_tool({
server_name: "transistor",
tool_name: "get_analytics",
arguments: {
show_id: "123456"
}
});
// 获取特定日期范围的分析
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"
}
});
// 获取特定剧集的分析
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
}
});
获取所有剧集分析:
// 获取最近 7 天的所有剧集分析(默认行为)
const result = await use_mcp_tool({
server_name: "transistor",
tool_name: "get_all_episode_analytics",
arguments: {
show_id: "123456"
}
});
// 获取特定日期范围的所有剧集分析
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:
// 列出 Webhook
const webhooks = await use_mcp_tool({
server_name: "transistor",
tool_name: "list_webhooks",
arguments: {
show_id: "123456"
}
});
// 订阅 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"
}
});
// 取消订阅 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: {}
});
授权音频文件上传:
// 首先,获取预签名的上传 URL
const auth = await use_mcp_tool({
server_name: "transistor",
tool_name: "authorize_upload",
arguments: {
filename: "my-episode.mp3"
}
});
// 然后使用返回的 upload_url 通过 PUT 请求上传您的文件
// 最后,在创建剧集时使用返回的 audio_url:
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 功能尚未实现:
- 私人剧集功能(订阅者管理)
- GET /v1/subscribers
- GET /v1/subscribers/:id
- POST /v1/subscribers
- POST /v1/subscribers/batch
- PATCH /v1/subscribers/:id
- DELETE /v1/subscribers
- DELETE /v1/subscribers/:id
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。