Skip to main content
Glama

Search podcasts

search_podcasts
Read-only

Search Grep.FM's database of 3M+ podcasts with the same filters as the Grep.FM app: keyword, category, language, activity, publishing rhythm, audience size (ratings, social followers, chart positions), guests and sponsors found in recent episodes (search_by guests or sponsors finds shows by a person or a brand), whether a contact email is on file, and more.

Each show comes with its audience, guest and sponsor signals and has_email; the emails themselves come from get_podcast_contacts. guest_episodes and sponsor_episodes count among analyzed_episodes, the recent episodes AI has read. Link a show by putting its id into podcast_link. Without a keyword or order_by, results follow a quality ranking. grepfm_url opens the same search in the Grep.FM app, where every result can be browsed and exported.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_podcasts"
  }
}

Input Schema

NameRequiredDescriptionDefault
listNoOnly shows in this list of the user's, by name (see get_lists); the other filters narrow it further.
pageNoResult page; only the first 200 results can be read.
keywordNoWords to search for. Put a name or phrase in quotes to match it exactly, and put a minus sign before a word or a quoted phrase to leave out results that mention it.
explicitNoWhether the show marks itself explicit, useful for brand safety checks. "false" = Clean; "true" = Explicit.
languageNoThe language the show's feed declares. ISO 639-1 codes such as en, de, es or pt-BR; English names also work.
order_byNoResult order; leave out for the default ranking. "recent" = Recently active first; "most_ratings" = Most Apple ratings first; "oldest" = Oldest shows first; "most_episodes" = Most episodes first; "fewest_episodes" = Fewest episodes first; "longest" = Longest episodes first; "shortest" = Shortest episodes first; "best_apple_rank" = Best Apple rank first; "most_charted" = Most charted first; "most_followers" = Most social followers first.
per_pageNoResults per page, 1 to 50.
sponsorsNoShows whose recent episodes declared this sponsor. Spelling variants of a brand are merged.
has_emailNoAn email was found in the feed (owner email, show description or recurring in episode notes) or on the show's website and link pages.
has_guestNoAI found a guest in the show's recent episodes. Only active shows are analyzed.
search_byNoFields the keyword is matched against. Tick none to search them all.
categoriesNoApple Podcasts categories. A category includes all of its subcategories.
on_youtubeNoThe show links a YouTube channel or publishes video in its feed. A few channels belong to the host rather than the show.
keyword_notNoHide shows whose title, host or description mentions any of these.
podcast_ageNoTime since the show's first episode. "0-1" = Less than 1 year; "1-3" = 1-3 years; "3-5" = 3-5 years; "5+" = 5+ years.
language_notNoExclude these values of language; takes the same values as language. ISO 639-1 codes such as en, de, es or pt-BR; English names also work.
apple_chartedNoCurrently ranked on Apple Podcasts charts.
activity_levelNoDays since the latest episode: Active within 60, Recently Active within 180, Inactive within 365, Dormant beyond that.
categories_notNoExclude these values of categories; takes the same values as categories.
guest_frequencyNoShare of the analyzed episodes that had a guest, for shows with at least 3 analyzed. Has Guests needs just one. "50" = Half the episodes or more; "75" = Three in four or more.
spotify_chartedNoCurrently ranked on Spotify's podcast charts.
rating_count_maxNoApple Rating Count, at most.
rating_count_minNoApple Rating Count, at least. Number of ratings on Apple Podcasts, the closest public proxy for audience size.
update_frequencyNoHow often the show publishes: daily, weekly, monthly and so on.
last_guest_withinNoWhen the latest episode with a guest came out. "30" = Within 30 days; "90" = Within 90 days.
last_episode_afterNoWhen the latest episode came out. On or after this date, YYYY-MM-DD.
total_episodes_maxNoEpisode Count, at most.
total_episodes_minNoEpisode Count, at least. Episodes currently in the feed.
last_episode_beforeNoWhen the latest episode came out. On or before this date, YYYY-MM-DD.
average_duration_maxNoAvg. Duration (min), at most.
average_duration_minNoAvg. Duration (min), at least. Average episode length in minutes.
has_declared_sponsorNoAI found a declared sponsor in the show's recent episodes. Only active shows are analyzed.
social_followers_maxNoSocial Followers, at most.
social_followers_minNoSocial Followers, at least. Followers across the show's YouTube, Instagram, Facebook, TikTok and Bluesky accounts. Counted for about half of the shows with guests.
update_frequency_notNoExclude these values of update frequency; takes the same values as update_frequency.
youtube_subscribers_maxNoYouTube Subscribers, at most.
youtube_subscribers_minNoYouTube Subscribers, at least. Subscribers to the show's YouTube channel.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / categories_not / description
      Previous value: -"Exclude these values of categories."New value: +"Exclude these values of categories; takes the same values as categories."
    • removedInput schema / properties / categories_not / items / enum
      Removed value: -[
      -  "Arts",
      -  "Books",
      -  "Design",
      -  "Fashion & Beauty",
      -  "Food",
      -  "Performing Arts",
      -  "Visual Arts",
      -  "Business",
      -  "Careers",
      -  "Entrepreneurship",
      -  "Investing",
      -  "Management",
      -  "Marketing",
      -  "Non-Profit",
      -  "Comedy",
      -  "Comedy Interviews",
      -  "Improv",
      -  "Stand-Up",
      -  "Education",
      -  "Courses",
      -  "How To",
      -  "Language Learning",
      -  "Self-Improvement",
      -  "Fiction",
      -  "Comedy Fiction",
      -  "Drama",
      -  "Science Fiction",
      -  "Government",
      -  "History",
      -  "Health & Fitness",
      -  "Alternative Health",
      -  "Fitness",
      -  "Medicine",
      -  "Mental Health",
      -  "Nutrition",
      -  "Sexuality",
      -  "Kids & Family",
      -  "Education for Kids",
      -  "Parenting",
      -  "Pets & Animals",
      -  "Stories for Kids",
      -  "Leisure",
      -  "Animation & Manga",
      -  "Automotive",
      -  "Aviation",
      -  "Crafts",
      -  "Games",
      -  "Hobbies",
      -  "Home & Garden",
      -  "Video Games",
      -  "Music",
      -  "Music Commentary",
      -  "Music History",
      -  "Music Interviews",
      -  "News",
      -  "Business News",
      -  "Daily News",
      -  "Entertainment News",
      -  "News Commentary",
      -  "Politics",
      -  "Sports News",
      -  "Tech News",
      -  "Religion & Spirituality",
      -  "Buddhism",
      -  "Christianity",
      -  "Hinduism",
      -  "Islam",
      -  "Judaism",
      -  "Religion",
      -  "Spirituality",
      -  "Science",
      -  "Astronomy",
      -  "Chemistry",
      -  "Earth Sciences",
      -  "Life Sciences",
      -  "Mathematics",
      -  "Natural Sciences",
      -  "Nature",
      -  "Physics",
      -  "Social Sciences",
      -  "Society & Culture",
      -  "Documentary",
      -  "Personal Journals",
      -  "Philosophy",
      -  "Places & Travel",
      -  "Relationships",
      -  "Sports",
      -  "Baseball",
      -  "Basketball",
      -  "Cricket",
      -  "Fantasy Sports",
      -  "Football",
      -  "Golf",
      -  "Hockey",
      -  "Rugby",
      -  "Running",
      -  "Soccer",
      -  "Swimming",
      -  "Tennis",
      -  "Volleyball",
      -  "Wilderness",
      -  "Wrestling",
      -  "Technology",
      -  "True Crime",
      -  "TV & Film",
      -  "After Shows",
      -  "Film History",
      -  "Film Interviews",
      -  "Film Reviews",
      -  "TV Reviews"
      -]
    • changedInput schema / properties / language_not / description
      Previous value: -"Exclude these values of language. ISO 639-1 codes such as en, de, es or pt-BR; English names also work."New value: +"Exclude these values of language; takes the same values as language. ISO 639-1 codes such as en, de, es or pt-BR; English names also work."
    • changedInput schema / properties / update_frequency_not / description
      Previous value: -"Exclude these values of update frequency."New value: +"Exclude these values of update frequency; takes the same values as update_frequency."
    • removedInput schema / properties / update_frequency_not / items / enum
      Removed value: -[
      -  "Hourly",
      -  "Daily",
      -  "Every few days",
      -  "Weekly",
      -  "Every 2 weeks",
      -  "Monthly",
      -  "Every 2 months",
      -  "Quarterly",
      -  "Semi-annually",
      -  "Irregularly"
      -]
  2. Changed1 schema field changed
    • changedInput schema / properties / keyword / description
      Previous value: -"Words to search for."New value: +"Words to search for. Put a name or phrase in quotes to match it exactly, and put a minus sign before a word or a quoted phrase to leave out results that mention it."
  3. First observed

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: what each result carries (audience, guest and sponsor signals, has_email), that guest_episodes/sponsor_episodes are counted within analyzed_episodes, and that grepfm_url mirrors the search in the app for browsing and export.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability and its filter families are front-loaded, then result contents, then cross-tool and ranking caveats — a sensible order for a 37-parameter tool. The filter enumeration in the first sentence is dense but earns its length; the 'podcast_link' instruction is the one sentence that feels out of place since that parameter is not in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 37 optional parameters, 100% schema coverage, annotations covering safety and no output schema, the description supplies what the structured fields cannot: what a result row contains and where the email addresses actually live. The only gap is that it mentions a podcast_link parameter absent from the input schema, and it does not touch on result volume or pagination (though the schema covers the 200-result cap).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds relational meaning the schema cannot: search_by guests/sponsors turns the keyword into a person-or-brand lookup, and has_email is only a flag while the actual addresses require get_podcast_contacts. It also explains the default ranking that applies when keyword and order_by are both omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource plus scale ('Search Grep.FM's database of 3M+ podcasts') and enumerates the filter families it supports, so an agent knows exactly what capability this is. It does not explicitly contrast itself with nearby siblings such as lookup_podcasts, find_similar_podcasts or search_episodes, leaving that differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real routing guidance: emails 'come from get_podcast_contacts', guests/sponsors use 'search_by guests or sponsors', and results default to a quality ranking when no keyword or order_by is given. However, the description never states when this tool should be preferred over lookup_podcasts or find_similar_podcasts, and gives no exclusions or preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources