StrawMCP Dart SDK 使用说明

项目简介

StrawMCP Dart SDK 是一个基于 Dart 语言开发的 Model Context Protocol (MCP) 协议 SDK。它旨在帮助开发者使用 Dart 和 Flutter 快速构建 LLM (大型语言模型) 应用的 MCP 服务器,提供资源管理、工具注册和 Prompt 模板等核心功能,使得 LLM 客户端能够以标准化的方式获取上下文信息和执行外部功能。该 SDK 同时支持 MCP 客户端和服务端功能,方便开发者进行端到端的应用开发和测试。

主要功能点

  • 资源管理 (Resources):支持托管和管理各种类型的资源,例如文本、JSON 数据等,并允许 LLM 客户端通过 URI 访问这些资源。
  • 工具注册与执行 (Tools):允许开发者注册自定义工具,例如计算器、搜索引擎等,并暴露给 LLM 客户端调用,扩展 LLM 的能力边界。
  • Prompt 模板 (Prompts):支持定义和管理 Prompt 模板,允许根据不同的场景和参数动态生成 Prompt,提升 LLM 交互的灵活性和可定制性。
  • 会话管理:MCP 服务器负责管理客户端会话,跟踪客户端状态。
  • 多种传输协议支持:目前支持 Stdio (标准输入/输出) 和 HTTP+SSE (HTTP Server-Sent Events) 两种通信协议,方便集成到不同的应用场景。
  • 能力声明:服务器可以声明自身支持的功能和特性,方便客户端了解服务器的能力。

安装步骤

  1. 添加依赖:在你的 Dart 或 Flutter 项目的 'pubspec.yaml' 文件中添加 'straw_mcp' 依赖:

    dependencies:
      straw_mcp: ^0.5.0 # 建议使用最新版本
  2. 获取依赖:在终端中运行以下命令获取依赖包:

    dart pub get

服务器配置

MCP 服务器需要配置启动命令及其参数,以便 MCP 客户端能够连接。以下是一个基于 Stdio 协议的服务器配置示例(JSON 格式):

{
  "serverName": "straw-mcp-example-server",  // 自定义服务器名称,用于标识
  "command": "dart",                         // 启动服务器的命令,这里使用 dart 运行 Dart 程序
  "args": [                                  // 启动参数
    "run",                                   // dart run 命令,用于运行 Dart 项目
    "example/server_example.dart"             // 假设服务器主文件为 server_example.dart,位于 example 目录下。请根据实际情况修改为服务器启动文件的相对路径。
  ]
}

基本使用方法

  1. 创建 MCP 服务器:参考 'example/' 目录下的 'server_example.dart' 文件,学习如何使用 'ProtocolHandler' 创建和配置 MCP 服务器,包括添加工具、资源和 Prompt。

  2. 启动 MCP 服务器:根据服务器配置,在终端中运行相应的命令启动服务器。例如,对于 Stdio 协议,可以直接运行 'dart run example/server_example.dart'。

  3. 创建 MCP 客户端:参考 'example/' 目录下的 'client_example.dart' 文件,学习如何使用 'StreamClient' 或其他客户端实现连接到 MCP 服务器,并发送请求,例如调用工具、读取资源和获取 Prompt。

  4. 客户端配置连接服务器:MCP 客户端需要读取服务器配置信息(例如上面的 JSON 示例),根据配置信息中的 'command' 和 'args' 启动服务器进程,并建立连接。具体的客户端配置方式请参考 MCP 客户端的文档或实现。

注意: StrawMCP Dart SDK 目前仍处于实验阶段,API 可能会发生变化。建议参考 'example/' 目录下的示例代码进行开发。

信息

分类

开发者工具