# Vedaword MCP — a public MCP server that won't make up scripture

A public MCP server over the Vedaword library — about 110,000 Sanskrit verses with translations and commentaries. Any AI assistant can search it and quote real verses with a citation and a link. Its main rule: when the library has no good answer, it says so, instead of handing the model a weak match to build on.

- **Author:** Fedor Chishchin
- **Role:** Solo — design, implementation, tests
- **Period:** 2026
- **Stack:** TypeScript · Next.js · MCP (Streamable HTTP) · PostgreSQL · pgvector · hybrid search
- **Source:** https://fedorthinks.com/work/vedaword-mcp

---

## The problem

Ask an AI assistant what an old text says, and it will happily answer — often with a verse that
sounds right but doesn't exist, or a real verse with the wrong number. For scripture that is the
worst possible mistake: people quote it, teach from it, and trust it.

The fix is not a better prompt. The assistant needs a way to look the text up, and it needs to be
told plainly when there is nothing to find.

## What I built

An MCP server for [Vedaword](https://vedaword.com), a library of Sanskrit scripture: the
Mahābhārata, the Rāmāyaṇa, all 108 Upaniṣads, the Bhagavad-gītā, the Vedānta-sūtra with its
commentary and more — about 110,000 verses. Any assistant that speaks MCP (Claude, ChatGPT,
Cursor…) can connect to `https://mcp.vedaword.com` and use a few focused tools:

- **search_texts** — find passages by meaning and by wording at the same time, so a paraphrased
  question works as well as an exact phrase.
- **get_verse** — one verse in full: Sanskrit, word-by-word meaning, translation, commentary.
- **lookup_sanskrit_term** — what a Sanskrit word means and where it appears.
- **find_similar_verses** — other places that say the same thing.
- **list_works** — what is in the library and in which languages.

## The rules that matter

- **Honest "no answer".** Every search returns a confidence level. When it is `none`, the server
  returns nothing to quote, and the tool description tells the model to say so — instead of
  building an argument on a weak match.
- **Checkable quotes.** Every result carries the exact citation, a link to the verse on the site,
  and a version hash of the text, so a quote can be checked later.
- **Say which language you got.** Some works exist only in Russian. The server says what language
  each passage is in, so the assistant knows when it is translating and doesn't pretend to quote.
- **Few tools, clear names.** Five tools with no overlap, because more tools with similar
  descriptions make a model pick the wrong one.

## How it's built

The server is a route in the same Next.js app as the site, speaking Streamable HTTP. Search is
hybrid: full-text search and vector search (PostgreSQL with pgvector) run together and their
results are merged and ranked. It is public and read-only, so it needs no login. Every change is
checked against real questions with known right answers before it ships.

## Why it exists

It is the cleanest proof of what I sell: an MCP server that turns a real body of knowledge into
tools any AI assistant can use — and that is designed around the one failure that matters most
for its data.
