关于 zio-ella
zio-ella 是使用 Scala 3、ZIO 和 zio-http 构建 MCP 服务的框架,面向希望将 MCP 服务能力集成到 ZIO 技术栈的开发者;项目仍处于早期阶段。
主要功能
- 01Scala 3 服务框架
- 02ZIO 集成
- 03zio-http 支持
- 04工具与能力定义
适用场景
- 01使用 Scala 3 和 ZIO 构建 MCP 服务
- 02在 ZIO 服务中定义工具
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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。