项目简介

该仓库 'dart-lang/ai' 是一个 monorepo,包含多个与AI和生成式AI相关的 Dart 包。其中,'dart_tooling_mcp_server' 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在通过标准化的协议,让AI客户端(如大型语言模型)能够访问和利用Dart项目的各种开发工具功能。

主要功能点

该服务器的核心功能是将Dart开发工作流中常用的工具和信息通过MCP协议暴露出来。这使得AI客户端能够:

  • 访问项目上下文: 获取关于Dart项目结构、依赖信息、配置文件等上下文数据。
  • 调用开发工具: 通过MCP调用特定的Dart工具,例如进行代码格式化、运行静态分析、执行测试等。
  • 获取代码信息: 可能包括代码符号、定义跳转、引用查找等与代码理解相关的功能(具体功能取决于实现)。

本质上,它为AI提供了一个结构化的接口,使其能够理解和操作Dart项目,从而辅助开发者完成编码、调试和维护任务。

安装步骤

该服务器是 Dart 语言编写的包。要安装和运行它,你需要先安装 Dart SDK。

  1. 克隆仓库:
    git clone https://github.com/dart-lang/ai.git
    cd ai/pkgs/dart_tooling_mcp_server
  2. 获取依赖:
    dart pub get
  3. 编译(可选): 如果你想编译成一个独立的可执行文件,可以运行:
    dart compile exe bin/dart_tooling_mcp_server.dart -o dart_tooling_mcp_server
    这会在当前目录下生成一个名为 'dart_tooling_mcp_server' 的可执行文件。

服务器配置

MCP客户端需要配置服务器的启动方式才能连接。以下是一个典型的JSON配置示例,用于指示客户端如何启动并连接到此服务器。

{
  "name": "Dart Tooling Server", // 服务器的友好名称,供客户端界面显示
  "command": "dart",             // 启动服务器的命令,这里使用 dart 命令
  "args": [                      // 传递给 command 的参数列表
    "run",                       // dart 命令的 run 参数
    "pkgs/dart_tooling_mcp_server/bin/dart_tooling_mcp_server.dart" // 服务器主程序的路径(相对于仓库根目录)
  ],
  "initializationOptions": {}    // MCP 初始化选项,这里为空对象
}

如果你选择编译了可执行文件,'command' 字段应改为编译后的可执行文件路径,'args' 列表可能为空或包含服务器所需的启动参数(当前看来没有额外参数)。

例如,如果编译后的可执行文件在 '/path/to/your/compiled/exe/dart_tooling_mcp_server',配置可能是:

{
  "name": "Dart Tooling Server (Compiled)",
  "command": "/path/to/your/compiled/exe/dart_tooling_mcp_server",
  "args": [],
  "initializationOptions": {}
}

请根据你的实际安装位置和选择的启动方式调整 'command' 和 'args'。MCP客户端会使用这个配置来启动服务器进程并通过标准输入/输出与之通信。

基本使用方法

一旦服务器按照上述配置信息被MCP客户端成功启动,客户端即可通过MCP协议与之交互。

  1. 通过客户端连接: 使用支持MCP协议的AI客户端,添加上述配置信息来连接到Dart Tooling MCP服务器。
  2. 与服务器交互: 客户端将能够向服务器发送MCP请求,例如:
    • 查询当前打开的Dart项目的信息。
    • 请求服务器对某个文件运行静态分析并返回结果。
    • 请求服务器格式化一段Dart代码。
    • 调用服务器暴露的其他Dart开发工具功能。

具体的交互方式取决于MCP客户端的能力以及服务器暴露的具体Tool和Resource。对于终端用户而言,这通常体现为AI客户端中提供的与Dart项目相关的辅助功能。

信息

分类

开发者工具