Transistor MCP Server

by gxjansen

1 stars
Not rated
GitHub

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

Setting up with Highlight

Follow these steps to add this server as a custom Highlight plugin:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Transistor MCP Server
    Command (node, npx, python, etc.) node
    Arguments
    • 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.

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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.