Token导航 LogoToken导航TokenDH.com
Coa Codenav MCP logo
开发工具未说明官方级别未说明来源级核验

Coa Codenav MCP

MCP Server

基于Roslyn和TypeScript Server Protocol的代码分析导航服务器,为AI助手提供全面的C#和TypeScript代码分析与导航工具,实现智能代码理解和操作。

工具数

40

提示词数

0

GitHub Stars

5

资源数

0
代码分析代码导航C#ClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

anortham

提供方

anortham

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

COA CodeNav MCP服务器

强大的MCP(模型上下文协议)服务器,提供全面的 C#和TypeScript 用于AI助手的代码分析和导航工具。基于微软的Roslyn编译器平台和TypeScript服务器协议,它将Visual Studio的IntelliSense和高级代码导航功能引入人工智能,实现了对代码库的深入理解和操作。

🚀 特性

自动装载系统⚡

  • 零配置 -解决方案和TypeScript项目在启动时自动加载
  • 多语言支持 -C#和TypeScript工作区同步初始化
  • 智能发现 -自动查找.sln、.csproj和tsconfig.json文件
  • 后台加载 -具有并行工作空间准备的非阻塞启动
  • 优雅的退路 -如果自动检测失败,则恢复手动加载

C#分析(Roslyn)

  • 完整的C#代码分析 -完整的Roslyn编译器集成,实现准确的代码理解
  • 31强大的工具 -涵盖导航、分析、重构和代码生成的综合套件
  • 高级重构 -提取方法/接口、内联代码、移动类型、重命名符号等
  • 深入分析 -代码度量、依赖性分析、克隆检测和调用层次结构

TypeScript分析(TSP)

  • TypeScript服务器协议 -原生TSP集成,用于精确的TypeScript分析
  • 14综合工具 -全套服务,涵盖导航、分析、重构和工作区管理
  • 高级功能 -导入管理、快速修复、工作区加载和符号层次结构
  • 项目管理 -加载支持完整monorepo工作区的tsconfig.json项目
  • 实时诊断 -使用智能修复进行编译错误检测

AI优化体验

  • AI优先设计 -具有洞察力、下一步行动和错误恢复的结构化输出
  • 智能令牌管理 -自动截断响应以防止上下文溢出
  • 渐进式披露 -大型结果的自动响应摘要
  • 智能挂钩 -Claude Code与智能类型验证建议的集成
  • 与跨平台支持 -Windows、macOS和Linux兼容性

📦 安装

先决条件

  • .NET 9.0 SDK或更高版本
  • Windows、macOS或Linux
  • 支持MCP的AI助手(Claude Desktop等)
  • 对于TypeScript:TypeScript已全局安装(npm install -g typescript)

快速安装(推荐)

通过.NET全局工具

# Install the global tool from NuGet
dotnet tool install --global COA.CodeNav.McpServer

# Add to Claude Desktop configuration
# The tool will be available as 'coa-codenav' command

手动克劳德桌面配置

添加到您的Claude配置文件中:

窗户: %APPDATA%\Claude\claude_desktop_config.json macOS/Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "coa-codenav": {
      "command": "coa-codenav"
    }
  }
}

替代方案:从源代码构建

# Clone and build
git clone https://github.com/anortham/coa-codenav-mcp.git
cd coa-codenav-mcp
dotnet build -c Release

# Add to Claude Desktop configuration
# Windows
"command": "C:\\path\\to\\coa-codenav-mcp\\COA.CodeNav.McpServer\\bin\\Release\\net9.0\\COA.CodeNav.McpServer.exe"

# macOS/Linux
"command": "/path/to/coa-codenav-mcp/COA.CodeNav.McpServer/bin/Release/net9.0/COA.CodeNav.McpServer"

更新工具

# Update to latest version
dotnet tool update --global COA.CodeNav.McpServer

卸载工具

# Remove global tool
dotnet tool uninstall --global COA.CodeNav.McpServer

🛠️ 可用工具

快速参考

💡 :启用自动加载后,解决方案和TypeScript项目会自动加载,无需手动加载!

C#工具(31个工具)

工具目的示例用法
csharp_load_solution加载VS解决方案\*“加载MyApp.sln”
csharp_goto_definition跳转到定义“转到UserService定义”
csharp_find_all_references查找用法“ProcessOrder在哪里使用?”
csharp_symbol_search搜索符号“查找所有\*服务类别”
csharp_get_diagnostics获取错误/警告“显示所有错误”
csharp_rename_symbol跨解决方案重命名“将UserService重命名为UserManager”
csharp_extract_interface提取接口“提取IUserService接口”
csharp_move_type将类型移动到新文件“将用户类移动到User.cs”
csharp_inline_method内联方法调用“内联辅助方法”
csharp_call_hierarchy查看调用图“显示谁调用ProcessOrder”
csharp_code_clone_detection查找重复代码“查找重复代码块”

\*仅在自动加载失败或需要其他解决方案时才需要

TypeScript工具(14个工具)

工具目的示例用法
ts_load_tsconfig加载TypeScript项目\*“加载tsconfig.json”
ts_load_workspace加载多项目工作区\*“加载TypeScript单仓库”
ts_goto_definition导航到定义“转到UserService定义”
ts_find_all_references查找符号引用“processOrder在哪里使用?”
ts_find_implementations查找接口实现“查找所有用户实现”
ts_get_diagnostics获取TypeScript错误“检查TypeScript错误”
ts_hover获取符号信息“此函数的作用是什么?”
ts_document_symbols提取文件结构“显示所有类和方法”
ts_symbol_search搜索符号“查找所有\*服务类别”
ts_rename_symbol跨文件重命名“将UserService重命名为UserManager”
ts_call_hierarchy分析调用关系“显示函数的调用层次结构”
ts_add_missing_imports自动添加导入语句“将缺失的导入添加到文件中”
ts_organize_imports排序和组织导入“清理导入报表”
ts_apply_quick_fix应用TypeScript修复“修复此TypeScript错误”

\*仅在自动加载失败或用于其他项目时才需要

🔄 自动装载系统

MCP服务器现在具有一个智能自动加载系统,可以在启动时自动发现和加载您的项目,在大多数情况下无需手动设置工作区。

自动加载的工作原理

  1. 启动检测:当MCP服务器启动时,它会扫描当前目录和子目录
  2. 多语言发现:同时搜索:

- C#解决方案(.sln 文件) - C#项目(.csproj 文件) - TypeScript配置(tsconfig.json 文件)

  1. 智能优先级:更喜欢解决方案而不是单个项目,尊重配置偏好
  2. 后台加载:并行加载工作区,而不会阻止服务器启动
  3. 优雅的退路:如果自动检测失败,则返回手动加载

配置(appsettings.json)

{
  "Startup": {
    "AutoLoadSolution": true,              // Enable auto-loading
    "SolutionPath": "MyApp.sln",          // Preferred solution name
    "MaxSearchDepth": 5,                   // Directory search depth
    "PreferredSolutionName": "MyApp",      // Preferred solution prefix
    "RequireSolution": false               // Allow project-only loading
  },
  "CodeSearch": {
    "BaseUrl": "http://localhost:5020"     // CodeSearch service URL for development
  }
}

环境变量

对于生产部署,请通过环境变量配置CodeSearch服务URL:

# Production deployment
export CODENAV_CODESEARCH_URL="https://codesearch-service:8080"

# Docker/Container deployment
export CODENAV_CODESEARCH_URL="http://codesearch-service:5020"

# Kubernetes deployment
export CODENAV_CODESEARCH_URL="http://codesearch-service.default.svc.cluster.local:5020"

配置优先 (从高到低):

  1. 环境变量 CODENAV_CODESEARCH_URL
  2. 配置部分 CodeSearch:BaseUrl
  3. 默认开发URL http://localhost:5020

安全说明:切勿使用 localhost 生产环境中的URL。始终为部署目标配置适当的服务URL。

自动加载状态

使用 csharp_get_workspace_statistics 检查自动加载是否成功:

{
  "totalWorkspaces": 1,
  "workspaceDetails": [{
    "workspaceId": "C:\\Projects\\MyApp\\MyApp.sln",
    "loadedPath": "C:\\Projects\\MyApp\\MyApp.sln",
    "createdAt": "2025-01-20T10:30:00Z",
    "lastAccessedAt": "2025-01-20T10:35:00Z"
  }]
}

当仍需要手动加载时

  • 其他解决方案:加载不在启动目录中的辅助解决方案
  • 具体项目:解决方案自动加载失败时加载单个项目
  • 远程路径:从网络位置或不同驱动器加载解决方案
  • 多工作区:同时使用多个不相关的解决方案

自动装载的好处

  • 零配置 -适用于大多数项目
  • 更快的启动 -并行加载缩短了到达第一个可用状态的时间
  • 多语言 -同时处理C#和TypeScript项目
  • 情报准备就绪 -类型验证和导航工具立即可用
  • 向后兼容 -需要时仍可手动加载

工作空间管理

csharp_load_solution

加载完整的Visual Studio解决方案进行分析(通常仅在自动加载失败或需要其他解决方案时才需要)。

何时使用:

  • “加载MyApp.sln解决方案”
  • “在C:\\Projects\\MyApp中打开解决方案文件”
  • “我想分析这个C#解决方案”

例子:

{
  "solutionPath": "C:\\Projects\\MyApp\\MyApp.sln",
  "workspaceId": "optional-custom-id"
}

csharp_load_project

加载一个C#项目文件。

何时使用:

  • “仅加载MyApp.Core项目”
  • “打开csproj文件”
  • “我只需要分析这个项目”

例子:

{
  "projectPath": "C:\\Projects\\MyApp\\MyApp.Core\\MyApp.Core.csproj"
}

csharp_get_workspace_statistics

获取有关已加载工作区和资源使用情况的统计信息。

何时使用:

  • “显示工作区内存使用情况”
  • “加载了多少个工作区?”
  • “检查工作区性能”

代码导航

csharp_goto_definition

导航到特定位置的符号定义。

何时使用:

  • “UserService在哪里定义?”
  • “显示ProcessOrder方法的定义”
  • “跳转到声明此类的位置”

例子:

{
  "filePath": "Program.cs",
  "line": 42,
  "column": 25
}

答复包括:

  • 定义的确切位置
  • 符号类型和签名
  • 下一步行动(查找参考、实现等)

csharp_find_all_references

查找整个代码库中对符号的所有引用。

何时使用:

  • “UserService在哪里使用?”
  • “查找所有对ProcessOrder的调用”
  • “显示对此变量的所有引用”

例子:

{
  "filePath": "Services/UserService.cs",
  "line": 15,
  "column": 20,
  "maxResults": 100
}

特征:

  • 按文件对结果进行分组
  • 显示使用情况
  • 使用分页处理大型结果集

csharp_find_implementations

查找接口的所有实现和虚拟/抽象方法的重写。

何时使用:

  • “哪些类实现了IRepository?”
  • “显示此接口的所有实现”
  • “什么凌驾于ProcessOrder之上?”

csharp_hover

获取有关符号的详细信息,包括签名、文档和类型信息。

何时使用:

  • “这种方法有什么作用?”
  • “显示ProcessOrder的文档”
  • “此函数接受哪些参数?”

代码搜索和发现

csharp_symbol_search

在整个解决方案中按名称或模式搜索符号。

何时使用:

  • “查找名称中包含“Service”的所有类”
  • “搜索以“Process”开头的方法”
  • “查找UserController类”
  • “显示Data命名空间中的所有接口”

搜索类型:

  • contains -名称中任意位置的部分匹配(默认)
  • exact -名称完全匹配
  • startswith -名称以查询开头
  • endswith -名称以查询结尾
  • wildcard -支持\*和?通配符
  • regex -完整正则表达式模式
  • fuzzy -拼写错误的模糊匹配

例子:

{
  "query": "User*Service",
  "searchType": "wildcard",
  "symbolKinds": ["Class", "Interface"],
  "namespaceFilter": "MyApp.Services",
  "maxResults": 50
}

csharp_document_symbols

从文件中提取完整的符号层次结构。

何时使用:

  • “显示此文件的结构”
  • “UserService.cs中有哪些方法?”
  • “给我一个这门课的大纲”

csharp_get_type_members

列出一个类型的所有成员,包括方法、属性、字段和事件。

何时使用:

  • “UserService有哪些方法?”
  • “显示Order类的所有属性”
  • “列出成员,包括继承的成员”

代码分析

csharp_get_diagnostics

获取编译错误、警告和分析器诊断。

何时使用:

  • “显示解决方案中的所有错误”
  • “我有什么警告?”
  • “检查是否存在可为null的引用警告”
  • “查找代码质量问题”

例子:

{
  "scope": "solution",
  "severities": ["Error", "Warning"],
  "includeAnalyzers": true,
  "idFilter": "CS8", // Filter for specific diagnostic IDs
  "maxResults": 50
}

csharp_code_metrics

计算代码复杂性和可维护性指标。

何时使用:

  • “计算此方法的复杂性”
  • “查找过于复杂的方法”
  • “显示此类的可维护性指数”
  • “确定重构候选者”

提供的指标:

  • 圈复杂度 -代码路径数
  • 代码行 -逻辑代码行
  • 可维护性指数 -0-100分(越高越好)
  • 继承深度 -继承层次深度
  • 类耦合度 -耦合类的数量

csharp_find_unused_code

查找可能未使用的代码元素,包括类、方法、属性和字段。

何时使用:

  • “在项目中查找死代码”
  • “显示未使用的私有方法”
  • “清理未使用的班级”
  • “识别可以删除的代码”

csharp_type_hierarchy

查看完整的类型层次结构,包括基类、派生类型和接口实现。

何时使用:

  • “显示UserService的继承层次结构”
  • “哪些类派生自BaseController?”
  • “查看完整的类型层次结构”
  • “这个类实现了哪些接口?”

高级分析

csharp_call_hierarchy

查看显示呼入和呼出的双向呼叫图。

何时使用:

  • “显示此方法的所有调用者”
  • “此函数调用哪些方法?”
  • “查看完整的呼叫层次结构”
  • “了解方法依赖关系”

csharp_find_all_overrides

查找虚拟/抽象方法和属性的所有重写。

何时使用:

  • “什么会覆盖此虚拟方法?”
  • “查找抽象方法的所有实现”
  • “显示覆盖层次结构”

csharp_solution_wide_find_replace

在整个解决方案中执行查找和替换操作。

何时使用:

  • “替换所有TODO注释”
  • “更新不推荐使用的API用法”
  • “批量文本替换”
  • “跨解决方案查找模式”

例子:

{
  "findPattern": "// TODO:",
  "replacePattern": "// TASK:",
  "preview": true,
  "useRegex": false,
  "wholeWord": false
}

csharp_code_clone_detection

检测重复的代码模式以寻找重构机会。

何时使用:

  • “查找重复代码”
  • “识别复制粘贴代码”
  • “寻找重构机会”
  • “检测代码克隆”

特征:

  • 可配置的相似性阈值
  • 大型代码库的超时参数(30-300秒)
  • 类型1(精确)、类型2(重命名)、类型3(修改)克隆检测

例子:

{
  "minLines": 6,
  "minTokens": 50,
  "similarityThreshold": 0.8,
  "timeoutSeconds": 120
}

csharp_dependency_analysis

分析类型、命名空间和项目之间的依赖关系和耦合。

何时使用:

  • “分析项目依赖关系”
  • “查找循环依赖关系”
  • “检查命名空间之间的耦合”
  • “了解架构”

分析级别:

  • project -项目级依赖关系
  • namespace -命名空间依赖关系
  • type -类型级别依赖关系

代码流分析

csharp_trace_call_stack

跟踪从入口点到实现的代码执行路径。

何时使用:

  • “显示ProcessOrder是如何被调用的”
  • “跟踪从Main到此方法的执行情况”
  • “什么叫验证用户?”
  • “反向跟踪呼叫链”

方向:

  • forward -跟踪该方法发出的调用
  • backward -查找该方法的调用者

例子:

{
  "filePath": "Services/OrderService.cs",
  "line": 45,
  "column": 20,
  "direction": "backward",
  "maxDepth": 10
}

代码重构和生成

csharp_rename_symbol

通过冲突检测和预览在整个解决方案中重命名符号。

何时使用:

  • “将UserService重命名为UserManager”
  • “到处更改此变量名”
  • “重构:将ProcessOrder重命名为ExecuteOrder”

特征:

  • 应用前预览更改
  • 冲突检测
  • 类型的可选文件重命名
  • 在注释/字符串中重命名
  • 一起重命名重载

例子:

{
  "filePath": "UserService.cs",
  "line": 10,
  "column": 15,
  "newName": "UserManager",
  "preview": true,
  "renameFile": true,
  "renameInComments": true
}

csharp_apply_code_fix

在特定位置应用可用的代码修复程序进行诊断。

何时使用:

  • “修复此编译错误”
  • “将建议的修复程序应用于CS0219”
  • “解决此可为null的警告”

csharp_generate_code

为常见模式和样板生成代码。

何时使用:

  • “从字段生成构造函数”
  • “为这些字段创建属性”
  • “实现此接口”
  • “生成等号和哈希码”

发电类型:

  • constructor -从字段/属性生成构造函数
  • properties -从字段生成属性
  • interface -实现接口成员
  • equals -生成Equals和GetHashCode
  • disposable -实现IDisposable模式

csharp_extract_method

将所选代码提取到新方法中。

何时使用:

  • “将此代码提取到方法中”
  • “重构:名为'ValidateInput'的提取方法”
  • “从第50-75行创建一个方法”

例子:

{
  "filePath": "OrderService.cs",
  "startLine": 50,
  "endLine": 75,
  "methodName": "ValidateInput",
  "makeStatic": false
}

csharp_add_missing_usings

使用未解析类型的指令添加缺失。

何时使用:

  • “修复缺失的导入”
  • “添加必需的使用语句”
  • “解决未解析的类型引用”

csharp_format_document

根据项目设置和.editorconfig格式化代码。

何时使用:

  • “格式化此文件”
  • “修复缩进”
  • “清理代码格式”
  • “使用语句组织”

💡 真实世界的例子

示例1:理解代码库

User: "I need to understand how user authentication works in this codebase"

AI: I'll help you understand the authentication system. Let me search for authentication-related code.

*Uses csharp_symbol_search with query "auth*" and wildcard search*
*Finds AuthenticationService, IAuthenticationProvider, AuthController*

Found several authentication components. Let me examine the main service structure.

*Uses csharp_get_type_members on AuthenticationService*
*Uses csharp_trace_call_stack to understand the flow*

The authentication system consists of:
1. `AuthenticationService` - Main service handling login/logout
2. `IAuthenticationProvider` - Interface for different auth providers
3. `JwtAuthProvider` - JWT token implementation
4. `AuthController` - REST API endpoints

The flow is: AuthController → AuthenticationService → IAuthenticationProvider

示例2:重构复杂代码

User: "This method is too complex, can you help refactor it?"

AI: Let me analyze the complexity of this method first.

*Uses csharp_code_metrics to measure complexity*

This method has a cyclomatic complexity of 15, which is quite high. Let me help refactor it.

*Uses csharp_extract_method to extract logical blocks*
*Uses csharp_rename_symbol to give meaningful names*

I've extracted 3 logical blocks into separate methods:
1. ValidateInput() - Input validation logic
2. ProcessBusinessRules() - Core business logic
3. PrepareResponse() - Response formatting

The complexity is now reduced to 5, making it much more maintainable.

示例3:发现和解决问题

User: "The build is failing, can you help?"

AI: Let me check for compilation errors.

*Uses csharp_get_diagnostics with scope "solution"*

Found 3 errors:
1. CS0246: Type 'IUserRepository' not found in OrderService.cs:15
2. CS1061: 'User' does not contain 'EmailAddress' in UserValidator.cs:42
3. CS0103: Name 'logger' does not exist in ProcessingService.cs:78

Let me fix these:

*Uses csharp_add_missing_usings for the first error*
*Uses csharp_hover to understand the User type*
*Uses csharp_find_all_references to check logger usage*

Fixed:
1. Added missing using for IUserRepository
2. The property is 'Email' not 'EmailAddress'
3. Need to inject ILogger in the constructor

示例4:代码审查和质量检查

User: "Review this service class for code quality issues"

AI: I'll perform a comprehensive code review. Let me analyze various aspects.

*Uses csharp_code_metrics to check complexity*
*Uses csharp_find_unused_code to identify dead code*
*Uses csharp_get_diagnostics to check for warnings*

Code Review Results:

1. **Complexity**: Method 'ProcessOrder' has high complexity (12)
   - Recommend extracting validation logic

2. **Unused Code**: Found 2 unused private methods
   - CalculateDiscount() - line 145
   - ValidateStock() - line 203

3. **Code Warnings**:
   - CS8602: Possible null reference in line 87
   - CS1998: Async method lacks await in SaveOrder()

4. **Suggestions**:
   - Extract complex logic from ProcessOrder
   - Remove or implement unused methods
   - Add null checks or use nullable annotations
   - Make SaveOrder synchronous or add async operations

📚 完整工具清单

服务器提供26种工具,分为以下几类:

工作空间管理(3个工具)

  • csharp_load_solution -加载.sln文件
  • csharp_load_project -加载.csproj文件
  • csharp_get_workspace_statistics -查看工作区信息和内存使用情况

代码导航(8个工具)

  • csharp_goto_definition -导航到定义
  • csharp_find_all_references -查找所有用法
  • csharp_find_implementations -查找接口实现
  • csharp_hover -获取符号信息
  • csharp_trace_call_stack -跟踪执行路径
  • csharp_symbol_search -按图案搜索符号
  • csharp_document_symbols -获取文件结构
  • csharp_get_type_members -列出类型成员

重构(4个工具)

  • csharp_rename_symbol -跨解决方案重命名
  • csharp_extract_method -将代码提取到方法
  • csharp_add_missing_usings -使用指令添加
  • csharp_format_document -格式代码

诊断和修复(3个工具)

  • csharp_get_diagnostics -获取错误/警告
  • csharp_apply_code_fix -应用代码修复
  • csharp_generate_code -生成样板代码

高级分析(8个工具)

  • csharp_code_metrics -计算复杂性
  • csharp_find_unused_code -查找死代码
  • csharp_type_hierarchy -查看继承
  • csharp_call_hierarchy -双向调用图
  • csharp_find_all_overrides -查找覆盖
  • csharp_solution_wide_find_replace -批量操作
  • csharp_code_clone_detection -查找重复项
  • csharp_dependency_analysis -分析依赖关系

🏗️ 建筑

核心组件

  • MSBuildWorkspaceManager -管理Roslyn工作区生命周期和缓存
  • Roslyn工作区服务 -提供代码分析操作的核心服务
  • 文档服务 -处理文档跟踪和更新
  • 工具类 -具有MCP协议集成的单个工具实现
  • 符号缓存 -重复符号查找的性能优化
  • 资源提供程序 -通过渐进式披露管理大型结果

设计原则

  1. AI优先设计 -每个回复都包括见解和建议的下一步行动
  2. 代币效率 -自动摘要可防止上下文溢出
  3. 错误恢复 -详细的错误信息和可操作的步骤
  4. 演出 -符号缓存和高效的工作空间管理
  5. 可扩展性 -使用基于属性的发现易于添加新工具
  6. 智能集成 -无缝的Claude代码挂钩,增强开发工作流程

许可证管理

所有工具都实现了智能令牌管理:

  • 建造前预估响应大小
  • 应用安全限制(5K-10K代币)
  • 超限时逐步减少
  • 将完整结果存储在资源中
  • 为分页提供明确的下一步操作

🎯 Claude代码集成

智能挂钩系统

COA CodeNav MCP包括复杂的Claude Code挂钩,通过提供上下文指导和自动工作区管理来增强开发体验。

可用挂钩

会话开始挂钩 (session_start_codenav.py)

  • 会话启动和恢复时触发
  • 报告检测到的项目的自动加载状态
  • 如果自动加载失败,提供回退指导
  • 显示类型验证工具的即时准备状态

预编辑护栏 (guard_rails_pre.py)

  • 在编辑/写入/多编辑操作之前触发
  • 分析代码的类型引用和复杂性
  • 建议在使用自定义类型时进行类型验证
  • 考虑自动加载解决方案,以避免冗余建议

工具成功后跟踪 (guard_rails_post.py)

  • 跟踪CodeNav工具的成功使用情况
  • 建立已验证类型的会话本地知识
  • 提供针对自动加载环境优化的简洁反馈
  • 在整个会话中维护验证统计数据

挂钩特点

  • 自动加载感知:钩子能够理解解决方案何时已经通过自动加载加载
  • 降低噪音:由于不再需要手动加载提醒,因此输出更清洁
  • 类型验证重点:重点从“加载解决方案”转向“验证类型”
  • 会话记忆:跟踪已验证的类型,以避免冗余建议
  • 向后兼容:优雅地处理手动加载场景

吊钩输出示例

会话启动(自动加载激活):

🔥 SESSION START HOOK TRIGGERED
🚀 CodeNav Auto-Loading Status
=============================================

📁 C# Project Detected
   ✅ Solution auto-loaded: COA.CodeNav.McpServer.sln
   🚀 C# type verification ready!

📁 TypeScript Project Detected
   ✅ TypeScript workspace auto-loaded
   🚀 TypeScript type verification ready!

✨ Auto-Loading Benefits:
   • Solutions/projects loaded automatically at startup
   • No manual loading steps required
   • Instant type verification tools available
   • Seamless hover tooltips and go-to-definition

预编辑指南:

💡 Type Verification Suggestion:
   💡 Verify C# types: UserService, OrderProcessor, PaymentValidator
      mcp__codenav__csharp_hover  
  → UserService details

发布工具成功:

✅ Type verified: UserService
   Properties: Id, Name, Email (+2 more)
   Methods: GetUser, UpdateUser (+3 more)
   Session: 12 types verified

安装

钩子会自动安装在MCP服务器上。要将它们与Claude Code一起使用:

  1. 将钩子锉放入 .claude/hooks/
  2. 配置 .claude/settings.json 带钩子触发器
  3. 钩子将在会话开始和工具使用时自动激活

挂钩配置

示例 .claude/settings.json 配置:

{
  "hooks": {
    "SessionStart": [
      {
        "source": "startup",
        "hooks": [
          {
            "type": "command", 
            "command": "uv run .claude/hooks/session_start_codenav.py"
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Edit|Write|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "uv run .claude/hooks/guard_rails_pre.py"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "csharp_hover|csharp_goto_definition|ts_hover|ts_goto_definition",
        "hooks": [
          {
            "type": "command",
            "command": "uv run .claude/hooks/guard_rails_post.py"
          }
        ]
      }
    ]
  }
}

🚀 部署

生产配置

在部署到生产、暂存或容器化环境时,请确保配置正确:

CodeSearch服务集成

MCP服务器与CodeSearch服务集成,以增强代码分析功能。为您的环境适当配置服务URL:

发展 (默认):

{
  "CodeSearch": {
    "BaseUrl": "http://localhost:5020"
  }
}

生产/暂存:

# Set environment variable (preferred for production)
export CODENAV_CODESEARCH_URL="https://codesearch.yourcompany.com"

容器部署:

# Docker Compose
version: '3.8'
services:
  codenav:
    image: codenav-mcp:latest
    environment:
      - CODENAV_CODESEARCH_URL=http://codesearch-service:5020
    depends_on:
      - codesearch-service

Kubernetes部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: codenav-mcp
spec:
  template:
    spec:
      containers:
      - name: codenav
        image: codenav-mcp:latest
        env:
        - name: CODENAV_CODESEARCH_URL
          value: "http://codesearch-service.default.svc.cluster.local:5020"

安全考虑

  1. URL验证:服务器验证所有配置的URL,启动失败,并显示无效配置的明确错误消息
  2. 环境变量:在生产中使用环境变量进行敏感配置
  3. 异常处理:所有服务集成都包括用于生产调试的正确错误处理和日志记录
  4. 超文本传输安全协议:使用HTTPS URL进行生产CodeSearch服务连接
  5. 超时配置:服务调用包括适当的超时值(默认为10秒)

配置验证

服务器对所有配置值执行启动验证:

  • 无效的URL导致启动失败,并显示明确的错误消息
  • 缺少的配置会退回到开发默认值并发出警告
  • 出于审计目的,记录了环境变量覆盖

🔧 故障排除

常见问题

自动加载问题

  • 尽管已自动加载,但“未加载工作区”:检查当前目录或子目录中是否存在解决方案/项目文件
  • 自动加载发现错误的解决方案:使用手册 csharp_load_solution 使用您想要的特定路径
  • TypeScript不能自动加载:确保 tsconfig.json 已存在,且TypeScript已全局安装(npm install -g typescript)
  • 检测到多个解决方案:配置 PreferredSolutionName 在apps_中指定要首选的解决方案

配置问题

  • “配置的CodeSearch URL无效”启动错误:

- 检查 CodeSearch:BaseUrl apps_中的URL是有效的 - 验证 CODENAV_CODESEARCH_URL 环境变量格式 - 确保配置的服务可以从部署环境访问

  • 生产中的服务连接失败:

- 从不使用 localhost 容器化或云环境中的URL - 配置正确的服务发现URL(例如Kubernetes服务名称) - 检查服务之间的网络连接

  • 环境变量未生效:

- 验证环境变量名称: CODENAV_CODESEARCH_URL - 检查变量在应用程序的运行时环境中是否可用 - 环境变量覆盖apps.config

工作区错误

  • “工作区未加载”错误:

- 首先,检查 csharp_get_workspace_statistics 查看自动加载是否有效 - 如果没有加载工作区,请手动调用 csharp_load_solutioncsharp_load_project - 验证解决方案是否在Visual Studio中成功生成

符号导航问题

  • “未找到符号”错误:

- 确保该文件是加载的解决方案/项目的一部分 - 检查行号和列号是否正确(从1开始) - 验证代码是否编译正确 - 使用 csharp_get_diagnostics 检查编译问题

性能问题

  • 响应时间慢:

- 使用 csharp_get_workspace_statistics 检查内存使用情况 - 考虑加载单个项目,而不是大型解决方案 - 为大型结果启用响应摘要 - 检查是否不必要地加载了多个工作区

钩子相关问题

  • 挂钩未触发:验证 .claude/settings.json 配置并确保Python/uv可用
  • 吊钩输出过大:挂钩针对自动装载环境进行了优化;如果不使用自动加载,请考虑禁用
  • 类型验证建议没有帮助胡克从你的课程中学习;当您验证更多类型时,建议会得到改进

响应问题

  • “响应截断”消息:

- 对于大型结果,这是正常的,以防止上下文溢出 - 使用提供的后续操作以获得更多结果 - 考虑使用更具体的查询来减少结果大小

自动加载配置

禁用自动加载:

{
  "Startup": {
    "AutoLoadSolution": false
  }
}

配置搜索行为:

{
  "Startup": {
    "AutoLoadSolution": true,
    "MaxSearchDepth": 3,                    // Reduce for faster startup
    "PreferredSolutionName": "MyMainApp",   // Prefer specific solution
    "RequireSolution": true                 // Don't fallback to projects
  }
}

调试自动加载:

  • 检查登录 %LOCALAPPDATA%\COA.CodeNav.McpServer\logs (Windows)或 ~/.local/share/COA.CodeNav.McpServer/logs (Linux/macOS)
  • 使用 csharp_get_workspace_statistics 看看装了什么
  • 验证解决方案/项目文件是否可访问且未损坏

日志记录

日志将写入:

  • 窗户: %LOCALAPPDATA%\COA.CodeNav.McpServer\logs
  • Linux/macOS: ~/.local/share/COA.CodeNav.McpServer/logs

开发设置

  1. 分叉并克隆存储库
  2. 在Visual Studio 2022或VS代码中打开
  3. 构建和运行测试: dotnet test
  4. 进行更改并提交PR

添加新工具

服务器使用COA。麦克。框架v1.1.6。要添加新工具,请执行以下操作:

  1. 在中创建一个新类 Tools 文件夹继承自 McpToolBase
  2. 覆盖 NameDescription 属性
  3. 实施 ExecuteInternalAsync 方法
  4. 在中注册该工具 Program.cs
  5. 遵循既定的结果模式

工具实现示例:

public class MyNewTool : McpToolBase
{
    public override string Name => "csharp_my_tool";
    public override string Description => @"Brief description.
Returns: What it returns.
Prerequisites: Requirements.
Use cases: When to use.";

    protected override async Task ExecuteInternalAsync(
        MyParams parameters, 
        CancellationToken cancellationToken)
    {
        // Implementation
        return new MyResult { Success = true, ... };
    }
}

注册于 Program.cs:

builder.Services.AddScoped();

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • 建立在 微软的Roslyn 编译器平台
  • 使用COA。麦克。MCP通信协议库
  • 灵感来自Visual Studio的代码导航功能
  • 感谢所有贡献者和用户!

📊 项目状态

自动加载系统(新!⚡)

  • 智能工作空间发现 -自动查找和加载C#解决方案和TypeScript项目
  • 多语言支持 -C#和TypeScript工作区同步初始化
  • 后台加载 -具有并行工作空间准备的非阻塞启动
  • 智能回退 -在需要时,可轻松降级为手动加载
  • Claude代码集成 -针对自动加载工作流程优化的Hooks系统

C#分析(完整)

  • 31罗斯林工具 实施和测试
  • 完整的MSBuild工作区 支持自动加载和手动回退
  • 高级重构 -提取方法、重命名符号、生成代码
  • 深度分析 -度量、依赖关系、克隆检测、调用层次结构
  • 符号缓存 用于性能优化

TypeScript分析(已发布)

  • 14个TypeScript工具 用TypeScript服务器协议实现
  • 项目管理 具有自动加载tsconfig.json和工作区跟踪功能
  • 导航工具 -GoToDefinition、FindReferences、悬停、CallHierarchy工作正常
  • 实时诊断 通过tsc编译器集成
  • 高级分析 -具有双向呼叫跟踪的呼叫层次结构
  • 进口管理 -自动组织和修复缺失的导入

框架集成

  • COA。麦克。框架v1.7.19 -具有增强令牌管理功能的最新框架
  • AI优化响应 具有洞察力、下一步行动和错误恢复
  • 智能代币管理 具有自动响应截断功能
  • 与跨平台支持 -Windows、macOS和Linux
  • 全局.NET工具 易于安装的包装
  • 克劳德代码挂钩 -智能会话管理和类型验证指导

计划的功能

  • 🚧 Python语言支持(架构已准备好扩展)
  • 🚧 其他TypeScript工具(文档符号、符号搜索、查找实现)
  • 🚧 Razor/Atring支持
  • 🚧 通过TypeScript基础架构支持JavaScript

🚀 入门指南

C#项目(带自动加载)

  1. 安装: dotnet tool install --global COA.CodeNav.McpServer
  2. 配置 您的AI助手(请参阅安装部分)
  3. 开始会话 在您的项目目录中-解决方案自动加载! ⚡
  4. 立即探索:“UserService类做什么?”
  5. 导航:“查找所有对ProcessOrder的引用”
  6. 重构:“将UserService重命名为UserManager”

*仅需要手动加载其他解决方案:“加载MyApp.sln解决方案”*

TypeScript项目(自动加载)

  1. 先决条件:确保安装了TypeScript: npm install -g typescript
  2. 开始会话 在您的项目目录中,tsconfig.json会自动加载! ⚡
  3. 立即导航:“转到UserService的定义”
  4. 分析:“检查TypeScript编译错误”
  5. 探索:“查找processOrder方法的所有引用”

*仅需要手动加载其他项目:“加载tsconfig.json文件”*

快速验证

启动会话后,检查自动加载是否正常工作:

  • C:“显示工作区统计信息”-应显示已加载的解决方案
  • TypeScript:“检查TypeScript错误”-应显示项目状态

______________________________________________________________________

目录标签

目录标签

代码分析代码导航C#ClaudeAI代理本地部署AI辅助开发Roslyn集成TypeScript分析

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

40

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP