FastMCP-Scala

FastMCP-Scala

site icon
2025.04.17 0
ScalaMCP 服务器Scala 开发开发效率
FastMCP-Scala 是一个高级的、开发者友好的 API,用于在 Scala 3 中构建 Model Context Protocol (MCP) 服务器。它提供了基于宏的自动化功能,包括模式生成和工具注册,使得开发 MCP 服务器更加高效和类型安全。
View on GitHub

Overview

基本能力

产品定位

FastMCP-Scala 是一个用于构建 MCP 服务器的 Scala 3 封装库,旨在提供更符合 Scala 习惯的功能性 API,并通过宏驱动的自动化简化开发流程。

核心功能

  • ZIO 集成:使用 ZIO 进行效果处理、错误管理和异步操作。
  • 类型安全:利用 Scala 3 的类型系统提高安全性和清晰度。
  • 功能性 API:提供干净的功能性 API 来定义工具、资源和提示。
  • 宏驱动注解:使用 Scala 3 宏和注解(@Tool@Param@Resource@Prompt)自动注册工具,无需样板代码。
  • 自动模式生成:在编译时使用 JsonSchemaMacro 从方法签名和注解自动生成 JSON 模式。
  • 自动处理器生成:使用 MapToFunctionMacro 从注解方法生成 Map[String, Any] 处理器。
  • 参数文档:使用 @Param 注解记录工具参数,增强生成的模式。
  • Java SDK 集成:与底层 Java MCP SDK 无缝集成。

适用场景

  • 需要快速构建 MCP 服务器的 Scala 开发者。
  • 需要类型安全和功能性编程的 MCP 服务器开发。
  • 需要自动化工具注册和模式生成的场景。

工具列表

  • @Tool 注解:用于定义工具方法,自动注册到 MCP 服务器。
  • @Param 注解:用于定义工具参数,生成文档和模式。
  • JsonSchemaMacro:用于从方法签名生成 JSON 模式。
  • MapToFunctionMacro:用于从注解方法生成处理器。

常见问题解答

  • 如何运行服务器? 使用 Scala CLI 或 SBT 运行服务器,具体命令见安装教程。
  • 如何定义工具? 使用 @Tool@Param 注解定义工具方法,服务器会自动注册。
  • 如何生成模式? 使用 JsonSchemaMacro 或通过注解自动生成。

使用教程

使用依赖

添加以下依赖到 build.sbt

libraryDependencies += "io.fast-mcp-scala" %% "fast-mcp-scala" % "0.1.0-SNAPSHOT"

安装教程

  1. 安装 Scala CLI(推荐):
brew install scala-cli    # macOS with Homebrew
# or
curl -sSLf https://scala-cli.virtuslab.org/get | sh    # Other platforms
  1. 运行服务器:
scala-cli run main.scala --main-class fastmcp.examples.SimpleServer

调试方式

使用以下命令运行不同类型的示例服务器:

# 运行简单服务器
scala-cli run main.scala --main-class fastmcp.examples.SimpleServer

# 运行类型工具示例
scala-cli run main.scala --main-class fastmcp.examples.TypedToolExample

# 运行注解服务器
scala-cli run main.scala --main-class fastmcp.examples.AnnotatedServer

许可证

该项目遵循 MIT 开源许可条款。