MCP-сервер для ИИ-агентов
У Dhamma.gift есть MCP-сервер: ИИ-ассистент (Claude, клиенты в стиле ChatGPT, Cursor и другие) сам ищет по Палийскому канону, читает сутты и сравнивает переводы, а в ответе даёт цитаты и ссылки на ридер. Используется тот же поисковый движок и те же тексты, что на сайте.
Адрес: https://api.dhamma.gift/mcp (Streamable HTTP, без входа, только чтение). Сервер есть в
официальном реестре MCP под именем
gift.dhamma/pali-canon. Он также описан в документации API.
Инструменты
| Инструмент | Что делает |
|---|---|
search | Поиск по слову, подстроке или регулярному выражению. Возвращает список найденных сутт (id, название, число совпадений, ссылка на ридер): сначала сутты, где термин определяется, затем названные по нему, затем по частоте. include_segments добавляет найденные строки на пали, include_translations с langs — переводы. |
get_text | Сутта по id (mn1, dn22, sn56.11): пали, а с langs — и переводы; editions добавляет весь текст в других изданиях, построчно. |
compare_editions | Издания канона построчно: Махасангити рядом с Буддха Джаянти Типитакой (Шри-Ланка), Чаттха Сангаяна Типитакой (Мьянма), Сиамской Типитакой (Siam Rath), печатной Махасангити 2005 года и изданиями Pali Text Society (DN, MN, SN, AN). Сутта, строка или диапазон: сначала сводка по каждому изданию, затем строки, где издания расходятся, по словам. |
compare_translations | Один сегмент (например mn129:21.3) на пали, во всех изданиях и во всех доступных переводах рядом. |
list_structure | Что есть: коллекции, книги с числом сутт, языки и переводчики; с префиксом (mn, sn56) — список сутт под ним. |
Подключение
- Claude (claude.ai / Desktop): Settings → Connectors → Add custom connector → URL
https://api.dhamma.gift/mcp. - Claude Code:
claude mcp add --transport http dhamma-gift https://api.dhamma.gift/mcp - Другие клиенты: добавьте удалённый (HTTP) MCP-сервер с тем же адресом.
Дальше спрашивайте обычными словами, например: «Найди все сутты про черепаху, процитируй пали и русский перевод со ссылками».
Как это работает
- Поиск буквальный: он ищет буквы, а не смысл. По теме ассистент сам пробует палийские и переводные слова
(
kacchapa,kummo, turtle, черепаха) и объединяет результаты. В запросе минимум 3 буквы; диакритика не учитывается (kacchapнайдётmahākacchapa). - В каждом ответе есть ссылки на ридер:
https://dhamma.gift/mn129— сутта,https://dhamma.gift/mn129:21.3— точный сегмент. - Ответ — только на пали, пока ассистент не попросит переводы (
include_translations,langs). Английский Суджато не включается, если его не назвать явно; машинные (AI) переводы скрыты, как и в поиске на сайте. - Один запрос по умолчанию даёт до 40 сутт;
limitпринимает число или"all". В ответе всегда есть настоящее число найденных сутт, и сказано, если список обрезан. - Регулярные выражения работают как в поиске на сайте. Шаблоны вроде
kata.*dukkha(«Katamañca … dukkhaṁ?») иvucc.*dukkha(«idaṁ vuccati … dukkhaṁ») находят места, где канон определяет термин.
Под капотом
Наш сервер. 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 напрямую (только чтение). Описания инструментов и краткая инструкция агенту
(поиск буквальный, пробуй палийские и переводные слова, цитируй с переводчиком и ссылкой) передаются вместе с сервером.
План и открытые вопросы (ранжирование, режим stdio для офлайн-приложения, отдельный поддомен mcp.) — в
docs/MCP_PLAN.md репозитория.