
FastMCP-Scala

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"
安装教程
- 安装 Scala CLI(推荐):
brew install scala-cli # macOS with Homebrew
# or
curl -sSLf https://scala-cli.virtuslab.org/get | sh # Other platforms
- 运行服务器:
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