PodLearn
What this MCP does
Searches podcasts and YouTube, transcribes episodes, searches transcripts, generates structured lessons, and creates LinkedIn posts.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 12, 'maximum': 40, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Optional title/host filter'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['episode_id'], 'properties': {'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lesson_id': {'type': 'string', 'format': 'uuid'}, 'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['episode_id'], 'properties': {'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lesson_id'], 'properties': {'lesson_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['podcast_id'], 'properties': {'podcast_id': {'type': 'integer', 'description': 'Local podcast id'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['episode_id'], 'properties': {'offset': {'type': 'integer', 'minimum': 0, 'description': 'Character offset to start from (default 0). Use next_offset from a prior page.'}, 'max_chars': {'type': 'integer', 'maximum': 120000, 'minimum': 2000, 'description': 'Max characters to return this call (default & max 120000).'}, 'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['episode_id'], 'properties': {'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['podcast_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'status': {'enum': ['completed', 'processing', 'failed', 'not_started'], 'type': 'string'}, 'podcast_id': {'type': 'integer', 'description': 'Local podcast_id from search_podcasts'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['feed_id'], 'properties': {'max': {'type': 'integer', 'default': 20, 'maximum': 200, 'minimum': 1}, 'since': {'type': 'integer', 'description': 'Unix seconds â\x80\x94 published AFTER'}, 'before': {'type': 'integer', 'description': 'Unix seconds â\x80\x94 published BEFORE (pagination)'}, 'feed_id': {'type': 'string', 'description': 'PodcastIndex feed_id (the `id` from a search_podcasts result)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'category': {'type': 'string', 'description': 'Filter by category (e.g. "Technology")'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['saved_item_id'], 'properties': {'saved_item_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['item_type', 'item_id'], 'properties': {'item_id': {'type': 'string', 'description': 'UUID of the episode or lesson to save'}, 'item_type': {'enum': ['episode', 'lesson'], 'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Topic, keyword, or host name'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'status': {'enum': ['transcribed', 'untranscribed', 'completed', 'processing', 'failed', 'not_started'], 'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search keywords or a podcast URL'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['episode_id', 'query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Topic, phrase, or speaker name'}, 'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'max': {'type': 'integer', 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['episode_id'], 'properties': {'episode_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['feed_id'], 'properties': {'max': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Max episodes to enqueue (default 10, cap 25)'}, 'since': {'type': 'integer', 'description': 'Optional unix-seconds; only episodes published AFTER'}, 'before': {'type': 'integer', 'description': 'Optional unix-seconds; only episodes published BEFORE (page back)'}, 'feed_id': {'type': 'string', 'description': 'PodcastIndex feed id (from a search_podcasts / list_feed_episodes result)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audio_url', 'title'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': "Episode title â\x80\x94 shown in the user's library"}, 'feed_id': {'type': 'string', 'description': 'Optional: local podcasts.id / PodcastIndex feed id of the parent show, if known. Looked up only â\x80\x94 never creates a show.'}, 'language': {'type': 'string', 'description': 'BCP-47 hint (e.g. "en", "he"). Auto-detect if omitted.'}, 'audio_url': {'type': 'string', 'format': 'uri', 'description': 'Direct audio URL (mp3, m4a, or platform URL)'}, 'podcast_id': {'type': 'integer', 'description': 'Existing parent podcast_id, if any'}, 'podcast_name': {'type': 'string', 'description': 'Optional: exact parent show title, if known and feed_id is unavailable. Matched only when it resolves to EXACTLY ONE existing show.'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
Soluble(s) — Podcast de journalisme de solutions
Searches French solutions-journalism podcast episodes and transcripts, including child-friendly versions and practical actions.
Social Fetch
Retrieves public content and metadata from social networks, music services, Facebook Marketplace, events, profiles, posts, commen…
Heista
Analyzes video advertising, builds brand intelligence profiles, researches markets, and generates advertising scripts and creativ…
concordance
Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…
Lodi Kids Activities
Searches and manages a directory of youth programs, family events, and licensed daycares in Lodi, California, including listings,…
VarynForge
Supports SEO research and content planning through niche analysis, competitor and keyword research, opportunity discovery, and wr…
Tmdb
Provides TMDB-based movie, television, and people discovery, metadata, credits, recommendations, videos, and trend-related entert…
AfterLaunch: the agentic growth marketing engine
Runs growth-marketing workflows covering SEO, AI-search visibility, competitor analysis, content planning, distribution channels,…