Search / app.listentosadhu/corpus
Listen to Sadhu
R0· no sign-inRead-only semantic search over Vedic scripture verses, commentaries, and recorded lectures.
v1.0.1 · active · website · descriptor JSON · versions
Search / app.listentosadhu/corpus
R0· no sign-inRead-only semantic search over Vedic scripture verses, commentaries, and recorded lectures.
v1.0.1 · active · website · descriptor JSON · versions
{
"mcpServers": {
"corpus": {
"type": "http",
"url": "https://mcp.listentosadhu.app/mcp"
}
}
}claude mcp add --transport http corpus https://mcp.listentosadhu.app/mcp[mcp_servers.corpus]
url = "https://mcp.listentosadhu.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"corpus": {
"type": "remote",
"url": "https://mcp.listentosadhu.app/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"corpus": {
"type": "http",
"url": "https://mcp.listentosadhu.app/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=corpus&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmxpc3RlbnRvc2FkaHUuYXBwL21jcCJ9"
}{
"servers": {
"corpus": {
"type": "http",
"url": "https://mcp.listentosadhu.app/mcp"
}
}
}{
"mcpServers": {
"corpus": {
"httpUrl": "https://mcp.listentosadhu.app/mcp"
}
}
}extensions:
"corpus":
enabled: true
name: "corpus"
type: streamable_http
uri: "https://mcp.listentosadhu.app/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions2 of 21 tools have a description under 20 characterstools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations21 of 21 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 3,696 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% ~updated-108d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.listentosadhu.app/mcp streamable-http | none | yes | 100% | 497 ms | 2025-11-25 | 2026-10-20 |
author_listread-onlydestructive | List all authors. |
author_resolveread-onlydestructive | Find a author by name (fuzzy). |
document_getread-onlydestructive | Get a document (commentary/prose_chapter/letter) by id. |
document_listread-onlydestructive | List documents at a reference / in a book. A verse's purport = document_list(source, tokens, kind:"commentary"). |
excerpt_preparedestructive | Generate (or fetch, if cached) the audio clip for a lecture passage and return its playable URL. This is the excerpt player's Play action — it is called for you by the player UI on demand. Agents should use excerpt_render to show the player, not call this directly. Idempotent: same track+window returns the same cached clip. |
excerpt_renderdestructive | Let the user HEAR a lecture passage inline. Call this when the user wants to LISTEN to a specific moment in a track — e.g. from a search(types:["track"]) hit, pass its track_id plus start_ms/end_ms. Renders an inline audio player that generates the clip on demand (public share-audio, max 10 minutes). |
location_listread-onlydestructive | List all locations. |
location_resolveread-onlydestructive | Find a location by name (fuzzy). |
media_renderread-onlydestructive | Show/play an existing corpus VIDEO clip inline. Call this when the user wants to WATCH a clip found via search(types:["media"]) — pass the hit's media_id. Renders an inline video player. |
searchread-onlydestructive | Semantic + lexical search over the corpus. Returns verses, documents, track passages and titles matching a natural-language query, each with the id needed to fetch the full record (verse_id→verse_get, document_id→document_get, track_id+start_ms/end_ms→transcript_window; media_id→media_render to play the clip). Every filter is optional. Use min_score to drop weak matches. |
source_getread-onlydestructive | Get one book by id or code ("source_…" or "BG"/"БГ"). |
source_listread-onlydestructive | List all books (Caitanya-caritāmṛta is three sources). |
source_resolveread-onlydestructive | Find a book by name (fuzzy): "gita", "бхагаватам", "CC Madhya". |
track_getread-onlydestructive | Get a track (lecture/conversation): metadata, cited references, transcript/pdf availability. |
track_listread-onlydestructive | List tracks, filterable by reference (source[+tokens] = tracks citing it), author/location/kind/date/lang. No filter ⇒ recent tracks (date desc). |
transcript_windowread-onlydestructive | Read a track's transcript around a time window (from a search track hit or track_list). Widen with pad_ms. |
verse_getread-onlydestructive | Fetch a verse's raw fields for your own reasoning (NOT for display — to show a verse to the user, use verse_render). Returns original script + transliteration as line arrays; with lang, also the canonical translation inline plus an `alternatives` manifest of other translation kinds in that language (fetch their text with verse_translation, word-by-word with verse_synonyms). Address by ref ("BG 2.13"), source+tokens, or verse id. |
verse_listread-onlydestructive | List the verses of a book / chapter. Skips .0 chapter summaries; collapses merged verses into one item with a covers span. |
verse_renderread-onlydestructive | Show a verse to the user. THE DEFAULT way to display/read a scripture verse: renders an inline card with the original script (centered), transliteration in the requested language, the word-by-word, and the translation — all at once. Use this whenever the user asks to see, read, open, or quote a specific verse ("покажи БГ 2.13", "read Bhagavad-gita 2.13"). The other verse_* tools are for fetching raw data; for DISPLAY prefer this one. Address by ref ("BG 2.13"), source+tokens, or id; lang sets the script + translation language. |
verse_synonymsread-onlydestructive | Fetch the word-by-word ("Synonyms") as a raw {word, meaning} array for one verse translation (data — verse_render already shows the word-by-word inside the card). Defaults to the canonical rendering; pass `kind` for an alternative. |
verse_translationread-onlydestructive | Fetch the text of ONE translation of a verse (data, not a card — to display a verse use verse_render). Defaults to the canonical (kind=canonical); pass a `kind` from verse_get's `alternatives` manifest to fetch a specific rendering. |
Schemas: list_tools.
{
"name": "app.listentosadhu/corpus",
"title": "Listen to Sadhu",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.listentosadhu.app/mcp",
"type": "streamable-http"
}
],
"version": "1.0.1",
"websiteUrl": "https://listentosadhu.app",
"description": "Read-only semantic search over Vedic scripture verses, commentaries, and recorded lectures."
}