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

Vancouver

Упрощает добавление поддержки протокола Model Context в Phoenix/Bandit серверы на Elixir для инструментов и промптов.

Elixir
38 stars

Описание

Vancouver — это лёгкая библиотека для Elixir, которая интегрирует функциональность Model Context Protocol (MCP) в Phoenix или Bandit серверы. Она обрабатывает инициализацию, валидацию запросов и предоставляет хелперы для создания инструментов (tools) и промптов. Поддерживает синхронные ответы, но не стриминг. Идеальна для разработки серверов, взаимодействующих с LLM, таких как Claude, для задач автоматизации, анализа кода или вычислений. Технологии: Elixir, Phoenix. В ранней разработке, возможны изменения.

Возможности

Создание инструментов (tools)

Определяет схемы ввода и выполняет функции, такие как вычисления, с отправкой текстовых ответов.

Создание промптов (prompts)

Генерирует запросы для LLM, например, для ревью кода, с аргументами и описаниями.

Валидация запросов

Автоматическая проверка входных данных по JSON-схемам для инструментов и промптов.

Интеграция с Phoenix/Bandit

Добавление MCP-маршрутов в роутер для обработки запросов на /mcp.

Синхронные ответы

Поддержка немедленных откликов без стриминга для простых взаимодействий с клиентами.

Установка

  1. Добавьте зависимость в mix.exs:
defp deps do
  [
    {:vancouver, "~> 0.3"}
  ]
end
  1. Создайте инструменты и промпты, используя модули Vancouver.Tool и Vancouver.Prompt.

  2. Настройте config.ex:

config :vancouver,
  name: "My MCP Server",
  version: "1.0.0"
  1. Добавьте маршрут в router.ex:
forward "/mcp", Vancouver.Router, 
  tools: [MyApp.Tools.CalculateSum],
  prompts: [MyApp.Prompts.CodeReview]
  1. (Опционально) Для клиента вроде Claude Desktop добавьте конфиг с mcp-remote для подключения к http://localhost:4000/mcp.

Запустите сервер командой mix phx.server.

Информация

Язык
Elixir
Лицензия
MIT License
GitHub Stars
38

Ссылки