Dart语言分析工具

一个提供Dart语言实时诊断、代码导航和符号搜索功能的模型上下文协议(MCP)服务器,适用于Dart项目的开发与分析。

  • by BenjaminKobjolke
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 BenjaminKobjolke/dart-lsp-mcp

使用说明

飞镖LSP MCP

一个模型上下文协议(MCP)服务器,为Claude Code提供Dart语言分析功能。该工具使用Dart语言服务器为Dart项目提供实时诊断、代码导航和符号搜索。

特性

  • 实时诊断:从Dart分析器获取错误、警告和提示
  • 转到定义:导航到符号定义
  • 查找引用:查找符号的所有用法
  • 悬停信息:获取类型信息和文档
  • 文件符号:列出文件中的所有符号
  • 工作空间符号搜索:在整个项目中搜索符号

先决条件

安装

  1. 克隆此存储库
  2. 安装依赖项:
uv sync

用法

作为MCP服务器(用于克劳德代码)

添加到您的Claude Code MCP配置中:

{
  "mcpServers": {
    "dart-lsp": {
      "type": "stdio",
      "command": "uv",
      "args": ["--directory", "D:\\GIT\\BenjaminKobjolke\\dart-lsp-mcp", "run", "python", "-m", "dart_lsp_watcher.mcp_server"]
    }
  }
}

作为CLI工具

观看Dart项目进行诊断:

# Watch mode (continuous)
start.bat path/to/dart/project

# Check a single file
check.bat lib/main.dart path/to/dart/project

# Get server capabilities
capabilities.bat path/to/dart/project

可用CLI命令

命令 描述
start.bat <folder> Dart诊断的Watch文件夹
check.bat <file> [folder] 检查单个文件
definition.bat <file> <line> <col> [folder] 转到定义
references.bat <file> <line> <col> [folder] 查找参考文献
hover.bat <file> <line> <col> [folder] 获取悬停信息
symbols.bat <file> [folder] 列出文档符号
search.bat <query> [folder] 搜索工作区符号
capabilities.bat [folder] 显示LSP功能

MCP工具

当用作MCP服务器时,可以使用以下工具:

工具 说明
get_diagnostics 获取项目或特定文件的Dart诊断
find_references 查找某个位置的符号的所有引用
go_to_definition 导航到符号定义
get_hover 获取符号的文档和类型信息
get_document_symbols 列出文件中的所有符号
search_symbols 在整个工作空间中搜索符号
get_capabilities 获取LSP服务器功能
reindex 重新扫描工作区以检测新的/删除的Dart文件

配置

创建一个 dart_lsp.json 在项目根目录中配置忽略模式的文件:

{
  "ignore": [
    "build/**",
    ".dart_tool/**",
    "**/*.g.dart"
  ]
}

发展

运行测试:

tools\tests.bat

许可证

麻省理工学院