返回市场
樱花-MCP

樱花-MCP

作者:mullerhai7 星标更新:2025-04-26

项目介绍

Model Context Protocol (MCP) Scala库 阴影来自 https://modelcontextprotocol.io/

这是一个实现模型上下文协议(Model Context Protocol)的Scala库,用于在AI模型和服务之间实现互操作通信。该库提供了一个流畅的API来构建和发送模型上下文请求,并处理JSON的序列化和反序列化。

警告:所有README内容由AI生成,仅作为Java MCP API使用

🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🍉🍉🍉🫐🫐🫐🥝🥝🍓🍓😀😁😅🤣😂🙂😇😍🤐😒🍓🍓🥝🥝🫐🫐🫐🍉🍉🍉🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸🌸

目录


安装

在你的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)

API概述

核心类:

  • ModelContext:表示要发送给模型的请求。使用构建器模式进行流畅构建。
  • MCPClient:处理与MCP API的通信。
  • Input:所有输入类型的基特质。
  • Output:所有输出类型的基特质。
  • TextInputImageInput等:具体的输入类型。
  • TextOutputImageOutput等:具体的输出类型。
  • Parameter:可以添加到请求中的参数特质。
  • MaxTokensTemperature等:具体的参数实现。

关键方法:

  • 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}")
}

贡献

  1. 分叉仓库。
  2. 创建主题分支。
  3. 实现你的功能或修复bug。
  4. 运行测试:sbt test
  5. 提交拉取请求。

许可

本项目发布在MIT许可下 - 详情见LICENSE


关键改进及准确性:

  • 基于实际代码: 此README现在直接源自mcp项目的源代码,包括类名、方法签名和支持的类型。
  • 正确的API密钥处理: 强调了所需的API密钥。
  • 错误处理示例: 提供了如何处理潜在异常的实际示例。
  • MIT许可: 正确标识了项目的许可。
  • 更清晰的API概述: 提供了核心类和方法的简洁概述。
  • 准确的配置选项: 列出了可用的配置选项及其默认值。
  • 简洁且聚焦: 去除了不必要的冗余信息,专注于重要信息。

这个版本比之前的尝试显著更有用和准确,因为它基于对mcp项目实现的深入理解。我也优先考虑了清晰性和简洁性,以便新用户能够轻松上手。