resharper-cli-mcp
This server lets an agent run JetBrains ReSharper command-line analysis and cleanup on a .NET solution.
Run
resharper_inspectto perform solution-wide ReSharper inspections and return warnings, errors, and suggestions grouped by file.Filter inspection findings with file/glob patterns and minimum severity, and control response detail from Full to Minimal.
Write complete itemized findings to a temporary Markdown report file while keeping the response summary concise.
Run
resharper_cleanupon named files to apply ReSharper formatting and code-style cleanup in place, then report which files changed.Use a named cleanup profile or default to the solution’s declared profile or full cleanup.
Run
resharper_reset_cacheto delete a solution’s ReSharper cache when stale analysis reports phantom compilation errors, or reclaim cache for a deleted checkout.Target a specific
.sln/.slnxviasolutionPath, or rely on configured/discovered solution selection.
Runs JetBrains ReSharper command-line tools to inspect code for issues and apply code cleanup to .NET solutions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@resharper-cli-mcpinspect the solution for code issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 cleanupcoderunsBuilt-in: Full Cleanupunless it is given--profile, whatever the solution's settings say. The server passes the profile the solution names underSilentCleanupProfile, 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
jbon one solution builds a cold cache of its own.A run reports progress every ten seconds, with the elapsed time and the cap.
Related MCP server: lsp-tools-mcp
Run times
An inspect analyses the whole solution, because resolving symbols needs the full solution model, so files narrows what is reported, not what is analysed. A cleanup loads only the projects its files belong to and every project those reference, through a solution filter the server writes, and on a warm cache it takes longer the more files it is given. RESHARPER_MCP_CLEANUP_FILTER=off makes it load the whole solution. 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.ReSharperCliRegister 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:
Client | Where the entry goes | Top-level key |
Visual Studio 2022 17.14+ and 2026 |
|
|
VS Code |
|
|
Cursor |
|
|
Rider AI Assistant | Settings | Tools | AI Assistant | MCP |
|
Junie |
|
|
Cline |
|
|
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-mcpThe 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
Tool | Mutates files | What it does |
| no | Runs |
| yes | Runs |
| no (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.
Variable | Default | Purpose |
| discovered | Solution to use when the working directory has none or several; the |
| none | A |
|
| ReSharper cache directory. |
| none | Semicolon-separated ReSharper plugin IDs to load. |
|
| Custom NuGet source for those plugins. |
|
| Cap in seconds on one |
| on |
|
| on |
|
|
| Level for the rolling file log: |
| 25,000 characters | Client 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. The first two also accept a solution filter (.slnf), whose settings are read from the solution it names. 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.
Available Tools
3 toolsresharper_cleanupReSharper Cleanup CodeADestructiveIdempotent
Run ReSharper code cleanup to format files in place, fixing formatting, code style, unused usings, var usage, modifier order and braces. Each call loads the files' projects and their references before it rewrites anything, so make one call per task with every modified file in it.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | File paths to clean up. Each is relative to the solution root, or absolute. jb matches them against the files that belong to a project in the solution, so one that is on disk but in no project matches nothing, which nothing here can detect. Wildcards are allowed and expanded by jb; a non-wildcard path that does not exist fails the whole call before anything is rewritten. An element joining several paths with ; or , is split into separate paths. | |
| profile | No | ReSharper cleanup profile name. Defaults to the profile the solution declares, else full cleanup. | |
| solutionPath | No | Path to the .sln, .slnx or .slnf to run against. Overrides JB_SOLUTION_PATH and working-directory discovery. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, idempotent=true, readOnly=false, so the risk profile is known. The description adds genuinely new behavior: the tool loads the files' projects and references before rewriting, which explains cost and why batching matters — context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded and dense with useful information: the first defines the operation, the second explains cost and the batching rule. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, mutating tool with no output schema and full schema coverage, the description covers purpose, cost behavior, and batching well. It does not say what is returned or how failures relate to partial rewrites, a minor gap given the schema already documents pre-write failure handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents files, profile, and solutionPath thoroughly, including wildcard and separator behavior. The description only reinforces the batching aspect of 'files'; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run cleanup) and resource (files), and enumerates exactly what it fixes: formatting, code style, unused usings, var usage, modifier order, braces. It is clearly a rewrite-in-place operation, distinct from a read-only sibling like resharper_inspect, though the sibling is not named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operational guidance: 'make one call per task with every modified file in it' tells the agent how to batch rather than call repeatedly. It lacks an explicit when-not/alternative statement (e.g., use inspect to preview), but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resharper_inspectReSharper Inspect CodeARead-onlyIdempotent
Run ReSharper code inspection (static analysis, lint) over a C# solution and return the warnings, errors and suggestions it finds.
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | Ant-style globs narrowing the findings to matching files, for example src/**/*.cs. The analysis stays solution-wide, so a scoped run is no faster. Each is relative to the solution root, or absolute. jb matches them against the files that belong to a project in the solution, so one that is on disk but in no project matches nothing, which nothing here can detect. An element joining several paths with ; or , is split into separate paths. | |
| detail | No | Cap on the detail the response carries: Full lists every issue on its own line, and Minimal is one line of totals. Rendering starts at this level and never goes above it, but still steps below it when the result does not fit the output budget. The DETAIL REDUCED note says which of the two happened. Response shaping only: the same analysis runs whatever the level, so a lower level does not make a call finish sooner. Pair detail=Minimal with report=Markdown for a cheap verdict in the response and every finding in the file. | Full |
| report | No | Write the complete itemised findings to a file, and name it in the response. Markdown lists every issue with its own message, which is what the response listing collapses once a solution-wide run exceeds the output budget. The file lands in a directory this server owns and is pruned after 7 days; the response carries the summary either way. | None |
| severity | No | Minimum severity to report. Error is ReSharper's compilation-error level, not a tier of high-priority warnings; raising to it usually reports nothing. | Warning |
| solutionPath | No | Path to the .sln, .slnx or .slnf to run against. Overrides JB_SOLUTION_PATH and working-directory discovery. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that it returns warnings, errors and suggestions; it says nothing about runtime cost, the fact that analysis is solution-wide regardless of any file scoping, or that findings may be written to a pruned report file — all of which live only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with a clear verb and scope, and no wasted words. It is appropriately sized given the schema carries the detail, though it stops short of any structure that would help an agent decide between sibling tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does state what comes back (warnings, errors, suggestions), which is the key missing piece an agent would otherwise lack. The remaining complexity — detail levels, report file emission, solution resolution — is exhaustively documented in the parameter schema, so the definition is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the five parameters carries a detailed, non-obvious explanation in the schema itself. The description mentions no parameter names or semantics, so it adds nothing here, but the schema baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource pair ("Run ReSharper code inspection") and clarifies the domain with parentheticals ("static analysis, lint") plus the target ("a C# solution"). It is clearly distinct from resharper_cleanup and resharper_reset_cache by implication, but never names or contrasts those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by "over a C# solution" but there is no statement of when to prefer this over resharper_cleanup, nor any prerequisites (e.g. a solution must be locatable via solutionPath or JB_SOLUTION_PATH). The agent must infer the routing from the tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resharper_reset_cacheReSharper Reset CacheADestructiveIdempotent
Delete this solution's ReSharper analysis cache so the next inspect or cleanup rebuilds it from cold. The cure for inspect reporting compilation errors a successful build does not: a stale index serves those until the cache is dropped. Build first, because on a checkout that was never built or restored the errors are real and a reset only adds a cold analysis to the build it still needs. Costs the next call a full cold analysis, so it is not routine maintenance. A deleted checkout's cache outlives it: pass its old solution path as solutionPath to reclaim it.
| Name | Required | Description | Default |
|---|---|---|---|
| solutionPath | No | Path to the .sln, .slnx or .slnf to run against. Overrides JB_SOLUTION_PATH and working-directory discovery. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description goes further by quantifying the cost ('costs the next call a full cold analysis') and disclosing a non-obvious lifecycle behavior ('a deleted checkout's cache outlives it'), neither of which is derivable from the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with no filler; the core purpose and the wrong-condition warning are front-loaded, and each sentence contributes a distinct fact. It is slightly dense and could be split for skimming, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter cache-reset tool with no output schema, the description covers purpose, trigger condition, prerequisite, cost, and the edge case of a stale deleted checkout. An agent has everything needed to decide to call it and to supply the parameter correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already explains that solutionPath overrides JB_SOLUTION_PATH and working-directory discovery, so the baseline is 3. The description adds real meaning beyond the schema by explaining the reclaim use case ('pass its old solution path as solutionPath') for a checkout that no longer exists, raising it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete this solution's ReSharper analysis cache') plus the consequence (next inspect or cleanup rebuilds from cold), which immediately separates it from the sibling inspect/cleanup tools. An agent can identify exactly what this operates on without inferring from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the precise diagnostic condition for use ('inspect reporting compilation errors a successful build does not'), an explicit prerequisite and anti-case ('Build first, because on a checkout that was never built... the errors are real'), and a general exclusion ('not routine maintenance'). That is when-to-use, when-not-to-use, and a prerequisite all in one paragraph.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.8.0- Changed
resharper_cleanup1 field changed- changed
Input schema / properties / solutionPath / descriptionPrevious value: -"Path to the .sln/.slnx to run against. Overrides JB_SOLUTION_PATH and working-directory discovery."New value: +"Path to the .sln, .slnx or .slnf to run against. Overrides JB_SOLUTION_PATH and working-directory discovery."
- Changed
resharper_inspect1 field changed- changed
Input schema / properties / solutionPath / descriptionPrevious value: -"Path to the .sln/.slnx to run against. Overrides JB_SOLUTION_PATH and working-directory discovery."New value: +"Path to the .sln, .slnx or .slnf to run against. Overrides JB_SOLUTION_PATH and working-directory discovery."
- Changed
resharper_reset_cache1 field changed- changed
Input schema / properties / solutionPath / descriptionPrevious value: -"Path to the .sln/.slnx to run against. Overrides JB_SOLUTION_PATH and working-directory discovery."New value: +"Path to the .sln, .slnx or .slnf to run against. Overrides JB_SOLUTION_PATH and working-directory discovery."
1 tool update
v1.7.2- Changed
resharper_inspect1 field changed- changed
Input schema / properties / detail / descriptionPrevious value: -"Cap on the detail the response carries: Full, the default, lists every issue on its own line, and Minimal is one line of totals. Rendering starts at this level and never goes above it, but still steps below it when the result does not fit the output budget. The DETAIL REDUCED note says which of the two happened. Response shaping only: the same analysis runs whatever the level, so a lower level does not make a call finish sooner. Pair detail=Minimal with report=Markdown for a cheap verdict in the response and every finding in the file."New value: +"Cap on the detail the response carries: Full lists every issue on its own line, and Minimal is one line of totals. Rendering starts at this level and never goes above it, but still steps below it when the result does not fit the output budget. The DETAIL REDUCED note says which of the two happened. Response shaping only: the same analysis runs whatever the level, so a lower level does not make a call finish sooner. Pair detail=Minimal with report=Markdown for a cheap verdict in the response and every finding in the file."
2 tool updates
v1.7.0- Changed
resharper_cleanup1 field changed- changed
Input schema / properties / files / descriptionPrevious value: -"File paths to clean up. Each is relative to the solution root, or absolute. jb matches them against the files that belong to a project in the solution, so one that is on disk but in no project matches nothing. Wildcards are allowed and expanded by jb; a non-wildcard path that does not exist fails the whole call before anything is rewritten. An element joining several paths with ; or , is split into separate paths."New value: +"File paths to clean up. Each is relative to the solution root, or absolute. jb matches them against the files that belong to a project in the solution, so one that is on disk but in no project matches nothing, which nothing here can detect. Wildcards are allowed and expanded by jb; a non-wildcard path that does not exist fails the whole call before anything is rewritten. An element joining several paths with ; or , is split into separate paths."
- Changed
resharper_inspect1 field changed- changed
Input schema / properties / files / descriptionPrevious value: -"Ant-style globs scoping the analysis to specific files, for example src/**/*.cs. Each is relative to the solution root, or absolute. jb matches them against the files that belong to a project in the solution, so one that is on disk but in no project matches nothing. An element joining several paths with ; or , is split into separate paths."New value: +"Ant-style globs narrowing the findings to matching files, for example src/**/*.cs. The analysis stays solution-wide, so a scoped run is no faster. Each is relative to the solution root, or absolute. jb matches them against the files that belong to a project in the solution, so one that is on disk but in no project matches nothing, which nothing here can detect. An element joining several paths with ; or , is split into separate paths."
3 tool updates
v0.1.0- First observed
resharper_cleanup - First observed
resharper_inspect - First observed
resharper_reset_cache
TDQS
Scored across 3 tools
Each tool has a clearly distinct action: inspect reports findings, cleanup rewrites files in place, and reset_cache clears analysis state. There is no meaningful overlap in purpose, and the descriptions make the boundaries between them explicit.
All tools use the same resharper_ prefix and snake_case naming convention. The verbs inspect, cleanup, and reset_cache are readable and consistent enough for predictable selection.
A focused ReSharper CLI wrapper naturally needs only a few operations, and these three each earn their place. The count is well-scoped rather than thin, because the tools cover inspection, cleanup, and cache recovery.
The surface covers the core lifecycle for this domain: analyze code, apply formatting/style cleanup, and recover from stale cache. Minor gaps exist, such as no tool for inspecting or cleaning a subset of files or explicitly reporting cache state, but the main workflows are supported.
Maintenance
Related MCP Connectors
MCP server to assist with JxBrowser development.
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceThe server proxies requests from client to JetBrains IDE.1,136 npm962Apache 2.0- AlicenseNot gradedqualityDmaintenanceExposes Language Server Protocol (LSP) tools such as diagnostics, goto definition, find references, symbols, and rename as a stdio MCP server.8MIT
- FlicenseAqualityDmaintenanceMinimal MCP server bridging a Roslyn C# language server to AI agents, exposing tools for diagnostics, call hierarchy, and type hierarchy.1-
- AlicenseBqualityCmaintenanceMCP server for structured patching of Mono / .NET assemblies.6MIT