项目简介

Ultrasharp Tools MCP Server 是一个专为AI代码助手设计的智能C#代码工具。它通过深度解析C#代码,将其转换为结构化的知识,并提供50多种强大的工具(基于Roslyn编译器和语义分析)供AI调用。这使得AI能够以人类开发者的方式理解和修改代码,大幅提升代码生成、重构和分析的效率和准确性,同时节省AI的token消耗。它支持本地运行(作为您AI助手的专属后端)和混合模式(与团队共享的语义中心集成)。

主要功能点

  • 深度代码理解: 将C#代码解析成完整的语义图,而非简单文本匹配,确保AI对代码结构的准确理解。
  • 高效代码操作: 提供精确的代码修改、重命名、成员添加、移动等功能,确保语法正确性和项目完整性。
  • 智能搜索与分析: 支持基于Roslyn符号查找的精准引用搜索、复杂性分析、继承链查看、静态追踪等。
  • 语义能力集成: 利用本地或远程Embedding模型(如Ollama、TEI)进行代码的语义搜索、重复代码检测和智能合并(Semantic Merge)。
  • 自动化Git工作流: 每次代码修改可自动生成Git提交,并支持分层索引以优化多分支切换性能。
  • 代码质量保证: 集成CSharpier格式化和Roslyn代码分析器,自动应用代码修复,确保代码风格和质量。
  • 多模式支持: 支持本地(Droid)和混合模式(Overlord),满足个人开发者和团队协作的需求。

安装步骤

  1. 下载发布版本: 从Ultrasharp Tools项目的GitHub Releases页面下载最新版本的发布包,并将其解压到您选择的目录中(例如,您可以将其解压到 'C:\Tools\UltrasharpTools' )。

  2. 配置AI客户端: 您需要编辑您的AI客户端配置文件(例如,对于Claude Code或Claude Desktop,通常是 '~/.claude.json' 或 'claude_desktop_config.json'),添加以下MCP服务器配置。请确保将 'command' 字段的路径修改为 UltrasharpTools.Comm.exe 在您系统上的实际位置。

    // 请将此配置添加到您的 AI 客户端配置文件中
    // 例如: ~/.claude.json (Claude Code) 或 claude_desktop_config.json (Claude Desktop)
    {
      "mcpServers": {
        "ultrasharp-tools": {
          // 'command' 字段指定了 MCP 服务器的启动命令。
          // 您需要将其路径修改为 UltrasharpTools.Comm.exe 在您系统上的实际位置。
          // 例如: "C:\\Tools\\UltrasharpTools\\Comm\\UltrasharpTools.Comm.exe"
          "command": "您的安装路径\\Comm\\UltrasharpTools.Comm.exe",
          // 'args' 字段用于向 MCP 服务器传递启动参数。这些参数是可选的。
          // 示例:在启动时自动加载指定的解决方案文件。
          // 请将 "D:\\MyProjects\\MyCompany.Solution.sln" 替换为您的实际解决方案路径。
          // "--load-solution", "D:\\MyProjects\\MyCompany.Solution.sln",
          // 示例:设置服务器的日志级别为信息 (Information)。
          // 较低的级别 (如 Debug 或 Trace) 会生成更详细的日志。
          // "--log-level", "Information",
          // 示例:启用解决方案文件的自动重载功能。
          // 当 .csproj 或 .sln 文件被修改时,服务器将自动更新其内部状态。
          // "--auto-reload", "true",
          // 示例:为团队协作配置 Overlord 服务器的 URL。
          // 如果您在混合模式下工作,这会将部分语义操作路由到中央服务器。
          // "--server-url", "http://my-overlord-server:3001",
          // 示例:配置本地 Embedding 服务的 URL (如 Ollama)。
          // 如果您在本地运行 Ollama 或 TEI,并且希望使用本地语义功能,请配置此项。
          // "--embedding-url", "http://127.0.0.1:11434",
          // 示例:配置本地 Embedding 服务使用的模型名称。
          // 请确保您已拉取或部署了指定的模型。
          // "--embedding-model", "nomic-embed-text"
          "args": [],
          // MCP 客户端会根据此配置自动管理服务器进程的启动和停止。
          // 'server-name' (ultrasharp-tools) 将用于客户端调用 MCP 工具时指定目标服务器。
        }
      }
    }

    注意: 您配置的是 'UltrasharpTools.Comm.exe',这是一个轻量级的桥接程序(大约5MB),它会自动在后台启动核心的Driod (Roslyn服务器) 和 VectorDB (语义索引器) 进程。

  3. 配置语义搜索 (可选): 如果您希望使用基于AI的语义搜索功能(例如,通过自然语言查询代码),需要额外配置Embedding服务。

    • Windows: 打开命令提示符或PowerShell,导航到您解压 Ultrasharp Tools 的 'Scripts' 目录,然后运行 'setup-semantic-embedding.cmd'。
    • Linux/macOS: 打开终端,导航到您解压 Ultrasharp Tools 的 'Scripts' 目录,然后运行 'setup-semantic-embedding.sh'。
    • 按照设置向导的提示,选择您偏好的Embedding服务提供商(例如 Ollama 或 TEI)和合适的Embedding模型。

服务器配置

Ultrasharp Tools MCP服务器作为后台服务运行,其启动由您的AI客户端(如Claude Code或Claude Desktop)通过JSON-RPC协议触发和管理。您无需手动启动或配置服务器的端口,一切都由MCP协议在后台处理。

您可以通过AI客户端配置文件中的 'command' 和 'args' 字段来指定MCP服务器的启动方式和参数。

常见的服务器启动参数说明:

  • '--load-solution <路径>': 在服务器启动时,自动加载指定的 '.sln' 解决方案文件。这使得服务器在准备好后立即开始分析您的项目。
  • '--build-configuration <配置>': 指定用于加载解决方案的构建配置(例如 'Debug' 或 'Release')。这会影响Roslyn分析器如何解释您的代码。
  • '--log-level <级别>': 设置服务器日志的输出级别(可选值包括 'Trace', 'Debug', 'Information', 'Warning', 'Error', 'Critical')。'Information' 是默认级别,'Debug' 和 'Trace' 会提供更详细的内部运行信息,有助于排查问题。
  • '--disable-git': 禁用服务器的Git集成功能,例如自动创建提交和分支管理。
  • '--auto-reload': 启用此选项后,当 '.csproj' 或 '.sln' 文件发生变化时,服务器将自动重载并更新其内部的解决方案结构,无需手动重启。
  • '--low-memory': 启用低内存模式。在此模式下,服务器会使用SQLite数据库来存储部分反射类型信息,而不是全部存储在内存中,可以节省约50-100MB的RAM。
  • '--server-url <URL>': 在混合模式下,如果您连接到一个中央的 Overlord 服务器,此参数用于指定 Overlord 服务器的URL。
  • '--embedding-url <URL>': 指定本地Embedding服务的URL(例如,如果您在本地运行 Ollama 或 TEI,可以指向其API端点)。
  • '--embedding-model <模型名称>': 指定用于生成代码Embedding的模型名称。请确保此模型已在您的Embedding服务中可用。

基本使用方法

配置完成后,您可以通过您的AI客户端与Ultrasharp Tools MCP Server进行交互。AI客户端将以自然语言或结构化指令的形式调用MCP服务器提供的工具,服务器将执行这些操作并返回结果。

与AI助手的互动示例:

  • 代码查询: 您对AI说:“在 'UserService' 类中,如何验证电子邮件地址?” (AI会调用 'get_members' 工具获取类成员,然后可能调用 'view_definition' 工具查看具体实现,最终综合信息给出答案。)
  • 代码修改: 您对AI说:“在 'PaymentService' 中,把 'ProcessPayment' 方法重命名为 'ExecutePaymentAsync'。” (AI会调用 'rename_symbol' 工具,MCP服务器会利用Roslyn确保所有引用都被正确更新,包括定义、调用点和文档注释。)
  • 代码分析: 您对AI说:“如果我修改 'IAuthService' 接口,会有什么影响?” (AI会调用 'find_references' 或 'analyze_complexity' 等工具,MCP服务器会返回所有受影响的代码点和潜在的复杂度变化。)
  • 语义搜索: 您对AI说:“找出所有与这个方法实现逻辑相似的代码。” (AI会调用 'semantic_search' 工具,MCP服务器会利用向量数据库,返回语义上相似的代码片段,即使它们文本上不完全一致。)

文档与工具列表:

所有可用的工具及其详细用法(包括参数和预期输出)可以在仓库的 'Run.Docs/Claude/' 目录中找到。这些文档旨在帮助AI客户端更好地理解和利用每个工具。例如,'get_members' 工具可以获取类成员列表,'add_member' 工具可以在指定类中添加新的成员。

信息

分类

开发者工具