Vedaword
Server Details
Sanskrit scripture search: Mahabharata, Upanishads, Gita; cited verses, honest no-answer.
- Status
- Healthy
- Uptime
- 96.7% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 8 tools
Each tool has a clearly separate role: browse_work reads structure in order, get_verse fetches one verse, search_texts finds passages from words, and find_similar_verses finds parallels from an existing verse. The descriptions explicitly route between the easily confused pairs, leaving little room for misselection.
All names use snake_case with a predictable verb-first pattern: browse_work, find_similar_verses, get_verse, list_works, lookup_sanskrit_term, search_texts. The only variation is natural length, not convention.
Eight tools is well scoped for a scripture library: discovery, search, reading, verse detail, parallel passages, Sanskrit term lookup, and calendar. Each tool earns its place without obvious redundancy.
The surface covers the core read-only lifecycle well: works, authors, search, browsing, verse detail, parallels, term lookup, and observances. Minor gaps remain, such as no direct tool to fetch the linked observance story page or a dedicated work-detail call beyond list_works.
Available Tools
8 toolsbrowse_workBrowse a work in orderARead-onlyInspect
Walk a work's structure in order: a work gives its sections, a section its chapters, a chapter its verses (label and translation, in pages). Use it when the user wants to read a chapter or a book through, asks what comes after a verse, or what a book contains; search_texts cannot do that.
Three steps, each named in the reply of the one before: work alone lists the sections; add section for its chapters; add chapter (the index from the listing) for its verses. Every reply carries next, the arguments of the call that continues. To quote a verse, call get_verse with its unit_id: it returns the citation and version hash.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Which page of a section's chapters. Default 1. | |
| work | Yes | A work slug, as list_works gives it. | |
| limit | No | Verses per page. Default 20, at most 50. | |
| offset | No | Where in the chapter to start, counting verses from 0. Default 0. | |
| chapter | No | The chapter's `index` in the section's listing; it opens that chapter's verses. | |
| section | No | A section slug from the work's listing (a parva, a canto, an upaniṣad). | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. | |
| page_size | No | Chapters per page. Default 50, at most 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and closed-world, so safety is covered; the description goes further by disclosing the reply contract (`next` carries the arguments for the continuation call) and the language behavior (not a filter, results report their actual language). It also routes verse quoting to get_verse via `unit_id`, which is behavior an agent could not infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the when-to-use clause, then the three-step procedure, then the handoff to get_verse. Every sentence carries distinct information; no filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Eight parameters and no output schema would normally be a gap, but the description supplies the missing return-value contract (`next`, labels and translations, paging) and the stepwise invocation model. An agent can drive the full browse sequence from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented; the description adds the compositional semantics the schema lacks — which parameters belong to which of the three steps and that `chapter` must be the `index` from the previous listing. It does not restate pagination semantics, but the schema handles those adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Walk a work's structure in order") and immediately concretizes the hierarchy: work -> sections -> chapters -> verses. It also explicitly contrasts itself with search_texts, so an agent can choose between browsing and searching without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggering situations (reading a chapter or book through, asking what follows a verse, asking what a book contains) and names the alternative that cannot serve them ("search_texts cannot do that"). It also prescribes exact escalation: `work` alone, then `section`, then `chapter` with the `index`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_versesFind parallel passagesARead-onlyInspect
Given a verse, find other passages in the library that say something close to it — by meaning, not by shared words. Start here when you already have a verse; when you only have words, a question or a term, use search_texts.
Use it to check whether a teaching appears elsewhere before presenting it as the tradition's position, to gather parallel places, or to see how different works treat one subject. Set exclude_same_work when you want an independent witness: the next verse of the same chapter is nearly always similar and proves nothing.
An empty result is a real answer — it means the library says this in one place only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Passages to return. Default 8. | |
| verse | Yes | A citation ("BG 2.47") or a `unit_id` from an earlier result. | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. | |
| exclude_same_work | No | Skip passages from the same work, so what comes back corroborates rather than repeats. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnlyHint) and scope (openWorldHint=false), and the description adds behavioral context they don't: matching is semantic rather than lexical, an empty result is a legitimate answer meaning the library attests the idea once, and same-chapter neighbors are near-duplicates that 'prove nothing.' That last point prevents a real false-positive pattern an agent would otherwise fall into.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short paragraphs ordered by importance: what it does and its sibling boundary first, use cases and the key parameter second, the empty-result caveat last. No sentence restates the name or the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries return-value burden and does handle the most important cases: that results report their actual language and that zero results is meaningful. It stops short of saying what a result actually contains (citation, work, verse text, similarity measure), which is the one gap for an agent consuming the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining the intent behind exclude_same_work — independent corroboration versus repetition — and warning that the adjacent verse is trivially similar. It does not add anything for limit or verse beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (find passages similar to a given verse) plus the mechanism that defines it: similarity by meaning, not by shared words. It explicitly contrasts itself with the sibling search_texts, so an agent can choose between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule — 'Start here when you already have a verse; when you only have words, a question or a term, use search_texts' — naming the alternative and the condition that selects it. It also lists three concrete use cases (verify a teaching, gather parallels, compare treatments of a subject).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verseRead one verse in fullARead-onlyInspect
Fetch one verse whole: the Sanskrit in Devanāgarī and IAST, the word-by-word breakdown with the meaning each word carries in this passage, the literary translation, the commentary, and optionally the surrounding verses.
Call it after search_texts when you are going to quote, and whenever the user names a verse. The word-by-word table is what lets you explain or re-translate a line honestly instead of trusting a finished translation.
Accepts citations as people write them, not only internal ids.
To read a chapter or a whole book in order, use browse_work. To read on around one verse, call this again with context 5 and then with the unit_id of the last neighbour marked "after"; each reply carries the five verses on either side with their translations.
| Name | Required | Description | Default |
|---|---|---|---|
| verse | Yes | A citation — "BG 2.47", "Бхагавад-гита 2.47", "Mahabharata 1.1.1", "Upanishads Mundaka 2.2.8" — or a `unit_id` from an earlier result. | |
| context | No | Verses to include either side, within the same chapter. Use 1–2 when the argument depends on what surrounds the verse. Default 0. | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint and openWorldHint, so the description carries the real disclosure burden and does well: it says citations may be written any way a person writes them, that `language` is a preference and not a filter (results report their actual language), and that each reply includes five verses either side with translations. It stops short of describing error behaviour for an unresolved citation or the exact shape/ordering of the returned payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what you get, then when to call it, then the alternatives, then the traversal recipe — a sensible information order with no filler sentences. It runs three paragraphs and the final traversal paragraph is dense, but every clause is actionable rather than decorative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe the return payload, and it does: the fields returned, the word-by-word table's purpose, and the neighbour verses included under `context`. Combined with the routing guidance and citation flexibility, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above that by adding semantics the schema doesn't: the `verse` parameter accepts human-written citations, not just internal ids, and `context` is the hook for the chained traversal recipe using the neighbour's `unit_id`. The `context` 0–5 bound and language enum remain schema-only, which is fine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ("Fetch one verse whole") and enumerates exactly what comes back: Devanāgarī, IAST, word-by-word breakdown, translation, commentary, optional neighbours. It explicitly distinguishes itself from search_texts (discovery) and browse_work (sequential reading), so an agent can route between the three without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States concrete triggers ("after search_texts when you are going to quote", "whenever the user names a verse") and names the alternative for the other case (browse_work for a chapter or whole book). It even documents a pagination recipe: re-call with context 5, then the unit_id of the last neighbour marked "after".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_authorsList the authors in the libraryARead-onlyInspect
List the authors the tradition names, grouped by period, each with a short note and the books credited to them. Call it when the user asks who wrote something, or wants the works of one acharya; pass the author's id to list_works to see the books. Filter by era: shruti, classical, caitanya, successors, modern.
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | Only the authors of this period. | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds useful behavioral context beyond that: results are grouped by period, include a short note, and include the books credited to each author. It does not mention pagination or the language fallback behavior, but with annotations present this is still a strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and only three sentences long, with no wasted framing. It does repeat the `era` enum values already present in the schema, which is mildly redundant, but it remains easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description explains the shape of the result: authors grouped by period, each with a short note and credited books. Parameter behavior is fully covered by the schema, and annotations cover safety. Only minor details such as pagination or language behavior are left to the schema or unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds a little context by calling out `era` as a filter and repeating its allowed values, but it does not mention the `language` parameter at all. With the schema doing the heavy lifting, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: listing authors the tradition names, grouped by period, with notes and credited books. It also explicitly distinguishes the tool from list_works by saying to pass an author's `id` to list_works to see books. An agent can identify the tool's scope and sibling relationship without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states exactly when to call it: when the user asks who wrote something or wants the works of one acharya. It also gives the alternative route for book-level results: pass the author's `id` to list_works. The usage boundary is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_worksList the works in the libraryARead-onlyInspect
List the works with their sizes, shelf, author and available languages. Call it at the start of a conversation about scripture, or when you need work slugs for filtering. The list is short by default: no descriptions.
Narrow it with category (a shelf: itihasa, purana, upanishad, vedanta, samhita, shastra, kavya, shruti, smriti; shruti is the upanishad shelf, smriti the itihasa and purana shelves) or with author (an id from list_authors). Set include_descriptions for a paragraph on each work.
It also tells you what is not translated: several works exist only in Russian. Check languages before promising the user an English text.
| Name | Required | Description | Default |
|---|---|---|---|
| author | No | Only the works credited to this author id (see list_authors). | |
| category | No | Only the works on this shelf. | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. | |
| include_descriptions | No | Add a paragraph describing each work. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only safety, but the description adds behavior they don't: the default response is deliberately terse ('no descriptions'), descriptions are opt-in, and several works exist only in Russian. Flagging a partial-coverage data caveat the agent would otherwise over-promise on is exactly the kind of disclosure annotations can't carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short paragraphs, front-loaded with what you get and when to call it, then narrowing options, then the caveat. The shruti/smriti parenthetical is dense but load-bearing; no sentence is pure padding, though the response-shape sentence overlaps slightly with what the schema implies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description names the returned fields and the default truncation, so the agent knows what it will receive. With four optional params and clear general shape, nothing needed to call it correctly or interpret results is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns an extra point by explaining relationships the schema doesn't encode — that `shruti` is the upanishad shelf and `smriti` spans itihasa plus purana, and that `author` takes an id from list_authors. It does restate the language-is-not-a-filter behavior already stated in the schema, which keeps it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource ('List the works') plus the exact payload (sizes, shelf, author, available languages). It also implicitly separates itself from verse-level siblings by mentioning 'work slugs for filtering', so an agent knows this is the catalog-level entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger conditions ('at the start of a conversation about scripture', 'when you need work slugs for filtering') and points to the sibling list_authors as the source of author ids. The closing caution to check `languages` before promising an English text is a real usage constraint, not filler.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_sanskrit_termLook up a Sanskrit wordARead-onlyInspect
Look up a Sanskrit word: its spellings across scripts, the meanings it carries in this corpus, how many verses gloss it, and examples of where it occurs.
Built from the word-by-word breakdowns of some 30 000 verses, so these are the meanings translators actually assigned to the word in these texts — not a lexicon's list of everything it could mean. Use it before translating a term yourself, and whenever the user asks what a word means.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | In IAST (śeṣa, diacritics optional) or Devanāgarī (शेष). A word written in another script is not in this dictionary — the headwords are Sanskrit — but search_texts will still find it in the prose. | |
| examples | No | Verses to cite as examples. Default 5. | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuinely non-obvious provenance: the data comes from word-by-word breakdowns of ~30,000 verses and reflects translator-assigned meanings rather than dictionary glosses — a critical caveat that shapes how results should be interpreted. It stops short of describing result ordering or limits beyond the examples cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight paragraphs: the first front-loads the return payload, the second supplies the corpus-provenance caveat and usage triggers. No sentence is filler; each adds either scope or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the four result components (spellings, meanings, gloss counts, examples), and it explains the data's origin so an agent knows what to trust. Nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including script/IAST guidance, the examples default of 5, and the non-filter nature of the language enum, so the schema already carries parameter meaning. The description adds no parameter-level detail beyond framing the term concept, which is the correct baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (look up) and resource (Sanskrit word) and enumerates exactly what is returned: cross-script spellings, corpus meanings, verse gloss counts, and occurrence examples. It also draws a sharp boundary against a lexicon ('not a lexicon's list of everything it could mean'), so an agent can distinguish this from generic search or its own translation attempt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear positive triggers: 'Use it before translating a term yourself, and whenever the user asks what a word means.' That is actionable context lacking in most definitions, but it never names a sibling alternative (e.g., search_texts for non-Sanskrit scripts) inside the description, so exclusion guidance is left to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_textsSearch the scripturesARead-onlyInspect
Search the Vedaword library of Sanskrit scripture by meaning as well as by wording, so a paraphrased question works and a Sanskrit term reaches passages written in another script. This is the first thing to call for any factual question about what the scriptures say.
Start here when you have words: a question, a phrase, a term. When you already have a verse and want its parallels, use find_similar_verses instead; to read a known verse whole, use get_verse; to read a chapter or a book in order, use browse_work.
Returns passages with an exact citation, a URL and the version hash of the text quoted.
Read confidence before using the results. "none" means the library has no answer and the result list is empty — report that to the user instead of reaching for something related. "low" means the passages are leads, not answers. matched_by says how each was found: a passage found only by "vector" shares no words with the query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Passages to return. Default 8. | |
| parts | No | Which part of a verse to search: `verse` is the Sanskrit source text, `translation` the literary translation, `word_by_word` the gloss table, `commentary` Vedaword's own exposition, `bhashya` an ācārya's original commentary. Omit to search all. | |
| query | Yes | A question, a phrase, a Sanskrit term, or a citation such as "BG 2.47". Any language, and Sanskrit in Devanāgarī or IAST. Quote the string to require the exact wording. | |
| works | No | Restrict to these works by slug — see list_works. Omit to search all. | |
| language | No | Preferred language of the translations returned. Not a filter: works that exist only in Russian are returned in Russian, and each result says which language it is actually in. Default: en. | |
| full_text | No | Return each passage whole instead of an excerpt. Use when you intend to quote; excerpts are for deciding what to quote. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and closed-world safety, yet the description adds substantial behavior beyond them: what a result contains (exact citation, URL, version hash), the confidence contract including the critical 'none' = no answer / empty list instruction, and how matched_by='vector' implies zero lexical overlap. This is exactly the guidance an agent needs to interpret results honestly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what the tool is and why it works, then a usage section, then return-value semantics. Each paragraph carries distinct, non-redundant information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming the returned fields, the confidence levels, and the interpretation rule for matched_by. Combined with the sibling routing, an agent has everything needed to call it and to use the results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description still adds value by explaining the hybrid meaning+wording search behind `query` and cross-script term matching, which the schema does not say. It does not elaborate on limit or full_text beyond the schema, so it stays a notch above baseline rather than fully additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the Vedaword library of Sanskrit scripture') and immediately names the two retrieval modes (meaning and wording). It explicitly differentiates itself from find_similar_verses, get_verse, and browse_work, so an agent can pick it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Start here when you have words: a question, a phrase, a term') plus a complete routing table of alternatives and the condition each covers (known verse to read whole → get_verse, chapter in order → browse_work). Also states the excluded case explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
browse_work1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
find_similar_verses1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_vaishnava_calendar1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_verse1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
list_authors1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
list_works1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
lookup_sanskrit_term1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
search_texts1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
1 tool update
- Added
browse_work
2 tool updates
- Added
list_authors - Changed
list_works3 fields changed- added
Input schema / properties / authorAdded value: +{ + "description": "Only the works credited to this author id (see list_authors).", + "minLength": 1, + "type": "string" +} - added
Input schema / properties / categoryAdded value: +{ + "description": "Only the works on this shelf.", + "enum": [ + "itihasa", + "purana", + "upanishad", + "vedanta", + "samhita", + "shastra", + "kavya", + "shruti", + "smriti" + ], + "type": "string" +} - added
Input schema / properties / include_descriptionsAdded value: +{ + "description": "Add a paragraph describing each work. Default false.", + "type": "boolean" +}
6 tool updates
- First observed
find_similar_verses - First observed
get_vaishnava_calendar - First observed
get_verse - First observed
list_works - First observed
lookup_sanskrit_term - First observed
search_texts
Publisher details
- Operator
- Vedaword
- Operator website
- https://vedaword.com
- Vendor relationship
- First-party
- Documentation
- https://vedaword.com/en/mcp
- Trust center
- Not applicable
- Restrictions
- Not applicable
Related MCP Connectors
Full Bhagavad Gita (Sanskrit + English) and Ganguli's Mahabharata: search verses and passages.
Read-only semantic search over Vedic scripture verses, commentaries, and recorded lectures.
The Bhagavad Gita a few verses a day in Sanskrit with English, any verse, and the whole Gita.
Valmiki Ramayana verses: lookup, search and verse-of-the-day in 4 languages
Related MCP Servers
- AlicenseAqualityCmaintenanceSearch and retrieve Devanagari Hindi shayari from an owner-authorized, provenance-tracked corpus, with audit and research-only inspection capabilities via stdio.4MIT
- AlicenseNot gradedqualityBmaintenanceEnables agentic hybrid search over a curated corpus of philosophical and spiritual texts, returning original passages with precise references so models can search, read, quote, and translate them.1GPL 3.0
- AlicenseAqualityBmaintenanceEnables clients to search an indexed corpus of the epic's 24,214 verses and fetch single verses, whole sargas, or multi-language translations in Sanskrit, English, Hindi, and Telugu. It also returns a deterministic verse of the day keyed to any given calendar date, served over stdio or stateless HTTP.5MIT
- AlicenseNot gradedqualityCmaintenanceSemantic search and comparative retrieval over a multi-tradition corpus of sacred and foundational texts, exposed as an MCP server.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.