使用说明
项目简介
'MCP Dart SDK' 是一个使用 Dart 语言开发的 Model Context Protocol (MCP) 软件开发工具包。它旨在帮助开发者快速构建基于 MCP 协议的应用程序,特别是用于大型语言模型 (LLM) 的上下文服务。该 SDK 同时提供了客户端和服务端的功能,方便开发者进行 MCP 应用的开发和测试。
主要功能点
- MCP 服务器端实现: 提供 'FastMCP' 类,可以快速创建 MCP 服务器,用于托管资源、注册工具和管理 Prompt 模板。
- 资源管理: 允许服务器注册和管理各种类型的资源,并通过 URI 提供客户端访问。
- 工具注册: 支持服务器注册可被 LLM 客户端调用的工具函数,扩展 LLM 的能力。
- Prompt 模板: 允许服务器定义和管理 Prompt 模板,为 LLM 交互提供灵活的定制选项。
- 多传输协议支持: 服务器和客户端均支持 Stdio, WebSocket, SSE 等多种传输协议,适应不同的应用场景。
- 客户端会话管理: 提供 'ClientSession' 类,方便客户端与 MCP 服务器建立连接、发送请求和接收响应。
- 类型安全: 利用 Dart 语言的类型系统,提供类型安全的 API,减少开发错误。
安装步骤
-
在您的 'pubspec.yaml' 文件中添加依赖:
dependencies: mcp_dart: ^0.1.0 -
运行 'dart pub get' 命令获取依赖。
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能建立连接。以下是基于 'mcp_dart_sdk' 示例生成的服务器配置信息(JSON 格式):
{ "serverName": "Echo Server", "command": "dart", "args": [ "run", "example/servers/simple_echo.dart" ], "description": "这是一个简单的 Echo 服务器示例,用于演示 MCP 服务器的基本功能。" }
配置参数说明:
- 'serverName': 服务器的名称,可以自定义,用于标识服务器。
- 'command': 启动 MCP 服务器的命令,通常是 Dart 运行命令 'dart'。
- 'args': 启动命令的参数列表。
- '"run"': Dart 命令的子命令,用于运行 Dart 程序。
- '"example/servers/simple_echo.dart"': 要运行的 Dart 服务器程序文件路径,根据实际服务器文件位置修改。
- 'description': 服务器的描述信息,可自定义,用于提供服务器的额外说明。
注意: 请确保您的 Dart 环境已正确安装,并且可以执行 'dart' 命令。'example/servers/simple_echo.dart' 仅为示例服务器程序,您可以根据实际需求创建和配置自己的 MCP 服务器程序。
基本使用方法
-
创建 MCP 客户端会话: 使用 'ClientSession.connect()' 方法连接到 MCP 服务器,需要提供连接服务器的方法,例如使用 'stdioClient' 连接到本地启动的服务器。
final client = await ClientSession.connect(() async { return await stdioClient( StdioServerParameters( command: 'dart', args: ['run', 'example/servers/simple_echo.dart'], // 使用配置好的服务器启动命令和参数 ), ); }); -
初始化会话: 调用 'client.initialize()' 初始化客户端会话。
await client.initialize(); -
发送请求: 使用 'client.sendRequest()' 方法向服务器发送请求,例如调用工具 ('call_tool')。
final response = await client.sendRequest<String>( 'call_tool', CallToolRequestParams( name: 'echo', params: 'Hello, world!', ), ); print('Response: $response'); -
关闭会话: 完成交互后,调用 'client.close()' 关闭客户端会话。
await client.close();
更多详细用法和高级功能,请参考项目文档和示例代码。
信息
分类
开发者工具