MCP-сервер для ИИ-агентов
У Dhamma.gift есть MCP-сервер: ИИ-ассистент (Claude, клиенты в стиле ChatGPT, Cursor и другие) сам ищет по Палийскому канону, читает сутты и сравнивает переводы, а в ответе даёт цитаты и ссылки на ридер. Используется тот же поисковый движок и те же тексты, что на сайте.
Адрес: https://dhamma.gift/mcp (Streamable HTTP, без входа, только чтение).
Инструменты
| Инструмент | Что делает |
|---|---|
search | Поиск по слову/подстроке в палийском корне и выбранных языках перевода. Возвращает сутты и сегменты-попадания со ссылками на ридер. |
get_text | Сутта по id (mn1, dn22, sn56.11): пали и переводы. |
compare_translations | Один сегмент (например mn129:21.3) на пали и во всех доступных переводах рядом. |
list_structure | Что есть: коллекции, книги с числом сутт, языки и переводчики; с префиксом (mn, sn56) — список сутт под ним. |
Подключение
- Claude (claude.ai / Desktop): Settings → Connectors → Add custom connector → URL
https://dhamma.gift/mcp. - Claude Code:
claude mcp add --transport http dhamma-gift https://dhamma.gift/mcp - Другие клиенты: добавьте удалённый (HTTP) MCP-сервер с тем же адресом.
Дальше спрашивайте обычными словами, например: «Найди все сутты про черепаху, процитируй пали и русский перевод со ссылками».
Как это работает
- Поиск буквальный: он ищет буквы, а не смысл. По теме ассистент сам пробует палийские и переводные слова
(
kacchapa,kummo, turtle, черепаха) и объединяет результаты. В запросе минимум 3 буквы; диакритика не учитывается (kacchapнайдётmahākacchapa). - В каждом ответе есть ссылки на ридер:
https://dhamma.gift/mn129— сутта,https://dhamma.gift/mn129:21.3— точный сегмент. - Машинные (AI) переводы скрыты, как и в поиске на сайте.
- Один запрос по умолчанию возвращает до 40 сутт (
limit, максимум 200); если ответ обрезан, это сказано. - Регулярные выражения принимаются в тех же пределах, что в поиске на сайте; тяжёлые отклоняются.
Под капотом
Наш сервер. core/mcp-server.js в репозитории dg-node, подключён как POST /mcp в dg-fastify.js
(GET и DELETE отвечают 405: сервер без состояния, на каждый запрос свой объект, сессий нет).
search и get_text — тонкие обёртки над функциями, на которых стоят /search и /api/text; compare_translations
и list_structure читают dg.db напрямую (только чтение). Описания инструментов и краткая инструкция агенту
(поиск буквальный, пробуй палийские и переводные слова, цитируй с переводчиком и ссылкой) передаются вместе с сервером.
Мы и чужой сервер. «ИИ-поиск» на сайте (/api/ai-search) просит языковую модель выдать палийские термины и
английскую фразу, затем вызывает у хостящегося Tripitaka MCP инструмент search_hybrid
(core/tipitaka-mcp-client.js), чтобы искать места по смыслу. У него только пали и английский Суджато, он
используется как запасной вариант: обычный точный поиск от него не зависит. Кандидаты, которых нет в корпусе,
отбрасываются до обращения к нему.
План и открытые вопросы (ранжирование, режим stdio для офлайн-приложения, отдельный поддомен mcp.) — в
docs/MCP_PLAN.md репозитория.