Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/中文
Sign inSign up
Home/Servers/Resharper Cli

Resharper Cli

by io.github.andypgray

ReSharper CLI inspection/cleanup via MCP. Unofficial: not affiliated with or endorsed by JetBrains.

Power your agent

Add this server

The publisher's own command. Not a PlugMCP endpoint.

Local command
nuget Zphil.ReSharperCli
Credentials from the publisher
  • JB_SOLUTION_PATH — Solution to analyse when the working directory holds zero or several. The solutionPath tool argument overrides it for one call.
  • JB_SETTINGS_PATH — Explicit .DotSettings file for jb, mounted as a Custom layer above the solution's and every project's own settings.
  • JB_CACHE_HOME — ReSharper cache directory. Defaults to ~/.jb-cache.
  • JB_EXTENSIONS — Semicolon-separated ReSharper plugin IDs to load.
  • JB_EXTENSION_SOURCE — Custom NuGet source for those ReSharper plugins.
  • RESHARPER_MCP_TIMEOUT_SECS — Cap in seconds on one jb run, and on the wait for one already in flight. Defaults to 600, clamped to 60-86,400.
  • RESHARPER_MCP_PREWARM — Set to off to stop the background cache pre-warm that runs when a client connects.
  • RESHARPER_MCP_LOG_LEVEL — Minimum level for the rolling file log. Defaults to Warning.
  • MAX_MCP_OUTPUT_TOKENS — Output budget the response is rendered to fit. Set by the MCP client rather than by hand; 25,000 characters when unset.
Provider
Claude Code
JB_SOLUTION_PATH=<value> JB_SETTINGS_PATH=<value> JB_CACHE_HOME=<value> JB_EXTENSIONS=<value> JB_EXTENSION_SOURCE=<value> RESHARPER_MCP_TIMEOUT_SECS=<value> RESHARPER_MCP_PREWARM=<value> RESHARPER_MCP_LOG_LEVEL=<value> MAX_MCP_OUTPUT_TOKENS=<value> claude mcp add io.github.andypgray-resharper-cli-mcp -- nuget Zphil.ReSharperCli

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "io.github.andypgray-resharper-cli-mcp": {
      "command": "nuget",
      "args": [
        "Zphil.ReSharperCli"
      ],
      "env": {
        "JB_SOLUTION_PATH": "<value>",
        "JB_SETTINGS_PATH": "<value>",
        "JB_CACHE_HOME": "<value>",
        "JB_EXTENSIONS": "<value>",
        "JB_EXTENSION_SOURCE": "<value>",
        "RESHARPER_MCP_TIMEOUT_SECS": "<value>",
        "RESHARPER_MCP_PREWARM": "<value>",
        "RESHARPER_MCP_LOG_LEVEL": "<value>",
        "MAX_MCP_OUTPUT_TOKENS": "<value>"
      }
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • Firecrawl🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

Questions

How do I install Resharper Cli?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does Resharper Cli need an API key?
The publisher lists these environment variables: JB_SOLUTION_PATH, JB_SETTINGS_PATH, JB_CACHE_HOME, JB_EXTENSIONS, JB_EXTENSION_SOURCE, RESHARPER_MCP_TIMEOUT_SECS, RESHARPER_MCP_PREWARM, RESHARPER_MCP_LOG_LEVEL, MAX_MCP_OUTPUT_TOKENS.
What transport does Resharper Cli use?
Resharper Cli runs locally over stdio.
When was Resharper Cli last checked?
Last checked 2026-10-16. ReSharper CLI inspection/cleanup via MCP. Unofficial: not affiliated with or endorsed by JetBrains.

ReSharper CLI inspection/cleanup via MCP. Unofficial: not affiliated with or endorsed by JetBrains.

resharper-cli-mcp

resharper-cli-mcp is an MCP server that runs JetBrains' ReSharper command-line tools for a coding agent. Its resharper_inspect tool runs jb inspectcode and returns the issues, and resharper_cleanup runs jb cleanupcode over the files the agent names. jb reads the solution's .DotSettings and .editorconfig as ReSharper does in the IDE, so the agent is held to the same severities and code style. The server is unofficial, not affiliated with or endorsed by JetBrains, and it runs a jb you install yourself.

Why not call jb directly?

An agent can run jb from a shell. It then gets a report file that can list thousands of issues, a cleanup profile it must name on every call, and a cold cache in each new checkout. The server handles each of these:

  • Issues come back as markdown grouped by file, re-rendered at lower detail until they fit the client's output budget.
  • jb cleanupcode runs Built-in: Full Cleanup unless it is given --profile, whatever the solution's settings say. The server passes the profile the solution names under SilentCleanupProfile, and reports which files cleanup changed.
  • The cache is warmed when a client connects, unless RESHARPER_MCP_PREWARM=off. A new worktree or clone is seeded from another checkout's warm cache.
  • Runs are queued, because otherwise a second concurrent jb on one solution builds a cold cache of its own.
  • A run reports progress every ten seconds, with the elapsed time and the cap.

Run times

Every run analyses the whole solution, because resolving symbols needs the full solution model. files narrows what is reported, not what is analysed. The first run against a solution builds ReSharper's caches and typically takes minutes, then later runs against the same cache are several times faster.

Each run is capped at RESHARPER_MCP_TIMEOUT_SECS, defaulting to 10 minutes. If your client's own tool-call timeout is shorter than a cold run, raise that too.

Quickstart

The server needs the .NET 10 SDK and JetBrains' ReSharper Command Line Tools, which are free and need no ReSharper license. Both install as .NET global tools:

dotnet tool install -g JetBrains.ReSharper.GlobalTools
dotnet tool install -g Zphil.ReSharperCli

Register the command resharper-cli-mcp, which takes no arguments, with your MCP client. For Claude Code, add it to .mcp.json:

{
  "mcpServers": {
    "resharper": {
      "command": "resharper-cli-mcp"
    }
  }
}

The server uses the one .sln or .slnx in its working directory. When there are none or several, set JB_SOLUTION_PATH in the config's env block.

Other clients differ only in where the entry goes and the key around it:

ClientWhere the entry goesTop-level key
Visual Studio 2022 17.14+ and 2026.mcp.json beside the solutionservers, with "type": "stdio"
VS Code.vscode/mcp.jsonservers, with "type": "stdio"
Cursor.cursor/mcp.json, or ~/.cursor/mcp.json for every projectmcpServers
Rider AI AssistantSettings | Tools | AI Assistant | MCPmcpServers
Junie.junie/mcp/mcp.json, or ~/.junie/mcp/mcp.json for every projectmcpServers
Clinecline_mcp_settings.json, under Configure MCP ServersmcpServers

Inside Rider, the IDE's own analysis already gives its agents the inspection results, and resharper_inspect would run a second analysis of the solution alongside it. There the server's sole use is resharper_cleanup, because Rider's MCP tools can reformat a file but cannot run a cleanup profile.

For Codex CLI, run codex mcp add resharper -- resharper-cli-mcp. llms-install.md has the full entry for each client as a checklist, so you can point an agent at it to do the install.

VS Code, Visual Studio, Cursor and LM Studio can add the server in one click once both tools are installed:

Install as a Claude Code plugin

This repository is also a Claude Code plugin marketplace with one plugin:

/plugin marketplace add andypgray/resharper-cli-mcp
/plugin install resharper-cli-mcp@resharper-cli-mcp

The plugin starts the server with dotnet dnx, pinned to one release, and claude plugin update resharper-cli-mcp@resharper-cli-mcp moves the pin to the latest. You still install the .NET 10 SDK and jb, and ReSharper's caches live in the plugin's data directory.

Install as a Claude Desktop extension

Download resharper-cli-mcp-<version>.mcpb from the latest release, double-click it, and set Solution file to the .sln or .slnx to analyse. Claude Desktop starts the server outside your repository, so it has no working directory to find a solution in. The bundle carries only the server, so install the .NET 10 runtime and the ReSharper Command Line Tools first. Run cap moves the 10-minute limit on one run.

Tools

ToolMutates filesWhat it does
resharper_inspectnoRuns jb inspectcode and returns the issues, grouped by file.
resharper_cleanupyesRuns jb cleanupcode on the given files and reports which ones changed on disk.
resharper_reset_cacheno (deletes caches)Drops the solution's ReSharper cache so the next run starts cold, or reclaims the cache a deleted checkout left behind.

resharper_inspect takes files globs, solution-relative or absolute, and a severity of Suggestion, Warning (the default) or Error. At severity=Suggestion a response reads:

Found 2 issue(s) across 1 file(s):

### /repo/src/HomeController.cs
- **Line 8** [WARNING] `RedundantUsingDirective`: Using directive is not required by the code and can be safely removed.
- **Line 24** [SUGGESTION] `FieldCanBeMadeReadOnly.Local`: Field can be made readonly.

report=Markdown writes every issue with its own message to a file under the system temp directory. The response names the file, and the server deletes it after seven days. detail caps how detailed the response may be, down to a one-line Minimal, so detail=Minimal report=Markdown surveys a legacy solution in one call.

resharper_cleanup changes style, never behaviour: formatting, using directives, var style, modifier order, redundant qualifiers and parentheses, braces. Without a profile argument it uses the profile named under SilentCleanupProfile in the solution's settings, then Built-in: Full Cleanup. Where Full Cleanup would churn legacy code, name a narrower profile there. Every call then uses it, including calls from an agent that does not know it exists.

For a codebase with no style settings yet, start from ReSharper's Detect Code Style Settings, or in Rider Auto-Detect Code Style Rules. The derive_style_guide prompt walks an agent through the same job without an IDE.

Configuration

Set these in the client config's env block. All are optional. The JB_ variables are passed on to jb, and the RESHARPER_MCP_ ones govern the server itself.

VariableDefaultPurpose
JB_SOLUTION_PATHdiscoveredSolution to use when the working directory has none or several; the solutionPath tool argument overrides it for one call.
JB_SETTINGS_PATHnoneA .DotSettings file outside the solution's own, mounted as a Custom layer above the solution's and every project's settings.
JB_CACHE_HOME~/.jb-cacheReSharper cache directory.
JB_EXTENSIONSnoneSemicolon-separated ReSharper plugin IDs to load.
JB_EXTENSION_SOURCEjb's ownCustom NuGet source for those plugins.
RESHARPER_MCP_TIMEOUT_SECS600Cap in seconds on one jb run, and on the wait for one already in flight, clamped to 60–86,400.
RESHARPER_MCP_PREWARMonoff disables the cache pre-warm when a client connects.
RESHARPER_MCP_LOG_LEVELWarningLevel for the rolling file log: Verbose, Debug, Information, Warning, Error or Fatal. The Microsoft names Trace and Critical also work, and any value it does not recognise falls back to Warning.
MAX_MCP_OUTPUT_TOKENS25,000 charactersClient output budget that responses are reduced to fit, at 2.5 characters per token.

The solution comes from the solutionPath argument, then JB_SOLUTION_PATH, then the one .sln or .slnx in the working directory, with no walk up to a parent. Logs roll daily under %LOCALAPPDATA%\Zphil.ReSharperCli\logs on Windows, and the platform equivalent elsewhere.

Two guides go deeper, and the server serves both as MCP resources for an agent to read. The setup guide (resharper://guides/setup) covers discovery, the cache, run times and output limits. The configuration guide (resharper://guides/configuration) covers settings layers, cleanup profiles, and keeping a deliberate style from being reverted.

Cleanup reminder hook

The single end-of-task cleanup is easy for an agent to forget. This Claude Code PostToolUse hook adds a one-line reminder to the agent's context after each .cs or .razor edit. It never edits code or calls the tool, so the agent still decides when to clean up. Add it to .claude/settings.json; the command needs a POSIX shell, which on Windows is Git Bash:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "grep -qiE '\"file_path\"[[:space:]]*:[[:space:]]*\"[^\"]*\\.(cs|razor)\"' && printf '%s' '{\"hookSpecificOutput\":{\"hookEventName\":\"PostToolUse\",\"additionalContext\":\"When this task is done, batch every edited .cs/.razor file into one resharper_cleanup call.\"}}' || true"
          }
        ]
      }
    ]
  }
}

Privacy Policy

resharper-cli-mcp collects nothing. It has no telemetry, analytics, accounts or remote logging, and it makes no network calls of its own. Each tool call runs the jb on your machine, and the results go back over stdio to the MCP client that started the server.

Everything the server writes stays on that machine: its diagnostic log, the inspection reports a call asks for, and bookkeeping files beside ReSharper's caches. The log and the reports can contain absolute paths and the rule IDs and messages read from your solution. PRIVACY.md is the full policy, with where each file lives and how long it is kept.

Contributing

Contributions are welcome. Bug reports reproduced on a public solution, MCP client-compatibility fixes, and improvements to discovery or output formatting land best. CONTRIBUTING.md covers the development setup and the test architecture, and SECURITY.md covers reporting a security issue privately.

License

MIT; see LICENSE.

JetBrains and ReSharper are trademarks of JetBrains s.r.o. This project is an independent wrapper of their ReSharper Command Line Tools, which ship under JetBrains' own license.

How do I install Resharper Cli?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does Resharper Cli need an API key?
The publisher lists these environment variables: JB_SOLUTION_PATH, JB_SETTINGS_PATH, JB_CACHE_HOME, JB_EXTENSIONS, JB_EXTENSION_SOURCE, RESHARPER_MCP_TIMEOUT_SECS, RESHARPER_MCP_PREWARM, RESHARPER_MCP_LOG_LEVEL, MAX_MCP_OUTPUT_TOKENS.
What transport does Resharper Cli use?
Resharper Cli runs locally over stdio.
When was Resharper Cli last checked?
Last checked 2026-10-16. ReSharper CLI inspection/cleanup via MCP. Unofficial: not affiliated with or endorsed by JetBrains.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Pricing
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • MCP Apps
  • Tools
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • Club
  • Work with us
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA