Skip to main content
Glama
569,412 tools. Updated 2026-09-14 23:50

"Text-to-speech tools for turning stories into podcasts" matching MCP tools:

  • Page through one build's stories filtered by status (resolved by commitSha/prNumber/buildId). Use it to read past get_build's first page, or to browse the unchanged/passed stories get_build only counts. status='changed' returns changed stories (same shape + order as get_build, regression-first); status='failed' returns failed stories; status='unchanged' returns the stories that did NOT change this build but have a baseline on this branch (storyId, viewport, browser) - fetch any of their images by storyId with get_diff or render_diff_image to confirm 'identical to baseline'. Returns { stories, nextCursor }: pass nextCursor back as `cursor` for the next page; null means no more. limit defaults to 25 (max 100). Unchanged is only available once the build has settled (an in-progress build has rendered nothing, so it returns an empty page).
    ConnectorNo auth
  • Page through one build's stories filtered by status (resolved by commitSha/prNumber/buildId). Use it to read past get_build's first page, or to browse the unchanged/passed stories get_build only counts. status='changed' returns changed stories (same shape + order as get_build, regression-first); status='failed' returns failed stories; status='unchanged' returns the stories that did NOT change this build but have a baseline on this branch (storyId, viewport, browser) - fetch any of their images by storyId with get_diff or render_diff_image to confirm 'identical to baseline'. Returns { stories, nextCursor }: pass nextCursor back as `cursor` for the next page; null means no more. limit defaults to 25 (max 100). Unchanged is only available once the build has settled (an in-progress build has rendered nothing, so it returns an empty page).
    ConnectorNo auth
  • Reverse percent-encoding with decodeURIComponent, turning %20-style escapes back into the characters they stand for. Returns JSON { decoded }. A malformed or truncated escape sequence is rejected with an error rather than passed through. Note that '+' is left as a literal plus, not converted to a space. It understands percent-escapes and nothing else: Base64 text and JWTs pass through unchanged or fail, rather than being decoded. It is the exact inverse of encode_url.
    ConnectorNo auth
  • Reverse percent-encoding with decodeURIComponent, turning %20-style escapes back into the characters they stand for. Returns JSON { decoded }. A malformed or truncated escape sequence is rejected with an error rather than passed through. Note that '+' is left as a literal plus, not converted to a space. It understands percent-escapes and nothing else: Base64 text and JWTs pass through unchanged or fail, rather than being decoded. It is the exact inverse of encode_url.
    ConnectorNo auth
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Rebalance the ORIGINAL footage's music vs its speech — the answer to 'remove the background music but keep the talking', 'the song is too loud under his voice', 'keep only the music'. The soundtrack is separated into speech/vocals + everything-else (once per video, then cached) and each side plays at its own gain: music_gain_db=-60 mutes the music, voice_gain_db=-60 mutes the speech, -12 ducks, 0 leaves untouched (range -60..+6). This changes ONLY the original footage's own audio — added music tracks are add_music/remove_music, NOT this. Not surgical on dense mixes — check the preview before promising total silence.
    ConnectorOAuth
  • Fetch a single post by id: views, likes, comments, engagement rate, outlier scores for seven time windows, thumbnail and the owning profile. When a transcript or visual analysis already exists it is included at no extra cost. The visual analysis is a structured scene-by-scene breakdown (per-scene timing, on-screen text, visual elements and a recreation note) plus an overall-style summary. Request new enrichment via request_transcript (speech / on-screen text) or request_visual_analysis (scene breakdown). Use after search_outliers to deep-dive a result. Cost: 1 credit per call.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Generate highly realistic Text to Speech voiceovers.

  • An MCP server that provides tools to discover and retrieve podcast episodes transcripts.

  • Fetch current trending crypto stories with sentiment analysis ## When to use vs `combined_trends_tool` Prefer this tool when only stories are needed: it is the cheap, fast path and has no per-tool rate-limit sub-cap. `combined_trends_tool` is a superset — same stories plus trending words, their context and AI-generated bull/bear summaries — but it calls an LLM, so it is slower and capped much lower per plan. Use it only when trending *words* or those summaries are actually needed, and never call both for the same question. ## Parameters - `time_period` - Time period for trending stories (e.g., '1h', '6h', '1d', '7d'). Defaults to '1h' (last hour). - `size` - Number of trending stories to return (max 10). Defaults to 10. ## Response - `trending_stories` - List of trending stories. - `time_period` - Time period for trending stories. - `size` - Number of trending stories to return. - `period_start` - Start time of the time period. - `period_end` - End time of the time period. - `total_time_periods` - Total number of time periods. ## Trending stories - `title` - Title of the story. - `summary` - Summary of the story. - `bearish_sentiment_ratio` - Bearish sentiment ratio. - `bullish_sentiment_ratio` - Bullish sentiment ratio. - `score` - Score of the story. - `query` - Query used to find the story. - `related_tokens` - List of related tokens. They have the format `BTC_bitcoin` - first part is the ticker, second part is the slug in Sanbase.
    ConnectorNo auth
  • Page through the PR-vs-base changeset stories of one kind (resolved by commitSha/prNumber/buildId) - use it to read past get_pr_changeset's first page. kind='new' returns stories the PR adds that the base branch has no baseline for; kind='changed' returns stories whose image differs from the base branch's accepted image (even if accepted mid-PR, with status=accepted); kind='removed' returns stories that HAD a baseline on the base branch but are gone from head (a deletion; each carries lastBuildId, not a review status or verdict). Returns { stories, nextCursor }: pass nextCursor back as `cursor` for the next page; null means no more. limit defaults to 25 (max 100). Requires the PR visual changeset feature.
    ConnectorNo auth
  • RAW text-to-speech from the voice-model catalog: speak a script in a chosen voice and return the served MP3 URL. For a standalone voiceover / narration clip — NOT for adding audio to a video (render_ad and generate_video voice their own spots; change_voice re-voices a finished clip). engine picks the voice model (default 'seed-audio'; also 'eleven-v3', 'minimax-speech', 'kokoro'); voice is a preset name from that engine (see hermoso_capabilities → voice engines) — a name that engine does not have is REFUSED for free with its real list, and a few engines generate their own voice and take no preset at all (the reply says which voice actually spoke). Paid (a couple of credits by length; ≤900 characters).
    ConnectorNo auth
  • Page through the PR-vs-base changeset stories of one kind (resolved by commitSha/prNumber/buildId) - use it to read past get_pr_changeset's first page. kind='new' returns stories the PR adds that the base branch has no baseline for; kind='changed' returns stories whose image differs from the base branch's accepted image (even if accepted mid-PR, with status=accepted); kind='removed' returns stories that HAD a baseline on the base branch but are gone from head (a deletion; each carries lastBuildId, not a review status or verdict). Returns { stories, nextCursor }: pass nextCursor back as `cursor` for the next page; null means no more. limit defaults to 25 (max 100). Requires the PR visual changeset feature.
    ConnectorNo auth
  • Returns the calendar of the trade data: first and last published month (YYYYMM), whether the current year is partial, the last fully closed month, and when the aggregates were last refreshed. `response_format` is the only input; the answer covers the whole dataset, so there is no window or product to narrow it with. This answers 'até quando tem dado?' and 'qual o último mês?' — the CALENDAR, never figures. Turning that calendar into a like-for-like window is kyrodata_resolve_comparison_window; reading the figures inside it is kyrodata_get_heading_overview. Credit class: free (0 credits).
    ConnectorAPI key
  • A guest's podcast-appearance profile: lifetime stats (appearances, distinct podcasts, first/last appearance) plus their most frequent podcasts. Guests are people — the same slug works with `particle_person_get` for the biographical profile. Request optional sections via `include`: 'appearances' for the most recent episode appearances (episode and podcast slugs included for follow-up calls), 'podcasts' for the per-podcast rollup, 'suitability' for brand-suitability exposure across the podcasts they appear on, 'recommended_podcasts' for the five shows they could plausibly appear on next — shows related to the ones they have guested on, minus those, with the venues behind each pick (the pitch list; branch on each row's band). Returns not_found for people who exist but have never appeared on a podcast — use `particle_person_get` for those.
    ConnectorOAuth
  • Design a new voice from a character description (such as "deep-voiced warrior" or "cheerful young girl") and have it speak a short line of text, returning a sample of that newly created voice. Both voice_description and text are required, the spoken text is limited to 200 characters or the call returns HTTP 400, and type selects "human" or "non-human" voices. The job result is a single audio result containing a URL. Credits are charged on success. Use this to invent and audition a voice from a description; use createSpeech for text-to-speech that clones a specific voice from an audio sample, and createSpeechPreset for text-to-speech using a named preset voice. Pass an optional request_id to tag the result so you can locate it later via `GET /assets/audio/results`. Requires an API key (user scope). Returns 202 with a job id immediately; poll `getApiJob` (pass `wait: 30`) until status is succeeded, then read its `result` field, which is exactly the response documented for this operation. Each account may have up to 50 generations queued or running at once; beyond that submissions return 429 (PENDING_JOBS_LIMIT) - wait for jobs to finish. Credits: This endpoint consumes 1 credits per call.
    ConnectorNo auth
  • Convert text to speech by cloning the voice from an audio sample you provide (voice-cloning text-to-speech). Both text and sample are required; the text is limited to 1000 characters and the sample is supplied as a URL or base64 audio that must be at most 15MB, with violations returning HTTP 400. The job result is a single audio result containing a URL. Credits are charged on success. Use this when you have a reference voice sample to clone; use createSpeechPreset to speak with a built-in named preset voice instead, and createVoice to design a brand-new voice from a text description rather than cloning one. Pass an optional request_id to tag the result so you can locate it later via `GET /assets/audio/results`. Requires an API key (user scope). Returns 202 with a job id immediately; poll `getApiJob` (pass `wait: 30`) until status is succeeded, then read its `result` field, which is exactly the response documented for this operation. Each account may have up to 50 generations queued or running at once; beyond that submissions return 429 (PENDING_JOBS_LIMIT) - wait for jobs to finish. Credits: This endpoint consumes 1 credits per call.
    ConnectorNo auth
  • Read one named signal. Permitted signals return their bounded latest payload; China-economic signals in the denied lineage closure return explicit restricted/unavailable rights metadata and no values. Call list_signals first to discover valid names. Use this for the AI-model-evaluation side too: 'eval-registry' returns the pre-registered, hash-chained eval ledger with its verified flag and Merkle root, 'gfi-transcripts' returns a bounded view of the complete GFI v2 response matrix, and 'refusal-drift' returns the current frontier-model refusal reading on the frozen benign probe set; read 'eval-assurance' before turning either into a validity claim, and 'eval-journal' for the evidence-bound explanation and source receipts, or 'eval-findings' for the current deterministic article edition. Distinct from gfw_reading, which merges the two Great Firewall layers into one combined view.
    ConnectorNo auth
  • Set voiceover text and/or trigger speech generation for any number of clips in a single call. Each entry chooses its own action: - "set_text" — set transcript for a clip (clip_index + text) - "generate_speech" — async TTS for a clip (clip_id; returns immediately) - "set_and_generate" — set text and kick off TTS in one entry (clip_index + clip_id + text) Entries within one call are applied in order. Returns one result object per input entry. All text-set actions land in ONE save; the TTS for generate/set_and_generate runs async per clip after. IMPORTANT — generating speech retimes the clip: when audio is generated (generate_speech / set_and_generate), the clip's duration is reset to the spoken audio length (auto-fit). Any element start/end times you authored against a planned duration then play against that new length, and element time past the audio end is cut. So size timings against the spoken length: estimate it up front with estimate_duration (or generate speech BEFORE placing time-sensitive elements), then read the clip back after generation to confirm its final duration. Concurrency: parallel-safe (conflict domain: a clip's voiceover). The server merges each clip's voiceover under a per-guide lock and preserves that clip's elements, so you can fan voiceover work out across subagents by clip — and it's safe to run alongside element edits. Two edits to the SAME clip's voiceover serialize. Do NOT run concurrently with whole-clip/whole-project mutations on the same guide (update_clips on that clip, structural clip ops, add_audio, update_project).
    Connector
    Destructive
    No auth
  • Ingest raw RDF text (Turtle / N-Triples / JSON-LD, auto-detected) into a named graph. Returns a job_id; ingestion runs in the background — poll with brainkb_job_status. The graph must be registered (see brainkb_add_space_graph) and the caller must have write access to its space. `sha256` / `expected_bytes` are an integrity contract, and you should use them whenever the RDF came from a file. Ingest is append-only — no delete for triples, no unregister for a graph — so RDF that arrives here mangled is permanent. Because `data` is a string, it passes through the caller's context, where dense Turtle is exactly what gets silently altered: ligatures, Greek letters, embedded newlines, escaped quotes. Declare the digest of the bytes you MEANT to send (`shasum -a 256 file.ttl`) and this refuses the write on any mismatch, turning an unrecoverable corruption into a clean rejection.
    ConnectorNo auth
  • Combined trends tool that fetches trending words, stories, and documents in parallel. This tool provides a unified view of all trending data - words with their documents and stories - in a single response across all crypto projects. ## When to use vs `trending_stories_tool` This is a superset of `trending_stories_tool`: same stories, plus trending words, their context and AI-generated bull/bear summaries. It calls an LLM, so it is slower and has a tighter per-tool rate-limit sub-cap than every other tool. If only trending stories are needed, call `trending_stories_tool` instead; set `include_words: false` / `include_stories: false` to drop a half that is not needed. Do not call both tools for the same question. ## Parameters - `time_period` - Time period for trending data (e.g., '1h', '6h', '1d', '7d'). Defaults to '1h' (last hour). - `size` - Number of items per category to return (max 30). Defaults to 10. - `include_stories` - Include trending stories in response. Defaults to true. - `include_words` - Include trending words in response. Defaults to true. ## Response - `trends` - Combined trending data containing stories and words. - `metadata` - Request metadata including time period, size, and included data types. - `errors` - Any non-fatal errors encountered during data fetching. ## Trending Data Structure ### Stories - `title` - Title of the trending story. - `summary` - Summary of the story. - `score` - Trending score. - `query` - Search query used to find the story. - `related_tokens` - List of related crypto tokens (format: "BTC_bitcoin"). - `bullish_sentiment_ratio` - Bullish sentiment ratio. - `bearish_sentiment_ratio` - Bearish sentiment ratio. ### Words - `word` - The trending word. - `score` - Trending score. - `slug` - Associated project slug (if word is project-related). - `summary` - AI-generated summary of discussions. - `bullish_summary` - Summary of bullish sentiment. - `bearish_summary` - Summary of bearish sentiment. - `positive_sentiment_ratio` - Positive sentiment ratio. - `negative_sentiment_ratio` - Negative sentiment ratio. - `neutral_sentiment_ratio` - Neutral sentiment ratio. - `positive_bb_sentiment_ratio` - Positive bull/bear sentiment ratio. - `negative_bb_sentiment_ratio` - Negative bull/bear sentiment ratio. - `neutral_bb_sentiment_ratio` - Neutral bull/bear sentiment ratio. - `context` - Related words that appear with this trending word. - `documents_summary` - AI-generated summary of related social media discussions.
    ConnectorNo auth
  • Generate natural speech audio from English text. Produces high-quality speech with 12 English voices. Returns base64-encoded WAV audio (16-bit PCM, 24kHz mono) along with metadata. Available voices: - af_heart (default), af_bella, af_nicole, af_sarah, af_sky (American female) - am_adam, am_michael (American male) - bf_emma, bf_isabella (British female) - bm_george, bm_lewis, bm_daniel (British male) Args: text: English text to synthesize (1-5000 characters). voice: Voice ID. See list above. Defaults to 'af_heart'. speed: Speed multiplier from 0.5 to 2.0 (default: 1.0). Returns: dict with keys: - audio_base64 (str): Base64-encoded WAV audio (16-bit PCM, 24kHz) - duration_ms (str): Audio duration in milliseconds - voice (str): Voice ID used - text_length (str): Input text character count - processing_ms (str): Synthesis time in milliseconds
    ConnectorNo auth
  • Browse the full Particle tool catalog. Your tools/list shows only the default categories, but EVERY public Particle tool is callable by name regardless of what was advertised — call this tool to discover the rest. Without arguments: the categorical menu (every category with tool names, one-line summaries, and an `↳` line listing each tool's expand options). With `category`: the full input schema for each of that category's tools, ready to call. Two conventions the one-line summaries don't convey, so read tools through this lens: - Tools are lean by default and EXPAND. Most return a minimal payload and opt into richer sections via an `include` array (e.g. a company's people, products, and competitors; a person's roles and podcast appearances) or change behavior via a `mode`/`format` switch. The `↳` line names these — a tool does far more than its summary alone implies. - Responses are a graph; slugs are edges. A slug a tool returns (person, company, podcast, episode, publisher, guest) is a valid input to the other tools, so you resolve once and then traverse: company → its people → a person's podcast appearances → that episode's transcript and every entity in it. Categories on offer: - `system` (always-on): Discovery meta-tools: browse the full tool catalog and call any tool by name. - `podcasts` (default): Resolve podcasts, list and fetch episodes, search transcripts, and find entity mentions. - `people` (default): Resolve people and entities to canonical handles and fetch person profiles. - `companies` (default): Resolve companies and fetch company profiles with people, products, and competitors. - `topics` (default): Browse the hierarchical topic taxonomy used to classify podcast episodes. - `podcast_rankings` (default): Podcast chart rankings: current charts, movers, and ranking history. - `podcast_guests` (default): Podcast guest directory, trending guests, and per-guest appearance profiles. - `podcast_advertising` (opt-in): Podcast advertising intelligence: sponsor rosters, ad presence, and sponsor leaderboards. - `podcast_publishers` (opt-in): Podcast publisher profiles with their shows, bias profile, and suitability profile. - `podcast_ratings` (opt-in): Listener review ratings for podcasts: summaries and recent rating lists. - `podcast_bias` (opt-in): Corpus-wide political-bias views: publisher leaderboards and publishers by bias result. - `podcast_suitability` (opt-in): Corpus-wide GARM brand-suitability views: publisher leaderboards and category exposure. - `alerts` (default): Create and manage alerts that watch entities for podcast mentions or speaker appearances, preview match frequency, and review the matches an alert has caught. - `radar` (opt-in): Display selected research results as embedded Radar cards, with a Markdown fallback. Rendering is free and does not fetch data. Opt-in categories can also be advertised on tools/list by adding `?include=<category>` (comma-separated, or `all`) to the connection URL, or the X-Particle-Include header. `?exclude=` hides default categories; `?tools=<name,...>` pins the advertised list to exact tools instead. Discovery is free; tool execution is metered and plan-gated as usual.
    ConnectorOAuth
  • Find a podcast by free-text title, exact slug, iTunes ID, or RSS feed URL. Returns slug, title, episode count, bias, and the top recurring speakers (with entity slugs). Use the slug as the agent-facing handle to feed into other podcast tools (`particle_podcast_find_mentions`, `particle_podcast_list_episodes`, `particle_podcast_get_sponsors`). Free-text matching is forgiving — typos, missing or extra words, and pasted episode titles all work. Results are ordered best-match-first; text matches carry a `match_quality` field, and an empty list means the catalog has no plausible candidate. With all identifiers omitted, returns the most recently updated podcasts — useful for browsing the catalog when you don't have a name in mind. Narrow free-text browsing with `topic_slug` (topic concentration, descendants included), `suitability_tier`, or `min_popularity` (global popularity percentile over charting podcasts). Optional hydrations attach extra data to each result in the same call: - `include: ["external_links"]`: third-party platform presences (directories, social profiles, video channels, publisher websites) with resolved URLs and audience metrics. - `include: ["suitability"]`: per-category brand-suitability breakdown (12 categories with prevalence, treatment, derived risk level, reasoning, and evidence excerpts) — premium-grade data, requires a plan with premium endpoints. The high-level `suitability_tier` enum (SAFE / LIMITED / SENSITIVE / UNSAFE) is rendered on every result without opt-in. - `include: ["ratings_summary"]`: listener-review aggregate (average stars, count, per-platform breakdown). - `include: ["bias"]`: full political-bias analysis (the high-level bias enum is always rendered without opt-in). - `include: ["rankings"]`: current chart positions across sources/countries/categories — premium-grade data, requires a plan with premium endpoints. For movers and history use `particle_podcast_get_rankings`. - `include: ["format"]`: the show's format profile — how often episodes feature guests, detected production formats (interview, panel, call_in, solo_narrated), ad and video presence, episode-length distribution, publishing cadence, and the publish-day pattern. - `recent_episodes: N`: inline this many of each result's most recent episodes (slug, title, published_at, duration) — skip the follow-up `particle_podcast_list_episodes` call when you only need the most recent tail.
    ConnectorOAuth