transcript_search
Search library content
Searches what was SAID across the library using approximate time-anchored transcript units, saved moments, and Episode descriptions/chapters; visual annotations are searchable where analysis exists. Hits locate semantic neighborhoods; text/times never authorize a structural boundary. Keyword hits are exact unstemmed tokens, so morphological variants are separate queries; quoted phrases are exact and exhaustive. Semantic hits are labeled retrieval_mode:semantic; their text is not a verbatim quote until the window is read. Every response carries coverage, interpretation, and freshness. Person grains: person_speaking vs person_present; combinable; facets_only:true gives the bare map. Facets narrow wide results; pagination does not. Each hit's returned window is readable through episode_read; source media inspection serves edit/review boundaries and is not evidence of physical progress. A FIND tool, not a judge. Returned handles are exact (title discovery is projects_list/episodes_list). Read-only.
Surface: Default model and app
Product release 185ad8f4adfa21ae055b5bd6f97968d9044480d1
Public contract commit d2ab41fab4088c07c0f6b924fa4f3c63481b936a
Public contract SHA-256 2365c73c2aef7b9f85e8434d8e29ea29f40824bc3a46a72a356155ea328757fc
Captured 2026-10-29T03:35:56.855Z. Review or improve this contract on GitHub.
These blocks show the complete MCP descriptors captured from serving Rails. Security schemes and resource URIs can differ by connected host.
Default model descriptor
{
"name": "transcript_search",
"title": "Search library content",
"description": "Searches what was SAID across the library using approximate time-anchored transcript units, saved moments, and Episode descriptions/chapters; visual annotations are searchable where analysis exists. Hits locate semantic neighborhoods; text/times never authorize a structural boundary. Keyword hits are exact unstemmed tokens, so morphological variants are separate queries; quoted phrases are exact and exhaustive. Semantic hits are labeled retrieval_mode:semantic; their text is not a verbatim quote until the window is read. Every response carries coverage, interpretation, and freshness. Person grains: person_speaking vs person_present; combinable; facets_only:true gives the bare map. Facets narrow wide results; pagination does not. Each hit's returned window is readable through episode_read; source media inspection serves edit/review boundaries and is not evidence of physical progress. A FIND tool, not a judge. Returned handles are exact (title discovery is projects_list/episodes_list). Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keyword or phrase to find. Exact-token, unstemmed; \"quoted phrases\" match exactly. Required unless facets_only is true with a project, person, or date filter."
},
"project_id": {
"type": "string",
"description": "Optional project public ID returned by projects_list/episodes_list (show_... or UUID) — scope the search to one readable project. A project title/name is not accepted here; projects_list(query:) or episodes_list(query:) resolves one to its ID."
},
"person_speaking": {
"type": "string",
"description": "Optional person (profile public ID or name). Returns only transcript hits where THIS PERSON IS TALKING — 'what did X say about Y'. Resolves real people across renames and generic diarization labels; resolution (and any ambiguity) is reported in interpretation. May be combined with person_present to find one person speaking while another appears in the same episode."
},
"person_present": {
"type": "string",
"description": "Optional person (profile public ID or name). Returns hits from episodes where this person APPEARS AT ALL, whoever is speaking — silent-participant safe ('sessions with Adrian'). May be combined with person_speaking. Presence is speech-derived for now; interpretation says so."
},
"speaker": {
"type": "string",
"description": "LEGACY raw diarization-label filter, kept for compatibility. Matches transcript_units.speaker_label verbatim and does NOT resolve people; person_speaking does."
},
"date_from": {
"type": "string",
"description": "Optional ISO date; include episodes with episode_date on or after this date."
},
"date_to": {
"type": "string",
"description": "Optional ISO date; include episodes with episode_date on or before this date."
},
"scope": {
"type": "string",
"enum": [
"recordings",
"all"
],
"description": "Optional. Slice 1 supports recording-backed library search. `all` is accepted as an alias for recordings; true episode-projection search is a fast-follow."
},
"detail": {
"type": "string",
"enum": [
"concise",
"detailed"
],
"description": "Optional response detail level. concise is default; detailed may return more hit text within budget."
},
"facets_only": {
"type": "boolean",
"description": "Optional. Returns the exhaustive episode/project/person/month facet map with no hits."
},
"limit": {
"type": "integer",
"description": "Maximum hits to return. Default 8, maximum 10."
},
"page": {
"type": "integer",
"description": "1-indexed page of compact search hits. Default 1. The response's next_page continues it."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Search library content",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true
}
}App descriptor
{
"name": "transcript_search",
"title": "Search library content",
"description": "Searches what was SAID across the library using approximate time-anchored transcript units, saved moments, and Episode descriptions/chapters; visual annotations are searchable where analysis exists. Hits locate semantic neighborhoods; text/times never authorize a structural boundary. Keyword hits are exact unstemmed tokens, so morphological variants are separate queries; quoted phrases are exact and exhaustive. Semantic hits are labeled retrieval_mode:semantic; their text is not a verbatim quote until the window is read. Every response carries coverage, interpretation, and freshness. Person grains: person_speaking vs person_present; combinable; facets_only:true gives the bare map. Facets narrow wide results; pagination does not. Each hit's returned window is readable through episode_read; source media inspection serves edit/review boundaries and is not evidence of physical progress. A FIND tool, not a judge. Returned handles are exact (title discovery is projects_list/episodes_list). Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keyword or phrase to find. Exact-token, unstemmed; \"quoted phrases\" match exactly. Required unless facets_only is true with a project, person, or date filter."
},
"project_id": {
"type": "string",
"description": "Optional project public ID returned by projects_list/episodes_list (show_... or UUID) — scope the search to one readable project. A project title/name is not accepted here; projects_list(query:) or episodes_list(query:) resolves one to its ID."
},
"person_speaking": {
"type": "string",
"description": "Optional person (profile public ID or name). Returns only transcript hits where THIS PERSON IS TALKING — 'what did X say about Y'. Resolves real people across renames and generic diarization labels; resolution (and any ambiguity) is reported in interpretation. May be combined with person_present to find one person speaking while another appears in the same episode."
},
"person_present": {
"type": "string",
"description": "Optional person (profile public ID or name). Returns hits from episodes where this person APPEARS AT ALL, whoever is speaking — silent-participant safe ('sessions with Adrian'). May be combined with person_speaking. Presence is speech-derived for now; interpretation says so."
},
"speaker": {
"type": "string",
"description": "LEGACY raw diarization-label filter, kept for compatibility. Matches transcript_units.speaker_label verbatim and does NOT resolve people; person_speaking does."
},
"date_from": {
"type": "string",
"description": "Optional ISO date; include episodes with episode_date on or after this date."
},
"date_to": {
"type": "string",
"description": "Optional ISO date; include episodes with episode_date on or before this date."
},
"scope": {
"type": "string",
"enum": [
"recordings",
"all"
],
"description": "Optional. Slice 1 supports recording-backed library search. `all` is accepted as an alias for recordings; true episode-projection search is a fast-follow."
},
"detail": {
"type": "string",
"enum": [
"concise",
"detailed"
],
"description": "Optional response detail level. concise is default; detailed may return more hit text within budget."
},
"facets_only": {
"type": "boolean",
"description": "Optional. Returns the exhaustive episode/project/person/month facet map with no hits."
},
"limit": {
"type": "integer",
"description": "Maximum hits to return. Default 8, maximum 10."
},
"page": {
"type": "integer",
"description": "1-indexed page of compact search hits. Default 1. The response's next_page continues it."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Search library content",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true
}
}Live Workspace descriptor
{
"name": "transcript_search",
"title": "Search library content",
"description": "Searches what was SAID across the library using approximate time-anchored transcript units, saved moments, and Episode descriptions/chapters; visual annotations are searchable where analysis exists. Hits locate semantic neighborhoods; text/times never authorize a structural boundary. Keyword hits are exact unstemmed tokens, so morphological variants are separate queries; quoted phrases are exact and exhaustive. Semantic hits are labeled retrieval_mode:semantic; their text is not a verbatim quote until the window is read. Every response carries coverage, interpretation, and freshness. Person grains: person_speaking vs person_present; combinable; facets_only:true gives the bare map. Facets narrow wide results; pagination does not. Each hit's returned window is readable through episode_read; source media inspection serves edit/review boundaries and is not evidence of physical progress. A FIND tool, not a judge. Returned handles are exact (title discovery is projects_list/episodes_list). Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keyword or phrase to find. Exact-token, unstemmed; \"quoted phrases\" match exactly. Required unless facets_only is true with a project, person, or date filter."
},
"project_id": {
"type": "string",
"description": "Optional project public ID returned by projects_list/episodes_list (show_... or UUID) — scope the search to one readable project. A project title/name is not accepted here; projects_list(query:) or episodes_list(query:) resolves one to its ID."
},
"person_speaking": {
"type": "string",
"description": "Optional person (profile public ID or name). Returns only transcript hits where THIS PERSON IS TALKING — 'what did X say about Y'. Resolves real people across renames and generic diarization labels; resolution (and any ambiguity) is reported in interpretation. May be combined with person_present to find one person speaking while another appears in the same episode."
},
"person_present": {
"type": "string",
"description": "Optional person (profile public ID or name). Returns hits from episodes where this person APPEARS AT ALL, whoever is speaking — silent-participant safe ('sessions with Adrian'). May be combined with person_speaking. Presence is speech-derived for now; interpretation says so."
},
"speaker": {
"type": "string",
"description": "LEGACY raw diarization-label filter, kept for compatibility. Matches transcript_units.speaker_label verbatim and does NOT resolve people; person_speaking does."
},
"date_from": {
"type": "string",
"description": "Optional ISO date; include episodes with episode_date on or after this date."
},
"date_to": {
"type": "string",
"description": "Optional ISO date; include episodes with episode_date on or before this date."
},
"scope": {
"type": "string",
"enum": [
"recordings",
"all"
],
"description": "Optional. Slice 1 supports recording-backed library search. `all` is accepted as an alias for recordings; true episode-projection search is a fast-follow."
},
"detail": {
"type": "string",
"enum": [
"concise",
"detailed"
],
"description": "Optional response detail level. concise is default; detailed may return more hit text within budget."
},
"facets_only": {
"type": "boolean",
"description": "Optional. Returns the exhaustive episode/project/person/month facet map with no hits."
},
"limit": {
"type": "integer",
"description": "Maximum hits to return. Default 8, maximum 10."
},
"page": {
"type": "integer",
"description": "1-indexed page of compact search hits. Default 1. The response's next_page continues it."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Search library content",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
]
}
}Errors
[
"invalid_input",
"project_not_found"
]Examples
[
{
"label": "Find recordings where Andrew was present in June",
"input": {
"query": "pricing",
"person_present": "Andrew",
"date_from": "2026-06-01",
"date_to": "2026-06-30",
"limit": 8
}
},
{
"label": "Exhaustive map of every episode mentioning the sponsor (for set algebra / complements)",
"input": {
"query": "\"sponsor read\"",
"facets_only": true
}
}
]