io.modelcontext/clojure-sdk
SDK на Clojure для создания серверов протокола контекста моделей
Описание
Это библиотека на Clojure для разработки серверов Model Context Protocol, основанная на lsp4clj для обработки JSON-RPC. Поддерживает инструменты (tools), ресурсы и промпты. Примеры включают калькулятор для арифметики, визуализацию данных с Vega-lite и анализ кода. Идеально для интеграции с ИИ, такими как Claude, для создания кастомных инструментов в экосистеме LLM.
Возможности
Создание серверов
Реализация базового сервера с обработкой запросов/ответов через server.clj и JSON-RPC.
Транспортный слой
Поддержка STDIO транспорта с использованием core.async для потоков ввода/вывода.
Обработка ошибок
Кастомная система ошибок в mcp/errors.clj для надежности.
Валидация протокола
Спецификации в specs.clj для проверки requests, responses и компонентов.
Инструменты и промпты
Регистрация tools (например, арифметика), resources и prompts (например, анализ кода).
Визуализация данных
Интеграция с Vega-lite для генерации чартов из данных.
Установка
Для установки добавьте в deps.edn: {io.modelcontextprotocol/mcp-clojure-sdk {:git/url “https://github.com/unravel-team/mcp-clojure-sdk.git" :git/sha “039cf220ac6bb3858f71e823016035e257a5380d”}}
Для примеров: make clean && make examples-jar
Пример запуска калькулятора в Claude Desktop: { “calculator”: { “command”: “java”, “args”: [ “-Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory”, “-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog”, “-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector”, “-Dlog4j2.configurationFile=log4j2-mcp.xml”, “-Dbabashka.json.provider=metosin/jsonista”, “-Dlogging.level=INFO”, “-cp”, “/path/to/examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar”, “calculator_server” ] } }