Transistor MCP Server
About
Facilitates interaction with the Transistor.fm API, offering capabilities to manage podcasts, episodes, and access analytics efficiently.
Details
- Author
- gxjansen
- Repository
- gxjansen/Transistor-MCP
- GitHub stars
- 1
- License
- MIT License
- Categories
- Cloud Service, Infrastructure, Media, Developer Tools, Productivity, Design, File Management, AI, Frontend, API, Automation
Jump to
Setting up with Highlight
Follow these steps to add this server as a custom Highlight plugin:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Transistor MCP ServerCommand (node, npx, python, etc.)nodeArguments-
Argument 1
path/to/Transistor-MCP/build/index.js
Environment-
TRANSISTOR_API_KEY
your-api-key-here
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Add the server to your MCP settings configuration file with your Transistor API key:
{
"mcpServers": {
"transistor": {
"command": "node",
"args": ["path/to/Transistor-MCP/build/index.js"],
"env": {
"TRANSISTOR_API_KEY": "your-api-key-here"
}
}
}
}
get_authenticated_user
Get details of the authenticated user account. No parameters needed.
authorize_upload
Get a pre-signed URL for uploading an audio file. Parameters: filename (string) - Name of the audio file to upload.
list_shows
List all shows in your Transistor.fm account, ordered by updated date. Parameters: page (number, optional), per (number, optional), private (boolean, optional), query (string, optional).
list_episodes
List episodes for a specific show. Parameters: show_id (string, required), page (number, optional), per (number, optional), query (string, optional), status (string, optional), order (string, optional).
get_episode
Get detailed information about a specific episode. Parameters: episode_id (string, required), include (string[], optional), fields (object, optional).
get_analytics
Get analytics for a show or specific episode. Parameters: show_id (string, required), episode_id (string, optional), start_date (string, optional), end_date (string, optional).
create_episode
Create a new episode. Parameters: show_id (string, required), title (string, required), audio_url (string, required), summary (string, optional), description (string, optional), transcript_text (string, optional), author (string, optional), explicit (boolean, optional), image_url (string, optional), keywords (string, optional), number (number, optional), season_number (number, optional), type (string, optional), alternate_url (string, optional), video_url (string, optional), email_notifications (boolean, optional), increment_number (boolean, optional).
update_episode
Update an existing episode. Parameters: episode_id (string, required), title (string, optional), summary (string, optional), description (string, optional), transcript_text (string, optional), author (string, optional), explicit (boolean, optional), image_url (string, optional), keywords (string, optional), number (number, optional), season_number (number, optional), type (string, optional), alternate_url (string, optional), video_url (string, optional), email_notifications (boolean, optional).
get_all_episode_analytics
Get analytics for all episodes of a show. Parameters: show_id (string, required), start_date (string, optional), end_date (string, optional).
list_webhooks
List all webhooks for a show. Parameters: show_id (string, required).
subscribe_webhook
Subscribe to a webhook for a show. Parameters: event_name (string, required), show_id (string, required), url (string, required).
unsubscribe_webhook
Unsubscribe from a webhook. Parameters: webhook_id (string, required).
get_show
Get a show by ID. Parameters: show_id (string, required).
update_show
Update a show. Parameters: show_id (string, required), author (string, optional), category (string, optional), copyright (string, optional), description (string, optional), explicit (boolean, optional), image_url (string, optional), keywords (string, optional), language (string, optional), owner_email (string, optional), secondary_category (string, optional), show_type (string, optional), title (string, optional), time_zone (string, optional), website (string, optional).
publish_episode
Publish or schedule an episode without otherwise editing its metadata. Parameters: episode_id (string, required), status (string, required), published_at (string, optional).
get_download_summary
Get a computed download summary for a show or episode. Parameters: show_id (string, required), episode_id (string, optional), start_date (string, optional), end_date (string, optional).
compare_episodes
Compare download performance across multiple episodes. Parameters: episode_ids (string[], required), start_date (string, optional), end_date (string, optional).
list_subscribers
List subscribers for a show. Parameters: show_id (string, required), page (number, optional), per (number, optional), query (string, optional).
get_subscriber
Get a subscriber by ID. Parameters: subscriber_id (string, required).
create_subscriber
Create a subscriber. Parameters: show_id (string, required), email (string, required), skip_welcome_email (boolean, optional).
create_subscribers_batch
Create multiple subscribers in a single request. Parameters: show_id (string, required), emails (string[], required), skip_welcome_email (boolean, optional).
update_subscriber
Update a subscriber's email. Parameters: subscriber_id (string, required), email (string, required).
delete_subscriber
Delete a subscriber. Provide either subscriber_id, OR both show_id and email. Parameters: subscriber_id (string, optional), show_id (string, optional), email (string, optional).
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"transistor mcp server": {
"env": {
"TRANSISTOR_API_KEY": "your-api-key-here"
},
"args": [
"path/to/Transistor-MCP/build/index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"TRANSISTOR_API_KEY": "your-api-key-here"
},
"args": [
"path/to/Transistor-MCP/build/index.js"
],
"command": "node"
}
Macos
{
"env": {
"TRANSISTOR_API_KEY": "your-api-key-here"
},
"args": [
"path/to/Transistor-MCP/build/index.js"
],
"command": "node"
}
Windows
{
"env": {
"TRANSISTOR_API_KEY": "your-api-key-here"
},
"args": [
"/c",
"node",
"path/to/Transistor-MCP/build/index.js"
],
"command": "cmd"
}
This MCP server provides tools to interact with theTransistor.fmAPI, allowing you to manage podcasts, episodes, and view analytics.
Add the server to your MCP settings configuration file with your Transistor API key:
{ "mcpServers": { "transistor": { "command": "node", "args": ["path/to/Transistor-MCP/build/index.js"], "env": { "TRANSISTOR_API_KEY": "your-api-key-here" } } } }
Get details of the authenticated user account.
Get a pre-signed URL for uploading an audio file. Use this before creating an episode with a local audio file.
{ "filename": string // Required: Name of the audio file to upload }
- upload_url: Pre-signed S3 URL for uploading the file
- content_type: Content type to use when uploading (e.g., "audio/mpeg")
- expires_in: Time in seconds until the upload URL expires
- audio_url: Final URL to use when creating the episode
List all shows in your Transistor.fm account, ordered by updated date (newest first). Returns a paginated list with 10 items per page.
{ "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 }
Note: All parameters are optional. Calling this endpoint without parameters will return the first page of shows.
{ "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" }
Get detailed information about a specific episode.
{ "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 } }
Get analytics for a show or specific episode. Defaults to the last 14 days if no dates are provided.
{ "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 }
Get analytics for all episodes of a show. Defaults to the last 7 days if no dates are provided.
{ "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 }
{ "show_id": string // Required }
{ "event_name": string, // Required: e.g., "episode_created" "show_id": string, // Required "url": string // Required: URL to receive webhook events }
{ "webhook_id": string // Required }
show_id: string // Required author: string // Optional category: string // Optional copyright: string // Optional description: string // Optional explicit: boolean // Optional image_url: string // Optional keywords: string // Optional language: string // Optional owner_email: string // Optional secondary_category: string // Optional show_type: "episodic" | "serial" // Optional title: string // Optional time_zone: string // Optional website: string // Optional
Publish or schedule an episode without otherwise editing its metadata.
episode_id: string // Required status: "published" | "scheduled" | "draft" // Required published_at: string // Optional
Get a computed download summary for a show or episode. Returns total downloads, daily average, week-over-week trend, and best/worst day.
show_id: string // Required episode_id: string // Optional start_date: string // Optional end_date: string // Optional
Compare download performance across multiple episodes, sorted by total downloads.
episode_ids: string[] // Required - array of episode IDs start_date: string // Optional end_date: string // Optional
show_id: string // Required page: number // Optional per: number // Optional query: string // Optional
show_id: string // Required email: string // Required skip_welcome_email: boolean // Optional
show_id: string // Required emails: string[] // Required skip_welcome_email: boolean // Optional
- API requests are rate-limited to 10 requests per 10 seconds (as prescribed by the ([](https://developers.transistor.fm/#:~:text=API%20requests%20are%20rate%2Dlimited,to%20use%20the%20API%20again.)%5BTransistor)<<<https://developers.transistor.fm/#:~:text=API%20requests%20are%20rate%2Dlimited,to%20use%20the%20API%20again.)[TransistorAPI reference])
- Dates accept ISOyyyy-mm-dd(recommended) and are converted to the Transistor API'sdd-mm-yyyyautomatically;dd-mm-yyyyis also accepted
- Page numbers start at 0
- All endpoints support:
- Sparse fieldsets: Specify which fields to return usingfields[resource_type][]
- Including related resources: Useinclude[]to fetch related resources in a single request
// 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" } });
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 } });
Navigate your Aiven projects and interact with the PostgreSQL®, Apache Kafka®, ClickHouse® and OpenSearch® services
Yunxiao MCP Server provides AI assistants with the ability to interact with the Yunxiao platform.
Get prescriptive CDK advice, explain CDK Nag rules, check suppressions, generate Bedrock Agent schemas, and discover AWS Solutions Constructs patterns.
This AWS Labs Model Context Protocol (MCP) server for CloudTrail enables your AI agents to query AWS account activity for security investigations, compliance auditing, and operational troubleshooting.
Core AWS MCP server providing prompt understanding and server management capabilities.
Analyze CDK projects to identify AWS services used and get pricing information from AWS pricing webpages and API.
Query and analyze your Axiom logs, traces, and all other event data in natural language
Manage and interact with Microsoft Azure services.
Bastion: External Attack Surface Monitoring
Ask your AI assistant about your attack surface: run scans, catch expiring certificates and domains, triage findings, and generate reports.
Agent-ready global image CDN that AI agents can install and operate through MCP.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.

