Skip to main content

acuminator-mcp: Acuminator as an MCP server

  • April 22, 2026
  • 7 replies
  • 347 views

Kyle Vanderstoep
Varsity I
Forum|alt.badge.img+2

acuminator-mcp: Acuminator as an MCP server

contou-consulting/acuminator-mcp: Acuminator MCP Server

Acuminator is the Roslyn analyzer that ships with Acumatica. acuminator-mcp exposes it over MCP so AI assistants (Claude Code, Cursor, etc.) can run it against their own output.

Three tools:

  • analyze_project runs Acuminator against a .csproj or .sln, returns diagnostics as code, file, line, column, project.
  • analyze_snippet analyzes a raw C# snippet against a reference project (auto-discovered from the working directory).
  • get_diagnostic_docs fetches the official docs for a PXNNNN code.

Diagnostic messages are omitted on purpose. The code is the handle, the agent looks up details when it needs them. All three tools are marked read-only so auto-approve runs them without prompting.

Install

Windows, .NET Framework 4.8 (the runner is net48 only, auto-downloaded on first use), Python 3.10+, pipx.

pipx install git+https://github.com/contou-consulting/acuminator-mcp.git@v0.1.1
claude mcp add --scope user acuminator acuminator-mcp

/mcp in Claude Code should show it connected. For other clients, point their stdio config at acuminator-mcp.

Under the hood

Python + FastMCP wrapping Acuminator.Runner.NetFramework.exe. MIT. Source and issues: github.com/contou-consulting/acuminator-mcp.

The parser has already taken two fixes against real runner output (embedded quotes in PX1069, group-title inheritance for PX1075). If you hit a diagnostic that doesn't parse cleanly, open an issue with the raw JSON line.

Kyle Vanderstoep, Contou Consulting

7 replies

Chris Hackett
Community Manager
Forum|alt.badge.img
  • Acumatica Community Manager
  • April 22, 2026

Thank you for sharing this tip with the community ​@Kyle Vanderstoep!


snikomarov36
Acumatica Employee
Forum|alt.badge.img
  • Acumatica Employee
  • April 24, 2026

​@Kyle Vanderstoep  I cannot open the repo. The link seems to be broken.


Kyle Vanderstoep
Varsity I
Forum|alt.badge.img+2

​@Kyle Vanderstoep  I cannot open the repo. The link seems to be broken.

Whoops, the repo was private, I made it public


snikomarov36
Acumatica Employee
Forum|alt.badge.img
  • Acumatica Employee
  • September 17, 2026

We are actually thinking about making Acuminator a dotnet tool which should help AI using it in a standard way. An interesting question is whether Acuminator should be both an MCP tool and dotnet tool. I heard that dotnet tools consume less tokens.


  • Freshman I
  • September 29, 2026

Having issues with this when VS2026 is installed. Is this an Acuminator or MCP issue? Note that this response is 100% Claude code driven and I don’t understand a word of it.

 

No way to choose the MSBuild used by the runner (--msBuild-path never passed)

run_analysis in acuminator_mcp/runner.py builds the runner command line without --msBuild-path, and there is no environment variable or tool argument for it. The README documents only ACUMINATOR_MCP_REFERENCE_PROJECT, ACUMINATOR_MCP_RUNNER_VERSION and ACUMINATOR_MCP_CACHE.

This matters on machines with several Visual Studio versions. With VS 2026 installed, the runner fails to load projects (see the report filed against Acuminator: TypeInitializationException in XMakeElements). Even if the runner is fixed to honor --msBuild-path, users of this MCP server can't use it.

Request: add an optional environment variable (for example ACUMINATOR_MCP_MSBUILD_PATH) that is passed as --msBuild-path.

Also: with ACUMINATOR_MCP_RUNNER_VERSION=4.0.0, the release zip extracts to net48\Acuminator.Runner.NetFramework.exe, so ensure_runner raises "Runner exe not found after extraction". The server also always passes --non-interactive, which 4.0.0 doesn't support. So only 4.0.1 works today, and the README's "pin a different runner release" tip doesn't work for 4.0.0.


snikomarov36
Acumatica Employee
Forum|alt.badge.img
  • Acumatica Employee
  • September 29, 2026

​@aatkins79 as it stands now, next Acuminator Console Runner versions also won’t support the custom msbuild option.

The underlying Roslyn dependency which will be updated in the next version always defaults to the latest MSBuild installed on the machine. So, the msbuild parameter actually became redundant and thus was deleted from the runner.


snikomarov36
Acumatica Employee
Forum|alt.badge.img
  • Acumatica Employee
  • September 29, 2026

​@aatkins79  regarding your issue, it is Acuminator problem and it was actually already fixed:
https://github.com/Acumatica/Acuminator/issues/678

You can try using a feature build from here:
https://github.com/user-attachments/files/31845442/Acuminator.Runner.NetFramework.zip