Vancouver について
Vancouver は、Phoenix や Bandit のサーバーに MCP 機能を追加するためのシンプルな Elixir ライブラリです。初期化とリクエストの検証を処理し、ツールとプロンプトの作成を補助する関数を提供します。ライブラリは開発初期段階にあり、破壊的変更が入る可能性があります。
主な機能
- 01Phoenix や Bandit サーバーへの MCP ルート追加
- 02ツールとプロンプトを定義するヘルパーモジュール
- 03初期化とリクエスト検証の自動処理
- 04ストリーミングは非対応で同期応答のみ
活用シーン
- 01Elixir アプリケーションのツールを MCP クライアントに公開
- 02コードレビューなどの作業向けに定義済みプロンプトを提供
MCP 対応
本プロジェクトは MCP サーバーを構築するためのライブラリです。Elixir アプリケーションのツールとプロンプトを /mcp ルートで Claude Desktop などのクライアントに提供します。現在サポートしているのは tools と prompts のみです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Vancouver
Vancouver を使うと、Phoenix/Bandit サーバーに Model Context Protocol (MCP) の機能を簡単に追加できます。Vancouver は初期化とリクエストの検証を処理し、MCP ツールやプロンプトの作成を簡素化するヘルパー関数を提供します。
はじめに
1. 依存関係を追加する
mix.exs に次のように記述します。
defp deps do
[
{:vancouver, "~> 0.3"}
]
end
2. ツール/プロンプトを作成する
次のようにツールを実装できます。
defmodule MyApp.Tools.CalculateSum do
use Vancouver.Tool
def name, do: "calculate_sum"
def description, do: "Add two numbers together"
def input_schema do
%{
"type" => "object",
"properties" => %{
"a" => %{"type" => "number"},
"b" => %{"type" => "number"}
},
"required" => ["a", "b"]
}
end
def run(conn, %{"a" => a, "b" => b}) do
send_text(conn, "#{a + b}")
end
end
プロンプトは次のように実装できます。
defmodule MyApp.Prompts.CodeReview do
use Vancouver.Prompt
def name, do: "code_review"
def description, do: "Asks the LLM to analyze code quality and suggest improvements"
def arguments do
[
%{
"name" => "code",
"description" => "The code to review",
"required" => true
}
]
end
def run(conn, %{"code" => code}) do
send_text(conn, "Please review this code: #{code}")
end
end
3. 設定を追加する
config.ex に次のように記述します。
config :vancouver,
name: "My MCP Server",
version: "1.0.0"
4. MCP ルートを追加する
router.ex に次のように記述します。
forward "/mcp", Vancouver.Router,
tools: [MyApp.Tools.CalculateSum],
prompts: [MyApp.Prompts.CodeReview]
5. (任意)MCP クライアントに追加する
たとえば、Claude Desktop の場合は、次のように設定 Settings -> Developer -> Edit config を編集できます。
{
"mcpServers": {
"MyApp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:4000/mcp"
]
}
}
}
サーバーを起動し、Claude を再起動すると、MCP ツールを使用できるようになります。🚀
FAQ
Vancouver は Model Context Protocol 仕様のすべてに対応していますか?
まだ対応していません。現在、Vancouver は次の機能に対応しています。
- ツール
- プロンプト
- 同期レスポンス(ストリーミングなし)
ただし、このライブラリはシンプルなので、ニーズに合わせて変更できます。
プロトコル自体の詳細については、MCP User Guide をご覧ください。
Vancouver は安定していて、本番環境で使用できますか?
いいえ。このライブラリは開発の初期段階にあります。破壊的変更が発生する可能性があります。
このライブラリが Vancouver と呼ばれるのはなぜですか?
Vancouver は MCP(Mountain、Coffee、Phoenix)の自然な故郷だからです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。