项目简介

FastMCP-Scala 是一个用 Scala 3 编写的高级库,旨在帮助开发者轻松构建 Model Context Protocol (MCP) 服务器。MCP 服务器是 LLM 客户端的后端,负责提供上下文信息、工具和 Prompt 模板。该库利用 Scala 强大的类型系统和 ZIO 的异步能力,简化了 MCP 服务器的开发过程。

主要功能点

  • 基于 ZIO 的异步处理: 利用 ZIO 提供的强大效果系统处理并发和异步操作。
  • 注解驱动的 API: 使用 '@Tool', '@Resource', '@Prompt' 等注解定义 MCP 的核心元素,提高开发效率。
  • 自动生成: 通过 Scala 3 宏自动生成 JSON Schema 和处理程序代码。
  • 与 Java MCP SDK 集成: 可以无缝地与官方 Java MCP SDK 协同工作。

安装步骤

将以下依赖添加到你的 Scala 项目的 'build.sbt' 文件中:

libraryDependencies += "com.tjclp" %% "fast-mcp-scala" % "0.1.1"

或者如果你使用 'scala-cli':

在你的 Scala 文件顶部添加:

//> using dep com.tjclp::fast-mcp-scala:0.1.1

服务器配置 (供 MCP 客户端使用)

MCP 服务器需要由兼容的 MCP 客户端启动和管理。为了让 MCP 客户端(如 Claude Desktop、MCP Inspector 等)能够连接到你使用 FastMCP-Scala 构建的服务器,你需要在客户端的配置中提供服务器的启动信息。

典型的客户端配置会包含一个列表,描述每个服务器。你需要提供的关键信息包括:

  • 服务器名称 (Server Name): 给你的 MCP 服务器起一个唯一的名称,例如 '"my-fast-mcp-server"'。
  • 启动命令 (Command): 执行你的服务器所需的命令。对于使用 'scala-cli' 运行的服务器示例,这通常是 '"scala-cli"'。
  • 命令参数 (Arguments): 启动命令所需的参数列表。这些参数会告诉 'scala-cli' 运行哪个代码。对于 Quickstart 或 AnnotatedServer 示例,参数通常包括引用 FastMCP-Scala 库的依赖以及指定运行的主类。例如,'["-e", "//> using dep com.tjclp::fast-mcp-scala:0.1.1", "--main-class", "com.tjclp.fastmcp.examples.AnnotatedServer"]'。

请参考你使用的 MCP 客户端的文档,了解如何添加并配置新的 MCP 服务器连接。

基本使用方法

  1. 在 Scala 代码中,定义包含需要暴露给 LLM 的函数、数据或模板的对象。
  2. 使用 '@Tool' 注解标记作为工具的函数,使用 '@Resource' 注解标记作为资源的函数或值,使用 '@Prompt' 注解标记作为 Prompt 模板的函数。
  3. 在你的应用入口点,实例化 'FastMcpServer'。
  4. 调用服务器实例的方法来扫描包含注解的对象(例如 'server.scanAnnotations[你的对象类型]')。
  5. 启动服务器,例如通过标准 I/O 协议 ('server.runStdio()') 与客户端通信。

通过以上步骤,你的 Scala 应用就成为了一个可与 MCP 客户端交互的 MCP 服务器。

信息

分类

AI与计算