项目简介

Dart MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在弥合 AI 编码助手与 Dart/Flutter 开发工作流之间的鸿沟。它通过 MCP 协议,向支持 MCP 协议的客户端(如 Windsurf, Codeium, Cline 等)提供一系列 Dart SDK 的命令工具,使得 AI 助手能够理解和操作 Dart/Flutter 项目,提升开发效率。

主要功能点

  • Dart SDK 命令访问: 提供 'dart analyze', 'dart compile', 'dart create', 'dart doc', 'dart fix', 'dart format', 'dart info', 'dart package', 'dart run', 'dart test' 等常用的 Dart SDK 命令工具,方便 AI 助手进行代码分析、编译、项目创建、文档生成、代码修复和格式化、包管理、程序运行和测试等操作。
  • 智能路径处理: 自动解析相对路径为绝对路径,确保命令在不同工作目录下均能正确执行。
  • 项目自动检测: 能够识别常见的 Dart/Flutter 项目目录,如用户Home目录、工作区等。
  • 跨平台支持: 支持 macOS, Linux 和 Windows 操作系统。
  • 零配置: 开箱即用,采用合理的默认配置。
  • MCP 协议集成: 兼容所有 MCP 客户端。

安装步骤

Dart MCP Server 可以通过多种方式安装和运行,推荐使用 'npx' 方式,无需全局安装,方便快捷。

1. 环境准备

  • 确保已安装 Node.js (18.x 或更高版本)
  • 确保已安装 Dart SDK (3.0 或更高版本) 并已添加到系统 PATH 环境变量中。

2. 安装和运行

方式一:使用 npx (推荐)

无需安装,直接使用 'npx' 命令运行服务器:

npx @egyleader/dart-mcp-server

方式二:全局安装

全局安装 'dart-mcp-server' 包:

npm install -g @egyleader/dart-mcp-server

然后直接运行:

dart-mcp-server

方式三:通过 Smithery 安装

如果你使用 Claude Desktop,可以通过 Smithery 自动安装:

npx -y @smithery/cli install @egyleader/dart-mcp --client claude

方式四:从源代码运行

# 克隆仓库
git clone https://github.com/egyleader/dart-mcp-server.git
cd dart-mcp-server

# 安装依赖
npm install

# 构建项目
npm run build

# 运行服务器
node dist/index.js

服务器配置

要将 Dart MCP Server 集成到 MCP 客户端(例如 Windsurf 或 Codeium IDE),需要在客户端的 MCP 配置文件 ('mcp_config.json') 中添加服务器配置信息。

以下是 'mcp_config.json' 的配置示例 (通常位于 '~/.codeium/windsurf/mcp_config.json'):

{
  "mcpServers": {
    "dart": {
      "command": "npx",
      "args": [
        "-y",
        "@egyleader/dart-mcp-server"
      ]
    }
  }
}

配置参数说明:

  • '"dart"': 服务器名称,可以自定义,用于在客户端中标识和调用该服务器。
  • '"command"': 启动 Dart MCP Server 的命令,这里使用 'npx'。
  • '"args"': 启动命令的参数,'["-y", "@egyleader/dart-mcp-server"]' 表示使用 'npx' 运行 '@egyleader/dart-mcp-server' 包,'-y' 参数用于自动确认执行。

基本使用方法

配置完成后,MCP 客户端将能够通过 'dart-analyze', 'dart-compile' 等工具与 Dart MCP Server 交互。具体的工具使用方法和参数可以参考仓库 README.md 中的 "MCP Tool Usage Examples" 和 "Tool API Reference" 部分。

例如,在 MCP 客户端中调用 'dart-analyze' 工具分析 'lib/main.dart' 文件,可以发送如下 JSON-RPC 请求:

{
  "jsonrpc": "2.0",
  "method": "tool/invoke",
  "params": {
    "tool_name": "dart-analyze",
    "arguments": {
      "path": "lib/main.dart",
      "options": ["--fatal-infos", "--fatal-warnings"]
    }
  },
  "id": "1"
}

服务器会执行 'dart analyze lib/main.dart --fatal-infos --fatal-warnings' 命令,并将结果返回给客户端。

环境变量

  • 'DART_MCP_VERBOSE': 设置为任意值可以启用详细日志输出,用于调试。

信息

分类

开发者工具