mcpField
Z
zio-ella

zio-ella

本地服务
github.com/otobrglez开发工具382 周前更新

关于 zio-ella

zio-ella 是使用 Scala 3、ZIO 和 zio-http 构建 MCP 服务的框架,面向希望将 MCP 服务能力集成到 ZIO 技术栈的开发者;项目仍处于早期阶段。

主要功能

  1. 01Scala 3 服务框架
  2. 02ZIO 集成
  3. 03zio-http 支持
  4. 04工具与能力定义

适用场景

  1. 01使用 Scala 3 和 ZIO 构建 MCP 服务
  2. 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。