Podcast MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PODCAST_WHISPER_MODEL | No | Whisper model to use as the machine default (e.g. small.en). | |
| PODCAST_MCP_NISQA_MODEL | No | Path to an unpacked NISQA weights directory if neural NISQA is needed. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| episode_createD | – |
| track_addD | – |
| track_add_empty_toolD | – |
| track_set_media_toolD | – |
| track_set_meta_toolD | – |
| track_remove_toolD | – |
| track_reorder_toolD | – |
| transcribe_trackD | – |
| get_transcriptD | – |
| export_transcriptD | – |
| precorrect_transcript_toolD | – |
| transcript_refine_status_toolD | – |
| transcript_refine_brief_toolD | – |
| transcript_refine_done_toolD | – |
| transcript_refine_waive_toolD | – |
| align_status_toolD | – |
| align_brief_toolD | – |
| align_done_toolD | – |
| align_waive_toolD | – |
| build_edit_contextD | – |
| search_transcript_toolD | – |
| cut_time_range_toolD | – |
| cut_text_match_toolD | – |
| cut_utterance_toolD | – |
| cut_words_toolD | – |
| apply_edit_plan_toolD | – |
| preview_inaudible_cut_toolA | Dry-run local inaudible-cut snap (~±80ms) for a proposed range. Not a multi-second narrative handoff planner. For leave-a-beat / clean-up-the-
transition / punchline-to-pivot bounds use |
| suggest_handoff_cut_toolA | Propose retain-then-snap ripple bounds for a narrative handoff. Use when cleaning up a transition, leaving a beat, or punchline-to-pivot —
not word timestamps and not |
| join_quality_toolD | – |
| join_qa_sweep_toolD | – |
| join_label_toolD | – |
| list_edit_decisions_toolD | – |
| approve_edits_toolD | – |
| reject_edits_toolD | – |
| update_pending_edit_toolD | – |
| revert_applied_edit_toolD | – |
| edit_impact_report_toolD | – |
| propose_editsA | Propose filler/pause tighten edits for review (does not apply them). Returns a JSON object |
| apply_editsD | – |
| strip_silence_toolC | Rebuild a track from speech islands between detected silences.
|
| ripple_delete_toolA | Ripple-delete a timeline range across dialogue tracks. Default inaudible opt absorbs trailing quiet air to ~0.4s before the next
word. For punchline-to-pivot / leave-a-beat handoffs, call
|
| ripple_delete_text_toolD | – |
| move_segment_toolD | – |
| move_clips_toolA | Move clips in session time and/or onto another track (no neighbor ripple).
|
| move_by_text_toolD | – |
| insert_gap_toolA | Open pure silence on the timeline (split + shift). Do not use to fake a beat after a tight handoff unless the user asks —
prefer keeping existing room tone via |
| fade_joins_toolD | – |
| crossfade_joins_toolD | – |
| set_clip_fade_toolD | – |
| set_join_mode_toolC | Set join_in_mode on one clip: fade | crossfade | cut (TOOL_TIMEBASE: na). |
| shorten_gaps_toolD | – |
| split_clip_toolA | Split clip(s) at a timeline timecode. Pass |
| duplicate_segment_toolD | – |
| list_clips_toolD | – |
| list_applied_edits_toolD | – |
| render_status_toolD | – |
| fill_with_room_tone_toolD | – |
| add_chapter_toolD | – |
| remove_chapter_toolD | – |
| list_chapters_toolD | – |
| check_loudness_toolD | – |
| correct_transcript_toolD | – |
| correct_transcript_phrase_toolD | – |
| set_word_suppressed_toolC | Toggle suppressed on one per-track word (TOOL_TIMEBASE: source). |
| apply_transcript_cleanup_toolB | Batch word + phrase fixes in one undoable history step. JSON: |
| low_confidence_words_toolD | – |
| verify_transcript_toolD | – |
| add_effect_toolD | – |
| remove_effect_toolD | – |
| set_effect_bypass_toolC | Toggle bypass on one chain effect by index (TOOL_TIMEBASE: na). |
| list_effects_toolD | – |
| analyze_cleanup_toolD | – |
| audio_diagnostics_toolD | – |
| recommend_fades_toolD | – |
| apply_fade_recommendations_toolD | – |
| low_audibility_words_toolD | – |
| apply_low_audibility_suppression_toolD | – |
| gate_overreach_toolD | – |
| audibility_map_toolD | – |
| flagged_words_toolD | – |
| reconciliation_status_toolD | – |
| reconcile_transcript_toolD | – |
| bleed_words_toolD | – |
| apply_bleed_suppression_toolD | – |
| overlap_duplicates_toolD | – |
| apply_transcript_gate_toolD | – |
| propose_social_clips_toolD | – |
| list_social_clips_toolD | – |
| approve_social_clips_toolD | – |
| reject_social_clips_toolD | – |
| social_clip_report_toolD | – |
| export_social_clips_toolD | – |
| add_comment_toolA | Add a timeline review comment (instant or span). Times are timeline seconds (session/deliverable clock), like chapters - not source-media time. Use search_transcript_tool's timeline_start/end when anchoring to dialogue. track_ids_json / action_texts_json are JSON arrays of strings (optional). Empty track_ids = session-wide. Undoable via history. Pass edit_decision_id to open the single Ask thread for a pending cut (unique per decision; later notes must use add_comment_reply_tool). |
| list_comments_toolA | List timeline review comments sorted by timeline_start. Pass include_resolved=false for an agent work queue, or open_actions_only=true for incomplete action items. Each row includes id, body, author, track_ids, action_items, resolved_*. |
| get_comment_toolA | Fetch one timeline comment by id (full action_items and resolve metadata). |
| update_comment_toolC | Update comment body, tracks, and/or timeline anchor. Times are timeline seconds. |
| resolve_comment_toolA | Mark a comment resolved (or reopen with resolved=false). Always pass by= identity (e.g. "agent" or the human name). Records resolved_by / resolved_at. Prefer resolving after action items are done. |
| add_comment_action_toolC | Append an action item TODO to an existing comment. |
| add_comment_reply_toolA | Append a flat reply under an existing timeline comment (threaded discussion). |
| set_comment_action_done_toolB | Check or uncheck a comment action item; records completed_by / completed_at. Agents should pass by="agent" (or a stable agent label) when finishing work. |
| delete_comment_toolA | Delete a timeline review comment (undoable via history). |
| publish_review_version_toolA | Freeze the current premix/mastered mix as a review version under artifacts/review/. Comments created while a version is active stamp review_version_id. prefer: "premix" (default) or "mastered". |
| list_review_versions_toolB | List frozen review mix versions (includes active flag). |
| set_active_review_version_toolA | Set or clear review.active_version_id (pass null/omit to clear). |
| pipeline_runA | Run the production pipeline. Optional skip_steps_json / config_json override yaml. When use_working_set is true (default), also reads/writes the GUI session
working set so agents and Sharecut Studio share the same visible config.
Omit |
| pipeline_get_config_toolA | Return effective pipeline config, step metadata, and param schema (same as GUI). |
| pipeline_set_config_toolC | Update the shared GUI/agent pipeline working set (visible params). |
| pipeline_analyze_toolC | Heuristic Analyze: propose pipeline param patches from audio diagnostics. |
| set_envelopeD | – |
| render_previewD | – |
| render_finalD | – |
| export_audio_toolC | Encode mastered audio to export/ using pipeline.yaml formats or a JSON override. |
| bounce_audio_toolA | Bounce selected (or all) stems to export/bounces/ without mastering. Times are timeline seconds. |
| history_undoD | – |
| history_redoD | – |
| history_listD | – |
| history_status_toolD | – |
| history_goto_toolD | – |
| history_diff_toolD | – |
| history_recordD | – |
| play_audio_toolC | Extract and optionally play audio (processed:, track:, premix, export). |
| play_transcript_query_toolC | Search transcript for query and play that span (NL: play where they talk about X). |
| audition_context_toolB | Caption each dialogue track in a timeline window + clip-skew / render freshness.
|
| play_compose_toolB | Mix selected tracks for a timeline window and optionally play (no project mutation).
|
| play_ab_toolA | Extract the same range at two history indices, then play A→gap→B once. Prefer this over history_goto → play → goto → play for before/after probes.
Leaves the history cursor on |
| play_ab_wavs_toolB | Play two existing WAVs back-to-back with a short silence gap (one concat). |
| play_pending_preview_toolB | Hear Current vs Suggested (skip-span) vs A/B for a pending session remove. Suggested concatenates pad-before + pad-after so the cut is gone. Splits and track-scope punches are not skippable. Does not mutate the project. |
| record_state_toolA | Read the live recording-room snapshot (roster, take clock, consent). |
| record_start_toolB | Host Start for the current record room (blocked until guests consent). |
| record_pause_toolC | Host Pause for the current take. |
| record_resume_toolD | Host Resume for a paused take. |
| record_stop_toolD | Host Stop for the current take. |
| record_land_toolC | Copy ACK'd keepers into raw/ and land live comments on the timeline. |
| record_discard_take_toolC | Delete a terminal take (refused while its upload manifest is in flight). |
| get_session_state_toolA | Read shared DAW/agent session state (playhead, region, mode, selection). |
| get_session_presence_toolB | Who is in the Sharecut Studio session: display names, cursor, selection, viewport, transport, follow relationships. |
| seek_session_toolB | Seek the open DAW playhead (no OS audio). Optional selection_json highlights a modifier. |
| set_session_selection_toolC | Highlight a DAW modifier: {kind, id?, track_id?, time?} or null to clear. |
| set_session_playing_toolB | Start or pause DAW browser transport (no OS audio). |
| stop_session_toolC | Pause DAW transport and clear the highlight region. |
| set_session_mode_toolA | Set DAW audition mode: mix | fx | raw. |
| set_session_region_toolC | Highlight a timeline region in the DAW; optionally start browser playback. |
| ingest_import_folder_toolC | Scan a recorder export folder and write ingest.yaml (audio-only, no copy). |
| ingest_suggest_alignment_toolC | Propose session_start offsets for multitrack ingest before consolidate. |
| ingest_verify_alignment_toolC | Audit consolidated dialogue tracks with VAD overlap on a timeline window. |
| play_compare_toolC | Play each dialogue track then premix for the same timeline range. |
| speaker_doctor_toolD | – |
| speaker_enroll_toolD | – |
| speaker_profiles_toolD | – |
| speaker_score_toolD | – |
| speaker_compare_window_toolD | – |
| speaker_compare_pair_toolD | – |
| speaker_label_toolD | – |
| speaker_set_count_toolD | – |
| speaker_attribute_toolD | – |
| speaker_gate_track_toolD | – |
| open_gui_toolA | Start the read-only DAW web viewer (background) and return its URL. Idempotent: if a healthy viewer is already listening on host:port, reuses it
and optionally opens the browser to this project. Requires the |
| create_review_share_toolA | Create a review share URL (Anyone with the link by default). role: optional Docs-like preset viewer|commenter|editor (overrides capabilities). capabilities: comma-separated play,view,comment,reply,action,suggest,edit,mcp. with_mcp: also grant capability-scoped remote MCP ({base}/mcp/{token}/mcp). general_access: link (default) or restricted (ACL + sign-in). require_sign_in: force login even on link shares. invite_emails: comma-separated emails to add to the ACL. |
| create_record_room_toolC | Mint a recording room: guest + producer /rec/ links (design: docs/recording-session.md). |
| revoke_record_room_toolC | End a recording room: revoke guest and producer tokens. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 160 tools
Several clusters overlap heavily (cut_time_range vs ripple_delete vs strip_silence; correct_transcript vs apply_transcript_cleanup vs reconcile_transcript; multiple speaker_* and play_* tools), and many tools have empty descriptions, so an agent cannot reliably pick the right one. The few descriptive entries (e.g. preview_inaudible_cut vs suggest_handoff_cut) show the set can disambiguate, but most tools lack that clarity.
Names mix noun_verb patterns (track_add, history_undo, pipeline_run) with verb_noun patterns (add_effect_tool, list_clips_tool, create_review_share_tool), and the _tool suffix is applied inconsistently (track_remove_tool vs track_add, add_comment vs delete_comment_tool). This makes the naming pattern unpredictable even though everything is lower_snake_case.
160 tools is an extreme count for a single MCP server and far beyond the 3-15 well-scoped range. The surface could be split into focused sub-servers (editing, transcript, review, recording, session) or consolidated into compound operations; as-is it will overwhelm context and selection.
The tool surface is exceptionally broad for podcast production—ingest, transcription, editing, mixing, review, history, session control, recording, and social clips are all covered. Minor gaps remain (e.g., episode lifecycle is only episode_create, no track listing, no effect parameter updates), but agents can usually work around them.