Scala 3 MCP服务器库
用于构建的Scala 3库 模型上下文协议(MCP) 服务器。MCP是一种基于JSON-RPC 2.0的协议,允许像Claude这样的AI应用程序访问工具、资源和提示。
特性
- 类型安全协议实现 --使用Scala 3枚举和不透明类型完成MCP协议实现
- 自动模式推导 --使用
derives JsonSchema为您的工具自动生成JSON模式 - 多传输层 --Stdio用于基于子流程的服务器,可流式HTTP+SSE用于网络服务器
- 交叉平台的 --核心和stdio模块支持JVM、Scala.js和Scala Native;http4s模块支持JVM和Scala.js
- Fluent Builder API --易于使用的构建器,用于构建服务器、工具、资源和提示
- 效应多态性 --基于Cats Effect的可组合函数式编程
- 零沸点板 --利用Scala 3
derives编解码器自动推导语法
模块结构
| 模块 | 平台 | 描述 |
|---|---|---|
| 核心 | JVM、JS、Native | 协议类型、服务器抽象、模式推导、JSON编解码器 |
| 标准 | JVM、JS、Native | 用于基于子进程的服务器的stdin/stdout传输 |
| http4s | JVM、JS | 通过http4s Ember进行流式HTTP+SSE传输 |
| 开放API | JVM、JS、Native | OpenAPI 3.x模式模型+工具构建器助手 |
| 瑞迪斯 | JVM | 支持Redis SessionStore / SessionRefs / StateRef /通知接收器 |
| 貘 | JVM | 桥接任何 sttp.tapir.Schema[A] 进入一个 JsonSchema[A] |
| 金色慕尼黑 | JVM、JS、Native | MCP服务器规范的黄金测试框架(munit) |
| 探索者 | JS | 基于浏览器的用户界面,用于探索和测试MCP服务器 |
| openapi mcp代理 | JVM | 将任何OpenAPI API公开为MCP服务器的独立CLI |
快速开始
libraryDependencies ++= Seq(
"net.andimiller.mcp" %%% "mcp-core" % "0.9.0",
"net.andimiller.mcp" %%% "mcp-stdio" % "0.9.0"
)import cats.effect.IO
import io.circe.{Decoder, Encoder}
import net.andimiller.mcp.core.schema.JsonSchema
import net.andimiller.mcp.core.server.*
case class GreetRequest(name: String) derives JsonSchema, Decoder
case class GreetResponse(message: String) derives JsonSchema, Encoder.AsObject
val greetTool =
tool.name("greet")
.description("Greet someone by name")
.in[GreetRequest]
.out[GreetResponse]
.run(req => IO.pure(GreetResponse(s"Hello, ${req.name}!")))看 完整的快速入门指南 适用于HTTP和Redis变体。
文档
完整文档:
介绍
- MCP功能支持 --已实施的与未实施的
入门指南
- OpenAPI MCP代理 -将任何OpenAPI API转换为MCP服务器
测试
- 黄金测试 --快照测试服务器的规格
许可证
此库和相关代码在MIT许可证下可用,请参阅license文件。
贡献
请随时在github上发出Pull Requests,记住要清楚地说明更改的目的并运行所有测试。
