项目简介
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': 设置为任意值可以启用详细日志输出,用于调试。
信息
分类
开发者工具