Search transcripts and sourced quotes from business and tech podcasts. Read-only, no key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get the full text for an id returned by search: an episode's summary and facts, a transcript passage with context, or a topic's facts.
An id returned by search, such as episode:acquired/nvidia-part-iii or topic:openai
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http opennash-podcasts https://podcasts.opennash.com/mcp
Get the full text for an id returned by search: an episode's summary and facts, a transcript passage with context, or a topic's facts.
| Argument | Type | Description |
|---|---|---|
| id* | string | An id returned by search, such as episode:acquired/nvidia-part-iii or topic:openai |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 400,
"minLength": 1,
"description": "An id returned by search, such as episode:acquired/nvidia-part-iii or topic:openai"
}
},
"additionalProperties": false
}Get an episode's summary, publish date, named speakers and every sourced fact with quote and timestamp.
| Argument | Type | Description |
|---|---|---|
| show* | string | Show slug (such as huberman-lab) or show title (such as "Huberman Lab"), from list_shows or a search result's show_slug |
| episode* | string | Episode slug: episode_slug from list_episodes or a search result |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"show",
"episode"
],
"properties": {
"show": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Show slug (such as huberman-lab) or show title (such as \"Huberman Lab\"), from list_shows or a search result's show_slug"
},
"episode": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Episode slug: episode_slug from list_episodes or a search result"
}
},
"additionalProperties": false
}Get sourced facts about one company, person or subject across all shows, grouped by episode, 20 facts per page by default. total is the topic's fact count; pass next_offset as offset for the next page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Facts per page, 1-50, default 20 |
| topic* | string | Topic slug from list_topics, or its name (such as OpenAI) |
| offset | integer | Facts to skip, default 0. Use next_offset from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Facts per page, 1-50, default 20"
},
"topic": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Topic slug from list_topics, or its name (such as OpenAI)"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Facts to skip, default 0. Use next_offset from the previous page."
}
},
"additionalProperties": false
}Get a transcript with speakers and timestamps, up to 40 paragraphs (about 12k characters) per page. total is the paragraph count; pass next_offset as offset for the next page.
| Argument | Type | Description |
|---|---|---|
| show* | string | Show slug (such as huberman-lab) or show title (such as "Huberman Lab"), from list_shows or a search result's show_slug |
| limit | integer | Most paragraphs per page, 1-80, default 40. A page also stops at about 12k characters of text. |
| offset | integer | First paragraph to return, default 0. Use next_offset from the previous page, or a search_transcripts result's paragraph. |
| episode* | string | Episode slug: episode_slug from list_episodes or a search result |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"show",
"episode"
],
"properties": {
"show": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Show slug (such as huberman-lab) or show title (such as \"Huberman Lab\"), from list_shows or a search result's show_slug"
},
"limit": {
"type": "integer",
"maximum": 80,
"minimum": 1,
"description": "Most paragraphs per page, 1-80, default 40. A page also stops at about 12k characters of text."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "First paragraph to return, default 0. Use next_offset from the previous page, or a search_transcripts result's paragraph."
},
"episode": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Episode slug: episode_slug from list_episodes or a search result"
}
},
"additionalProperties": false
}List a show's episodes, newest first, with episode_slug, publish date and fact count. Pages via offset/next_offset.
| Argument | Type | Description |
|---|---|---|
| show* | string | Show slug (such as huberman-lab) or show title (such as "Huberman Lab"), from list_shows or a search result's show_slug |
| limit | integer | How many to return, 1-100, default 25 |
| offset | integer | How many to skip, default 0. Pass next_offset from the previous page to get the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"show"
],
"properties": {
"show": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Show slug (such as huberman-lab) or show title (such as \"Huberman Lab\"), from list_shows or a search result's show_slug"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many to return, 1-100, default 25"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many to skip, default 0. Pass next_offset from the previous page to get the next page."
}
},
"additionalProperties": false
}List shows with their slug, host and episode count, 25 per page by title. Filter with query; descriptions are shortened.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many to return, 1-100, default 25 |
| query | string | Part of a show's title, slug, host or description, case-insensitive (such as "health" or "Lex") |
| offset | integer | How many to skip, default 0. Pass next_offset from the previous page to get the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many to return, 1-100, default 25"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Part of a show's title, slug, host or description, case-insensitive (such as \"health\" or \"Lex\")"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many to skip, default 0. Pass next_offset from the previous page to get the next page."
}
},
"additionalProperties": false
}List companies, people and subjects that have topic pages of sourced facts, most facts first. Filter with query; pass a slug to get_topic.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many to return, 1-100, default 25 |
| query | string | Part of a topic name, matched as a substring (such as "nvidia" or "AI"); omit to list all |
| offset | integer | How many to skip, default 0. Pass next_offset from the previous page to get the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many to return, 1-100, default 25"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Part of a topic name, matched as a substring (such as \"nvidia\" or \"AI\"); omit to list all"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many to skip, default 0. Pass next_offset from the previous page to get the next page."
}
},
"additionalProperties": false
}Search facts, transcript passages and topics at once, for clients that only use the generic search/fetch pair (ChatGPT Deep Research). Returns up to 10 ids with a title, link and short snippet; pass an id to fetch for the full text. Other clients should prefer search_facts (quotes with speaker and timestamp) or search_transcripts (raw passages), which page and filter by show.
| Argument | Type | Description |
|---|---|---|
| query* | string | Keywords, matched literally (stemmed full-text search, not semantic). Best with 2-4 distinctive words such as names, companies or terms, e.g. "Jensen Huang data centers". Filler and question words are ignored; results matching every keyword come first, then results matching some of them. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Keywords, matched literally (stemmed full-text search, not semantic). Best with 2-4 distinctive words such as names, companies or terms, e.g. \"Jensen Huang data centers\". Filler and question words are ignored; results matching every keyword come first, then results matching some of them."
}
},
"additionalProperties": false
}Keyword search over sourced facts: each hit is a claim with the speaker's exact quote, timestamp, episode and links. Best for 'what did X say about Y' (search 'X Y', not the whole question). Results include show_slug and episode_slug for get_episode or get_transcript. Pages via offset/next_offset; total counts all matches; match says how strictly the keywords matched.
| Argument | Type | Description |
|---|---|---|
| show | string | Only search this show: slug or title from list_shows |
| limit | integer | How many to return, 1-20, default 10 |
| query* | string | Keywords, matched literally (stemmed full-text search, not semantic). Best with 2-4 distinctive words such as names, companies or terms, e.g. "Jensen Huang data centers". Filler and question words are ignored; results matching every keyword come first, then results matching some of them. |
| offset | integer | How many to skip, default 0. Pass next_offset from the previous page to get the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"show": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only search this show: slug or title from list_shows"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many to return, 1-20, default 10"
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Keywords, matched literally (stemmed full-text search, not semantic). Best with 2-4 distinctive words such as names, companies or terms, e.g. \"Jensen Huang data centers\". Filler and question words are ignored; results matching every keyword come first, then results matching some of them."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many to skip, default 0. Pass next_offset from the previous page to get the next page."
}
},
"additionalProperties": false
}Keyword search over full transcripts, returning matching paragraphs with a snippet, speaker, timestamp and a link to the exact paragraph. Use when search_facts finds nothing or you need the surrounding conversation: call get_transcript with show_slug, episode_slug and offset set to the hit's paragraph.
| Argument | Type | Description |
|---|---|---|
| show | string | Only search this show: slug or title from list_shows |
| limit | integer | How many to return, 1-20, default 10 |
| query* | string | Keywords, matched literally (stemmed full-text search, not semantic). Best with 2-4 distinctive words such as names, companies or terms, e.g. "Jensen Huang data centers". Filler and question words are ignored; results matching every keyword come first, then results matching some of them. |
| offset | integer | How many to skip, default 0. Pass next_offset from the previous page to get the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"show": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only search this show: slug or title from list_shows"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many to return, 1-20, default 10"
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Keywords, matched literally (stemmed full-text search, not semantic). Best with 2-4 distinctive words such as names, companies or terms, e.g. \"Jensen Huang data centers\". Filler and question words are ignored; results matching every keyword come first, then results matching some of them."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many to skip, default 0. Pass next_offset from the previous page to get the next page."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.