ReSharper MCP服务器
在ReSharper/Rider后端进程内运行的MCP(模型上下文协议)服务器,通过HTTP向AI助手公开代码智能功能。
支持C#、F#、VB和任何具有ReSharper PSI实现的语言。
工具
| 工具 | 说明 |
|---|---|
find_usages | 查找对某个符号的所有引用 |
get_symbol_info | 详细的符号信息:种类、类型、参数、文档、基本类型、成员 |
find_implementations | 查找接口/抽象类和重写的实现 |
get_file_errors | 获取编译错误和未解析的引用 |
search_symbol | 在整个解决方案中按名称(子字符串匹配)搜索符号 |
go_to_definition | 导航到带有源文本的符号声明 |
get_solution_structure | 列出项目、目标框架和项目参考 |
browse_namespace | 浏览命名空间层次结构:子命名空间和类型 |
list_symbols_in_file | 列出文件中的所有声明 |
list_solutions | 列出Rider实例中的所有开放解决方案 |
fix_usings | 修复C#文件中缺少使用指令的问题 |
format_file | 格式化、清理或将代码样式应用于文件 |
flow | 描述方法或类型的控制流:执行步骤、分支、循环、错误路径、内联调用目标 |
符号解析
对符号进行操作的工具接受两种模式:
- 按位置 —
filePath+line+column(1-基) - 通过名称 —
symbolName(例如。"MyClass","Namespace.MyClass","MyClass.MyMethod")
可选 kind 过滤器("type", "method", "property", "field", "event")有助于消除歧义。当多个符号匹配时,工具会返回一个歧义错误,列出所有候选符号及其限定名称、种类和位置。
批量模式
大多数工具支持批处理模式——在一次调用中处理多个输入。这减少了一次查询多个符号或文件时的往返次数:
- 基于符号的工具 (
find_usages,get_symbol_info,find_implementations,go_to_definition)接受asymbols数组{symbolName, kind, filePath, line, column}物体。 - 基于文件的工具 (
get_file_errors,list_symbols_in_file,fix_usings,format_file)接受afilePaths字符串数组。 search_symbol接受aqueries字符串数组。browse_namespace接受anamespaceNames字符串数组。
结果与 === [N/total] label === 分离器。共享选项(例如。 maxResults, kinds, mode)适用于批次中的所有项目。原始的单输入参数保持向后兼容性。
安装
来自JetBrains市场
从Rider安装插件: 设置→ 插件→ 市场 → 搜索“MCP代码智能服务器”。
来源
./install-rider.sh
# Restart Rider该脚本构建插件并将其复制到本地Rider插件目录。
MCP客户端配置
添加到MCP客户端配置中(例如Claude Code settings.json):
{
"mcpServers": {
"resharper": {
"type": "http",
"url": "http://127.0.0.1:23741/"
}
}
}当您在Rider中打开解决方案时,服务器会自动启动。
集 RESHARPER_MCP_PORT 环境变量来覆盖默认端口。
建筑
# Build the .NET backend
dotnet build src/ReSharperMcp/ReSharperMcp.csproj -c Release
# Build a distributable plugin ZIP
./build-plugin.sh建筑
- 以ReSharper的身份运行
SolutionComponent(溶液打开时激活,关闭时停止) - 在上托管HTTP服务器
127.0.0.1:23741在JSON-RPC 2.0上实现MCP - 使用ReSharper的PSI(程序结构接口)API进行代码分析
- 由两部分组成的Rider插件:最小JVM JAR(插件描述符)+。NET后端DLL
- 目标
net472(ReSharper主机进程要求)
