Vancouver
Упрощает добавление поддержки протокола Model Context в Phoenix/Bandit серверы на Elixir для инструментов и промптов.
Описание
Vancouver — это лёгкая библиотека для Elixir, которая интегрирует функциональность Model Context Protocol (MCP) в Phoenix или Bandit серверы. Она обрабатывает инициализацию, валидацию запросов и предоставляет хелперы для создания инструментов (tools) и промптов. Поддерживает синхронные ответы, но не стриминг. Идеальна для разработки серверов, взаимодействующих с LLM, таких как Claude, для задач автоматизации, анализа кода или вычислений. Технологии: Elixir, Phoenix. В ранней разработке, возможны изменения.
Возможности
Создание инструментов (tools)
Определяет схемы ввода и выполняет функции, такие как вычисления, с отправкой текстовых ответов.
Создание промптов (prompts)
Генерирует запросы для LLM, например, для ревью кода, с аргументами и описаниями.
Валидация запросов
Автоматическая проверка входных данных по JSON-схемам для инструментов и промптов.
Интеграция с Phoenix/Bandit
Добавление MCP-маршрутов в роутер для обработки запросов на /mcp.
Синхронные ответы
Поддержка немедленных откликов без стриминга для простых взаимодействий с клиентами.
Установка
- Добавьте зависимость в mix.exs:
defp deps do
[
{:vancouver, "~> 0.3"}
]
end
Создайте инструменты и промпты, используя модули Vancouver.Tool и Vancouver.Prompt.
Настройте config.ex:
config :vancouver,
name: "My MCP Server",
version: "1.0.0"
- Добавьте маршрут в router.ex:
forward "/mcp", Vancouver.Router,
tools: [MyApp.Tools.CalculateSum],
prompts: [MyApp.Prompts.CodeReview]
- (Опционально) Для клиента вроде Claude Desktop добавьте конфиг с mcp-remote для подключения к http://localhost:4000/mcp.
Запустите сервер командой mix phx.server.