
NetContextServer
NetContextServer 通过模型上下文协议 (MCP) 使像 Cursor AI 这样的 AI 编码助手能够深入理解您的 .NET 代码库。 这意味着更准确的代码建议、对您问题的更好解答以及更高效的编码体验。
README
NetContextServer
<div align="center">
🔍 使用深度 .NET 代码库理解能力增强您的 AI 编码助手
</div>
NetContextServer 通过 模型上下文协议 (MCP) 使 AI 编码助手(如 Cursor AI)能够深入理解您的 .NET 代码库。这意味着更准确的代码建议、对您的问题更好的回答以及更高效的编码体验。
✨ 主要特性
- 🧠 语义代码搜索:通过用自然语言描述您要查找的内容来查找代码
- 🔍 智能导航:帮助 AI 工具理解您的项目结构和依赖关系
- 🛡️ 内置安全性:安全的文件访问,自动保护敏感数据
- 🚀 Cursor AI 集成:与 Cursor AI 无缝设置,以增强编码辅助
- 📦 包分析:了解您的依赖关系并获得更新建议
- 🔍 深度依赖关系可视化:通过交互式、颜色编码的图表查看传递依赖关系
- 🧩 智能分组:以可视方式对相关包进行分组,以便于导航
- 📊 更新建议:识别过时的包和安全问题
- 📊 测试覆盖率分析:深入了解您的测试覆盖率
- 🎯 多格式支持:解析来自 Coverlet、LCOV 和 Cobertura XML 的覆盖率数据
- 📈 详细报告:文件级别的覆盖率百分比和未覆盖的行跟踪
- 🔄 分支覆盖率:跟踪可用的方法级别的分支覆盖率
- 💡 智能建议:获取有关改进测试覆盖率的建议
- ⚡ 快速高效:大型代码库的快速索引和响应时间
🚀 快速开始
- 克隆 & 构建:
git clone https://github.com/willibrandon/NetContextServer.git
cd NetContextServer
dotnet build
- 设置(可选,用于语义搜索):
# 在环境中设置 Azure OpenAI 凭据:
AZURE_OPENAI_ENDPOINT=your_endpoint
AZURE_OPENAI_API_KEY=your_key
- 开始使用:
# 指向您的项目
dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "path/to/your/project"
# 尝试语义搜索
dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "find authentication logic"
👉 阅读我们的入门指南,了解详细的设置说明和最佳实践。
🔌 与 Cursor AI 集成
- 打开 Cursor AI
- 按
Cmd/Ctrl + Shift + P
- 键入 "Configure MCP Server"
- 输入:
{
"command": "dotnet",
"args": ["run", "--project", "path/to/NetContextServer/src/NetContextServer/NetContextServer.csproj"]
}
现在 Cursor AI 可以理解您的代码库了!尝试问它以下问题:
- "List all .NET source files in this project directory" (列出此项目目录中的所有 .NET 源文件)
- "Search for exact text matches in the code files" (在代码文件中搜索完全匹配的文本)
- "Analyze NuGet packages in all projects" (分析所有项目中的 NuGet 包)
- "Get the current list of ignore patterns" (获取当前忽略模式列表)
- "Add these ignore patterns: .generated.cs, bin/" (添加这些忽略模式:.generated.cs, bin/)
- "List all .csproj files in this directory" (列出此目录中的所有 .csproj 文件)
- "Show me the contents of this file" (显示此文件的内容)
- "What's the current base directory for file operations?" (文件操作的当前基本目录是什么?)
- "Help me think through the authentication system design" (帮助我思考身份验证系统设计)
- "Document my reasoning about this architectural decision" (记录我对这个架构决策的理由)
- "Analyze test coverage for MyService.cs" (分析 MyService.cs 的测试覆盖率)
- "Show me uncovered lines in the authentication module" (显示身份验证模块中未覆盖的行)
- "What's the overall test coverage percentage?" (总体测试覆盖率百分比是多少?)
- "Which files have the lowest test coverage?" (哪些文件的测试覆盖率最低?)
📚 文档
功能
- 📁 项目 & 文件列表:列出解决方案中的所有项目和源文件
- 🔍 代码搜索:在您的代码库中搜索特定的模式或文本
- 🧠 语义搜索:根据含义查找代码,而不仅仅是完全匹配的文本
- 📖 文件内容访问:读取源文件,具有安全检查和大小限制
- 🛡️ 安全性:内置的安全措施,用于敏感文件和目录访问
- 🎯 模式管理:灵活的忽略模式,用于控制文件访问
- 📊 覆盖率分析:解析和分析测试覆盖率数据
- 📈 覆盖率报告:支持 Coverlet JSON、LCOV 和 Cobertura XML 格式
- 🎯 行覆盖率:跟踪哪些行被测试覆盖
- 🌳 分支覆盖率:监控方法级别的分支覆盖率
- 💡 建议:获取可操作的建议以提高覆盖率
- 💭 结构化思考:记录和验证关于复杂操作的推理
- 🧩 AI 优化的推理:基于 Anthropic 的研究,关于改进 LLM 问题解决能力
- 📋 任务规划:将复杂问题分解为可管理的步骤
- ✅ 策略合规性:根据项目指南验证解决方案
- 🔄 工具输出分析:在采取下一步行动之前处理来自其他工具的结果
- 📝 决策文档:维护架构选择的审计跟踪
从源代码构建
- 克隆存储库:
git clone https://github.com/willibrandon/NetContextServer.git
cd NetContextServer
- 构建解决方案:
dotnet build
- 运行测试(可选):
dotnet test
运行命令
使用客户端与您的代码库交互:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- <command> [options]
环境设置
对于语义搜索功能,您需要设置以下环境变量:
AZURE_OPENAI_ENDPOINT
:您的 Azure OpenAI 终结点 URLAZURE_OPENAI_API_KEY
:您的 Azure OpenAI API 密钥
用法
基本命令
- 设置基本目录:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "D:\YourProject"
- 获取基本目录:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- get-base-dir
- 获取版本信息:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- version
- 列出项目:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- list-projects-in-dir --directory "D:\YourProject\src"
- 列出源文件:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- list-source-files --project-dir "D:\YourProject\src\YourProject"
- 分析包:
# 首先设置您的基本目录
dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "path/to/your/project"
# 运行包分析
dotnet run --project src/NetContextClient/NetContextClient.csproj -- analyze-packages
示例输出:
Project: MyProject.csproj
Found 2 package(s):
- ✅ Newtonsoft.Json (13.0.1)
Used in 5 location(s)
Dependencies:
└─ Newtonsoft.Json
└─ System.*
└─ System.ComponentModel
- 🔄 Microsoft.Extensions.DependencyInjection (5.0.2 → 6.0.1)
Update available: 6.0.1
Dependencies:
└─ Microsoft.Extensions.DependencyInjection
└─ Microsoft.*
└─ Microsoft.Extensions.DependencyInjection.Abstractions
- 分析测试覆盖率:
# 首先设置您的基本目录
dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "path/to/your/project"
# 分析来自 Coverlet JSON 报告的覆盖率
dotnet run --project src/NetContextClient/NetContextClient.csproj -- coverage-analysis --report-path "TestResults/coverage.json"
# 获取覆盖率摘要
dotnet run --project src/NetContextClient/NetContextClient.csproj -- coverage-summary --report-path "TestResults/coverage.json"
示例覆盖率分析输出:
[
{
"filePath": "src/MyProject/Services/UserService.cs",
"coveragePercentage": 85.3,
"uncoveredLines": [42, 43, 88],
"branchCoverage": {
"ValidateUser()": 75.0,
"GetUserById()": 100.0
},
"recommendation": "Consider adding tests for the user validation error paths"
}
]
搜索命令
- 文本搜索:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- search-code --text "authentication"
- 语义搜索:
# 使用默认结果数 (5) 进行搜索
dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "handle user authentication"
# 使用自定义结果数进行搜索
dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "database connection string" --top 10
语义搜索功能:
- 使用嵌入来根据含义查找代码
- 返回按相关性排序的代码片段
- 显示行号和相似度分数
- 在首次搜索时自动索引您的代码
模式管理
- 添加忽略模式:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- add-ignore-patterns --patterns "*.txt" "*.log"
- 查看当前模式:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- get-ignore-patterns
- 删除特定模式:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- remove-ignore-patterns --patterns "*.txt"
- 清除用户模式:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- clear-ignore-patterns
- 查看状态文件位置:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- get-state-file-location
默认忽略模式
默认情况下,以下模式将被忽略以保护敏感信息:
*.env
- 环境变量文件appsettings.*.json
- 应用程序设置*.pfx
- 证书文件*.key
- 密钥文件*.pem
- PEM 文件*password*
- 文件名中包含 "password" 的文件*secret*
- 文件名中包含 "secret" 的文件
安全特性
- 路径安全:只能访问指定基本目录中的文件
- 模式验证:忽略模式经过验证以确保正确的语法
- 大小限制:大型文件内容被截断以防止内存问题
- 敏感文件保护:内置模式保护常见的敏感文件
示例工作流程
- 设置您的项目基本目录:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "D:\Projects\MyApp"
- 检查服务器版本和配置:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- version
- 设置自定义忽略模式:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- add-ignore-patterns --patterns "*.generated.cs" "*.designer.cs"
- 列出所有项目:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- list-projects-in-dir --directory "D:\Projects\MyApp\src"
- 分析您的项目包依赖关系:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- analyze-packages
- 搜索与身份验证相关的代码:
dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "user authentication and authorization logic"
与 AI 编码工具集成
NetContextServer 实现了 模型上下文协议 (MCP),允许与支持此协议的 AI 编码助手无缝集成,例如:
- Cursor AI:为您的 AI 助手提供完整的代码库上下文,以实现更准确的代码生成和辅助
- 其他 MCP 兼容工具:任何实现模型上下文协议的工具都可以连接到 NetContextServer
与 Cursor AI 一起使用:
- 配置 Cursor AI 以使用 NetContextServer 作为其 MCP 提供程序
- 享受增强的代码辅助,具有完整的代码库上下文
为了测试和调试 MCP 交互,您可以使用 CursorMCPMonitor,这是一个实时监控工具,可帮助跟踪和分析 MCP 客户端和服务器之间的通信。
模型上下文协议使 AI 工具能够请求关于您的代码库的特定信息,使 AI 的建议与您的特定项目结构和编码模式更相关和准确。
错误处理
服务器为常见场景提供清晰的错误消息:
- 目录未找到
- 访问被拒绝(在基本目录之外)
- 无效模式
- 超出文件大小限制
- 受限制的文件类型
- 语义搜索缺少环境变量
贡献
- Fork 存储库
- 创建一个功能分支
- 提交您的更改
- 推送到分支
- 创建一个 Pull Request
许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。