Read-only semantic search over Vedic scripture verses, commentaries, and recorded lectures.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 27 days ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The lectorium-corpus-mcp MCP server exposes 21 tools, focused primarily on general-purpose capabilities. Its published description reads: "Read-only semantic search over Vedic scripture verses, commentaries, and recorded lectures". It communicates over Streamable HTTP using the 2026-07-28 protocol revision, and does not require authorization to connect. MCPGrade currently rates lectorium-corpus-mcp F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check lectorium-corpus-mcp's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add lectorium-corpus-mcp to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://mcp.listentosadhu.app/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
List all authors.
Find a author by name (fuzzy).
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: excerpt_prepare
A tool description tries to alter the model’s use of another tool.
ents should use excerpt_render to show the player, not call this directly. IdeRecommendationDescriptions must describe only their own tool.
tool: excerpt_render
A tool description tries to alter the model’s use of another tool.
k — e.g. from a search(types:["track"]) hit, pass its track_id plus stRecommendationDescriptions must describe only their own tool.
tool: media_render
A tool description tries to alter the model’s use of another tool.
clip found via search(types:["media"]) — pass the hit's media_id. RenRecommendationDescriptions must describe only their own tool.
tool: search
A tool description tries to alter the model’s use of another tool.
et, document_id→document_get, track_id+start_ms/end_ms→transcript_window; meRecommendationDescriptions must describe only their own tool.
tool: transcript_window
A tool description tries to alter the model’s use of another tool.
window (from a search track hit or track_list). Widen with pad_ms.RecommendationDescriptions must describe only their own tool.
tool: verse_get
A tool description tries to alter the model’s use of another tool.
o the user, use verse_render). Returns original script + transliteration asRecommendationDescriptions must describe only their own tool.
tool: verse_synonyms
A tool description tries to alter the model’s use of another tool.
slation (data — verse_render already shows the word-by-word inside the card)RecommendationDescriptions must describe only their own tool.
tool: verse_translation
A tool description tries to alter the model’s use of another tool.
s a `kind` from verse_get's `alternatives` manifest to fetch a specific rRecommendationDescriptions must describe only their own tool.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
t/list/resolve, author_list/resolve, location_list/resolve: turn a name intRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: author_list
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: author_resolve
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: document_get
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: document_list
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: excerpt_prepare
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: excerpt_render
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: location_list
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: location_resolve
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: media_render
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: search
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: source_get
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: source_list
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: source_resolve
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: track_get
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: track_list
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: transcript_window
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: verse_get
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: verse_list
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: verse_render
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: verse_synonyms
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: verse_translation
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
The server exposes one or more ui:// (MCP Apps) resources whose HTML/JS renders inside the host client — a client-side injection / data-exposure surface most scanners ignore. Flagged for review, not damning on its own.
3 ui:// resource(s); e.g. ui://corpus/excerpt-player.htmlRecommendationReview each ui:// resource’s markup and scripts; treat host-rendered UI as untrusted, sandbox it, and never expose secrets or conversation context to it.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Get a document (commentary/prose_chapter/letter) by id.
List documents at a reference / in a book. A verse's purport = document_list(source, tokens, kind:"commentary").
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 shou
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. R
List all locations.
Find a location by name (fuzzy).
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.
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,
Get one book by id or code ("source_…" or "BG"/"БГ").
List all books (Caitanya-caritāmṛta is three sources).
Find a book by name (fuzzy): "gita", "бхагаватам", "CC Madhya".
Get a track (lecture/conversation): metadata, cited references, transcript/pdf availability.
List tracks, filterable by reference (source[+tokens] = tracks citing it), author/location/kind/date/lang. No filter ⇒ recent tracks (date desc).
Read a track's transcript around a time window (from a search track hit or track_list). Widen with pad_ms.
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 canon
List the verses of a book / chapter. Skips .0 chapter summaries; collapses merged verses into one item with a covers span.
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, an
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;
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` manifes