Elixir MCP Server について
Elixir MCP Server は、Elixir、Bandit、Plug で構築された基本的な MCP サーバーのサンプルです。Elixir での開発を学ぶ人向けに、SSE とファイル一覧、エコー、天気ツールを備えています。
主な機能
- 01Elixir での MCP サーバー実装
- 02SSE トランスポートの使用
- 03ファイル一覧ツールの提供
- 04メッセージエコーツールの提供
- 05天気情報取得ツールの提供
活用シーン
- 01Elixir MCP サーバーの実装を学習
- 02SSE クライアント接続のテスト
- 03天気情報の照会
- 04サンプルへのカスタムツール追加
MCP 対応
SSE 経由で MCP クライアントに `list_files`、`echo`、`get_weather` ツールを公開します。クライアントは SSE で接続し、メッセージエンドポイントからリクエストを送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Elixir MCP サーバー
Bandit と Plug を使用した、Elixir による Model Context Protocol(MCP)サーバーの実装です。
Model Context Protocol(MCP)は、標準化されたサーバー実装を通じて、AI モデルがローカルおよびリモートのリソースと安全にやり取りできるようにするオープンプロトコルです。 このプロジェクトは、SSE(Server-Sent Events)をトランスポートプロトコルとして使用する MCP サーバーの基本的な例です。https://modelcontextprotocol.io/quickstart/server の例をベースにしています。
前提条件
-
Elixir 1.18 以降
-
Erlang/OTP 27 以降
-
天気 API キーは、
WEATHER_API_KEY環境変数で設定できます。 デフォルトでは、https://www.weatherapi.com/ の無料プランを使用しています。
はじめに
-
依存関係をインストールします。
mix deps.get -
サーバーを起動します。
WEATHER_API_KEY="1234567890abcdef" mix run --no-halt -
The server will be available at:
- SSE endpoint: http://localhost:4000/sse
- Message endpoint: http://localhost:4000/message
Available Tools
list_files: List files in a directoryecho: Echo a message backget_weather: Get weather information
Testing with MCP Client
Install the NXP Inspector client and follow the instructions to connect to the server.
Make sure to use SSE (Server-Sent Events) as the transport protocol, then you should be able to list available tools and call them. Also to ping/keepalive the connection, you can use the ping tool.
Adding Custom Tools
To add custom tools, update the handle_initialize/2 function to include your tool definitions and implement corresponding handle_call_tool/3 clauses.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。