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 eb8538f4a297f331d0399351c1e175bffcd212d2
Public contract commit 20688e11af473a363145ed880d5019c90a7ec1e2
Public contract SHA-256 87a94b85a84dc19245fc03f9b544c70d64bd9f5e08585dcccb38157cace5700d
Captured 2026-10-04T11:55:45.577Z. 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
}
}
]