Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
ReSharper CLI inspection/cleanup via MCP. Unofficial: not affiliated with or endorsed by JetBrains.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
JB_SOLUTION_PATH, JB_SETTINGS_PATH, JB_CACHE_HOME, JB_EXTENSIONS, JB_EXTENSION_SOURCE, RESHARPER_MCP_TIMEOUT_SECS, RESHARPER_MCP_PREWARM, RESHARPER_MCP_CLEANUP_FILTER, RESHARPER_MCP_LOG_LEVEL, MAX_MCP_OUTPUT_TOKENSคุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"resharper-cli": {
"command": "dnx",
"args": [
"Zphil.ReSharperCli",
"--yes"
],
"env": {
"JB_SOLUTION_PATH": "ใส่ค่าของคุณ",
"JB_SETTINGS_PATH": "ใส่ค่าของคุณ",
"JB_CACHE_HOME": "ใส่ค่าของคุณ",
"JB_EXTENSIONS": "ใส่ค่าของคุณ",
"JB_EXTENSION_SOURCE": "ใส่ค่าของคุณ",
"RESHARPER_MCP_TIMEOUT_SECS": "ใส่ค่าของคุณ",
"RESHARPER_MCP_PREWARM": "ใส่ค่าของคุณ",
"RESHARPER_MCP_CLEANUP_FILTER": "ใส่ค่าของคุณ",
"RESHARPER_MCP_LOG_LEVEL": "ใส่ค่าของคุณ",
"MAX_MCP_OUTPUT_TOKENS": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add resharper-cli --env JB_SOLUTION_PATH='ใส่ค่าของคุณ' --env JB_SETTINGS_PATH='ใส่ค่าของคุณ' --env JB_CACHE_HOME='ใส่ค่าของคุณ' --env JB_EXTENSIONS='ใส่ค่าของคุณ' --env JB_EXTENSION_SOURCE='ใส่ค่าของคุณ' --env RESHARPER_MCP_TIMEOUT_SECS='ใส่ค่าของคุณ' --env RESHARPER_MCP_PREWARM='ใส่ค่าของคุณ' --env RESHARPER_MCP_CLEANUP_FILTER='ใส่ค่าของคุณ' --env RESHARPER_MCP_LOG_LEVEL='ใส่ค่าของคุณ' --env MAX_MCP_OUTPUT_TOKENS='ใส่ค่าของคุณ' -- dnx Zphil.ReSharperCli --yesเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"resharper-cli": {
"command": "dnx",
"args": [
"Zphil.ReSharperCli",
"--yes"
],
"env": {
"JB_SOLUTION_PATH": "ใส่ค่าของคุณ",
"JB_SETTINGS_PATH": "ใส่ค่าของคุณ",
"JB_CACHE_HOME": "ใส่ค่าของคุณ",
"JB_EXTENSIONS": "ใส่ค่าของคุณ",
"JB_EXTENSION_SOURCE": "ใส่ค่าของคุณ",
"RESHARPER_MCP_TIMEOUT_SECS": "ใส่ค่าของคุณ",
"RESHARPER_MCP_PREWARM": "ใส่ค่าของคุณ",
"RESHARPER_MCP_CLEANUP_FILTER": "ใส่ค่าของคุณ",
"RESHARPER_MCP_LOG_LEVEL": "ใส่ค่าของคุณ",
"MAX_MCP_OUTPUT_TOKENS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"resharper-cli": {
"type": "stdio",
"command": "dnx",
"args": [
"Zphil.ReSharperCli",
"--yes"
],
"env": {
"JB_SOLUTION_PATH": "ใส่ค่าของคุณ",
"JB_SETTINGS_PATH": "ใส่ค่าของคุณ",
"JB_CACHE_HOME": "ใส่ค่าของคุณ",
"JB_EXTENSIONS": "ใส่ค่าของคุณ",
"JB_EXTENSION_SOURCE": "ใส่ค่าของคุณ",
"RESHARPER_MCP_TIMEOUT_SECS": "ใส่ค่าของคุณ",
"RESHARPER_MCP_PREWARM": "ใส่ค่าของคุณ",
"RESHARPER_MCP_CLEANUP_FILTER": "ใส่ค่าของคุณ",
"RESHARPER_MCP_LOG_LEVEL": "ใส่ค่าของคุณ",
"MAX_MCP_OUTPUT_TOKENS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
JB_SOLUTION_PATH envJB_SETTINGS_PATH envJB_CACHE_HOME envJB_EXTENSIONS envJB_EXTENSION_SOURCE envRESHARPER_MCP_TIMEOUT_SECS envRESHARPER_MCP_PREWARM envRESHARPER_MCP_CLEANUP_FILTER envRESHARPER_MCP_LOG_LEVEL envMAX_MCP_OUTPUT_TOKENS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub andypgray ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.8.0) เข้า registry 6 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี .NET ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Intervals MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Remote MCP server for intervals.icu run data and analysis
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
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:
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.RESHARPER_MCP_PREWARM=off. A new worktree or clone is seeded from another checkout's warm cache.jb on one solution builds a cold cache of its own.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.
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:
| Client | Where the entry goes | Top-level key | |||
|---|---|---|---|---|---|
| Visual Studio 2022 17.14+ and 2026 | .mcp.json beside the solution | servers, with "type": "stdio" | |||
| VS Code | .vscode/mcp.json | servers, with "type": "stdio" | |||
| Cursor | .cursor/mcp.json, or ~/.cursor/mcp.json for every project | mcpServers | |||
| Rider AI Assistant | Settings \ | Tools \ | AI Assistant \ | MCP | mcpServers |
| Junie | .junie/mcp/mcp.json, or ~/.junie/mcp/mcp.json for every project | mcpServers | |||
| Cline | cline_mcp_settings.json, under Configure MCP Servers | mcpServers |
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:
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.
Download resharper-cli-mcp- .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.
| Tool | Mutates files | What it does |
|---|---|---|
resharper_inspect | no | Runs jb inspectcode and returns the issues, grouped by file. |
resharper_cleanup | yes | Runs jb cleanupcode on the given files and reports which ones changed on disk. |
resharper_reset_cache | 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):
RedundantUsingDirective: Using directive is not required by the code and can be safely removed.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.
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 |
|---|---|---|
JB_SOLUTION_PATH | discovered | Solution to use when the working directory has none or several; the solutionPath tool argument overrides it for one call. |
JB_SETTINGS_PATH | none | A .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-cache | ReSharper cache directory. |
JB_EXTENSIONS | none | Semicolon-separated ReSharper plugin IDs to load. |
JB_EXTENSION_SOURCE | jb's own | Custom NuGet source for those plugins. |
RESHARPER_MCP_TIMEOUT_SECS | 600 | Cap in seconds on one jb run, and on the wait for one already in flight, clamped to 60–86,400. |
RESHARPER_MCP_PREWARM | on | off disables the cache pre-warm when a client connects. |
RESHARPER_MCP_CLEANUP_FILTER | on | off makes every cleanup load the whole solution rather than a solution filter of the files' projects. |
RESHARPER_MCP_LOG_LEVEL | Warning | Level 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_TOKENS | 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.
ตัดมาแค่ช่วงต้น อ่านต่อใน repo