这是一个实现模型上下文协议(Model Context Protocol)的Scala库,用于在AI模型和服务之间实现互操作通信。该库提供了一个流畅的API来构建和发送模型上下文请求,并处理JSON的序列化和反序列化。
🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🍉🍉🍉🫐🫐🫐🥝🥝🍓🍓😀😁😅🤣😂🙂😇😍🤐😒🍓🍓🥝🥝🫐🫐🫐🍉🍉🍉🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸
在你的build.sbt文件中添加MCP库依赖:
libraryDependencies += "com.github.mullerhai" %% "mcp" % "0.1.0" // 替换为最新版本
import com.github.mullerhai.mcp._
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Await
import scala.concurrent.duration._
// 配置客户端(需要API密钥)
val apiKey = "YOUR_API_KEY"
val client = new MCPClient(apiKey)
// 构建一个上下文
val context = ModelContext(
model = "llama2",
input = TextInput("法国的首都是什么?"),
parameters = List(MaxTokens(50))
)
// 发送请求
val future = client.send(context)
// 处理响应
val response = Await.result(future, 5.seconds)
println(response)
核心类:
ModelContext:表示要发送给模型的请求。使用构建器模式进行流畅构建。MCPClient:处理与MCP API的通信。Input:所有输入类型的基特质。Output:所有输出类型的基特质。TextInput、ImageInput等:具体的输入类型。TextOutput、ImageOutput等:具体的输出类型。Parameter:可以添加到请求中的参数特质。MaxTokens、Temperature等:具体的参数实现。关键方法:
MCPClient.send(context: ModelContext):发送请求并返回一个Future[Output]。此库当前支持以下输入和输出类型:
TextInput:基于文本的输入。ImageInput:图像输入(Base64编码)。TextOutput:基于文本的输出。ImageOutput:图像输出(Base64编码)。MCPClient可以使用以下选项进行配置:
apiKey:(必需)您的MCP API密钥。baseUrl:(可选)MCP API的基础URL,默认为"https://api.modelcontext.com/v1"。timeout:(可选)请求超时时间(秒),默认为10。示例:
val client = new MCPClient(
apiKey = "YOUR_API_KEY",
baseUrl = "https://your-custom-api.com",
timeout = 15
)
send方法返回一个Future[Output]。错误作为异常在Future内部处理。你可以使用标准的Scala错误处理机制捕获这些异常。
示例:
try {
val future = client.send(context)
val response = Await.result(future, 5.seconds)
println(response)
} catch {
case e: Exception => println(s"错误: ${e.getMessage}")
}
sbt test本项目发布在MIT许可下 - 详情见LICENSE。
关键改进及准确性:
mcp项目的源代码,包括类名、方法签名和支持的类型。这个版本比之前的尝试显著更有用和准确,因为它基于对mcp项目实现的深入理解。我也优先考虑了清晰性和简洁性,以便新用户能够轻松上手。