zio-ella について
zio-ellaは、Scala 3、ZIO、zio-httpでMCPサーバーを構築するためのフレームワークです。ZIOスタックにMCP機能を組み込む開発者向けで、プロジェクトは初期段階です。
主な機能
- 01Scala 3サーバーフレームワーク
- 02ZIOとの統合
- 03zio-http対応
- 04ツールと機能の定義
活用シーン
- 01Scala 3とZIOによるMCPサーバーの構築
- 02ZIOサービス内でのツール定義
MCP 対応
MCPサーバーの実装に使うフレームワークで、サーバー機能やツールの定義を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
zio-ella
zio-ella は、Scala 3 と ZIO、zio-http を使用して、最新の AI プラットフォーム向けの MCP(Model Context Protocol) サーバーを作成するためのフレームワークです。
⚠️ このプロジェクトはまだ初期段階にあり、急速に変化する可能性があります。アイデアやユースケースがありましたら、お気軽にお知らせください。
サービス内での機能とツールの定義例は、次のようになります。
import zio.ZIO
import zio.dev.ella.*
object MyService:
val capabilities = Capabilities(
// Tool that only returns current server time
Tool("get-time") -> { _ =>
zio.Clock.instant.map(_.toString)
},
// Exemple tool to get where we accept city as an argument.
Tool("get-weather", ArgDef.string("city")) -> {
_.string("city").flatMap(city => ZIO.succeed(s"Weather in $city is sunny!"))
}
)
def run = MCPServer(capabilities).run
ZIO Stack との統合は、次のようになります。
object Main extends ZIOAppDefault:
def program = for
_ <- logInfo("Booting...")
_ <- MyService.run
yield ()
def configuredServer: TaskLayer[Server] =
ZLayer
.fromZIO(ZIO.config(Config.int("port")).tap(port => logInfo(s"Starting server on port $port")))
.flatMap(portEnv => Server.defaultWithPort(portEnv.get))
def run = program.provide(configuredServer)
リソース
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。