返回 MCP 目录
public公开dns本地运行

dart-mcp-server-template

一个用于创建兼容MCP协议的Dart服务器应用的模板项目,包含Docker配置、服务器实现和基础项目结构。

article

README

🚀 Dart MCP 服务器模板

本模板用于创建与 MCP(模型控制协议)兼容的 Dart 服务应用程序。它提供了一个便捷的起点,涵盖 Docker 配置、服务器实现以及基本项目结构,帮助开发者快速搭建项目。

🚀 快速开始

克隆此仓库并手动更新包名:

git clone https://github.com/jhgaylor/dart-mcp-server-template.git my_new_mcp_server
cd my_new_mcp_server

# 更新代码库中的包名
find . -type f -name "*.dart" -o -name "pubspec.yaml" | xargs sed -i 's/dart_mcp_server_template/my_new_mcp_server/g'
# 更新仓库 URL 中的包名
find . -type f -name "*.md" -o -name "Dockerfile" | xargs sed -i 's/dart-mcp-server-template/my-new-mcp-server/g'
# 重命名文件
find . -type f -name "*dart_mcp_server_template*" | while read file; do mv "$file" "${file//dart_mcp_server_template/my_new_mcp_server}"; done

# 删除旧的 .git 目录以开始 fresh
rm -rf .git

# 初始化新的 Git 仓库
git init

然后更新 pubspec.yaml 和代码库中的包名。

在从模板创建项目后:

  1. 更新 pubspec.yaml 中的项目详细信息。
  2. 根据需要修改 lib/src/config.dart 中的配置。
  3. 实现自定义服务器逻辑。
  4. 使用提供的入口点运行服务器:
    • dart bin/stdio_server.dart(标准 I/O)
    • dart bin/sse_server.dart(Server-Sent Events)
    • dart bin/streamable_http_server.dart(HTTP 流式)

✨ 主要特性

  • 提供使用标准 I/O、Server-Sent Events 和 HTTP 流式传输的可执行 Dart 服务器实现。
  • 具备 Docker 配置,可实现轻松部署。
  • 拥有基本项目结构,包含 libbintest 目录。
  • mcp_dart 包集成。

📦 安装指南

克隆仓库

git clone https://github.com/jhgaylor/dart-mcp-server-template.git my_new_mcp_server
cd my_new_mcp_server

更新包名

# 更新代码库中的包名
find . -type f -name "*.dart" -o -name "pubspec.yaml" | xargs sed -i 's/dart_mcp_server_template/my_new_mcp_server/g'
# 更新仓库 URL 中的包名
find . -type f -name "*.md" -o -name "Dockerfile" | xargs sed -i 's/dart-mcp-server-template/my-new-mcp-server/g'
# 重命名文件
find . -type f -name "*dart_mcp_server_template*" | while read file; do mv "$file" "${file//dart_mcp_server_template/my_new_mcp_server}"; done

初始化新的 Git 仓库

# 删除旧的 .git 目录以开始 fresh
rm -rf .git
# 初始化新的 Git 仓库
git init

💻 使用示例

基础用法

启动服务器

# 使用标准 I/O 传输启动服务器
dart bin/stdio_server.dart
# 使用 Server-Sent Events 传输启动服务器
dart bin/sse_server.dart
# 使用 HTTP 流式传输启动服务器
dart bin/streamable_http_server.dart

高级用法

内存流传输

您可以使用 IOStreamTransport 在内存中完全连接 Dart 客户端和服务器。这里 是一个端到端的示例。

📚 详细文档

项目结构和功能

服务器实现

  • bin/ - 包含用于通过不同传输方法启动服务器的可执行 Dart 文件:
    • dart bin/stdio_server.dart:使用标准 I/O 传输启动服务器。
    • dart bin/sse_server.dart:使用 Server-Sent Events 传输启动服务器。
    • dart bin/streamable_http_server.dart:使用 HTTP 流式传输启动服务器。
    • 所有这些可执行文件都使用在 lib/src/server.dart 中定义的核心服务器实现。
  • lib/src/server.dart - 设置基本 MCP 服务器。这是您大部分自定义代码将要编写的地方。

Docker 部署

此模板包含一个 Dockerfile 以实现轻松容器化:

# 构建 Docker 映像
docker build -t my-mcp-server .
# 运行容器
docker run -p 3000:3000 my-mcp-server

📄 许可证

此模板在 MIT License 下发布。当您从这个模板生成自己的应用程序时,您可以自由选择您的项目的许可;该模板不会强制对您的生成代码施加特定许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端