Перейти к основному содержимому

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 репозитория.