dotMCP 0.4.0

There is a newer version of this package available.
See the version list below for details.
{
  "servers": {
    "dotMCP": {
      "type": "stdio",
      "command": "dnx",
      "args": ["dotMCP@0.4.0", "--yes"]
    }
  }
}
                    
This package contains an MCP Server. The server can be used in VS Code by copying the generated JSON to your VS Code workspace's .vscode/mcp.json settings file.
dotnet tool install --global dotMCP --version 0.4.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local dotMCP --version 0.4.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=dotMCP&version=0.4.0
                    
nuke :add-package dotMCP --version 0.4.0
                    

dotMCP

MCP server that exposes a C# solution as a semantic graph over Roslyn, instead of requiring an LLM agent to grep files and re-parse text on every step.

What it's for

Connect this server to an MCP-capable client (Claude Code, VS Code + Copilot, Cursor, etc.) so the agent can navigate, analyze, and edit a C# solution through typed tool calls (get_type, get_call_graph, find_writes, rename_symbol, concurrency_audit, search_code, find_duplicates, tests_run, and more) instead of raw file search-and-replace.

All tool responses are TOON-encoded (Token-Oriented Object Notation, spec v3): the same facts as JSON with camelCase keys and nulls omitted, at a fraction of the token cost — uniform result lists collapse into one header plus tabular rows.

See the repository at https://github.com/QsROg8320/SharpMCP.claude/skills/dotmcp-tools/SKILL.md there documents all 63 tools with real tested examples, argument constraints, and known gaps.

Usage via NuGet (dnx)

VS Code / clients that use a "servers" config block:

{
  "servers": {
    "dotMCP": {
      "type": "stdio",
      "command": "dnx",
      "args": ["dotMCP@0.4.0", "--yes"]
    }
  }
}

qwen-code / Pi Coding Agent / other clients that use a plain "mcpServers" block (do not include "servers" or "type" here — those are VS Code-specific and will be rejected by these clients):

{
  "mcpServers": {
    "dotMCP": {
      "command": "dnx",
      "args": ["dotMCP@0.4.0", "--yes"]
    }
  }
}

Requires the .NET 10 SDK (for the dnx command) on the machine running the MCP client.

Unpacking the bundled skill (Claude Code)

The package embeds the full tool reference (SKILL.md: every tool with argument constraints and real captured request/response examples). The server can deploy it into your Claude Code skills directory on startup — opt-in, it never writes outside its working directory unless you ask:

  1. Set DOTMCP_DEPLOY_SKILL=true in the server's environment, e.g.:

    {
      "mcpServers": {
        "dotmcp": {
          "command": "dnx",
          "args": ["dotMCP@0.4.0", "--yes"],
          "env": { "DOTMCP_DEPLOY_SKILL": "true" }
        }
      }
    }
    
  2. On every server start the skill is (re)written to ~/.claude/skills/dotmcp/SKILL.md — upgrades refresh it automatically. Set DOTMCP_SKILLS_DIR to redirect the skills root (the dotmcp/SKILL.md part stays).

  3. Restart Claude Code (or start a new session); the dotmcp skill is picked up automatically and teaches the agent every tool below.

Tools at a glance (63)

Workspaceworkspace_open open a .sln/.slnx/.csproj (mandatory first call); get_structure namespace/type hierarchy with doc one-liners; get_diagnostics compiler errors/warnings for solution/project/type/method.

Navigationget_type type card (member signatures, doc, usedBy/uses); get_method full method with symbol map, callers/callees, version token; get_source any node as C# text; get_lines raw line range of a file; get_symbol "what is this?" incl. NuGet/BCL symbols; search_symbols ranked name search; search_text search string literals/comments/XML doc; search_code regex over the raw code text (the grep of the graph).

Usagesfind_usages all references classified read/write/invocation/argument; find_local_usages usages of a local/parameter inside its method; type_usages where a type appears (fields, params, returns, generics); get_instantiations where and with what arguments a type is constructed.

Code graphget_method_nodes CFG nodes of a body; replace_node swap one CFG node; get_reaching_conditions path conditions to a node; get_call_graph callers/callees tree; reach is there a call path A→B; get_type_hierarchy base/derived tree; find_implementations interface/abstract implementors; impact_of transitive blast radius of changing a member.

Analysiscomplexity cyclomatic + cognitive ranking; find_duplicates structural duplicate clusters (canonicalized tokens); concurrency_audit ranked suspicious-concurrency findings (lock asymmetry, check-then-act, blocking under lock...); find_dead_code uncallable/unused/unreachable; entry_points execution roots; get_effects reads/writes/IO/sync/blocking/spawns/purity of a method; find_writes / find_reads field access sites with lock context; get_argument_values what values flow into a parameter; event_flow raise/subscribe map of an event; trace_value where a value comes from / flows to; decompile C# of NuGet/BCL symbols; run run the project; tests_list / tests_for / tests_run discover, map, and execute tests (TUnit/xUnit/NUnit/MSTest); probe temporary counters through a test run; trace_test per-test execution paths.

Editing (guarded)add_type new type (with usings support); add_member add method/property/field/event; replace_method_body swap statements; replace_member replace a whole declaration (attributes, signature, base(...)); move_member relocate a member; update_doc rewrite XML doc; delete_member / delete_file safe-delete with usage guard; change_signature change parameters atomically across all call sites; rename_symbol solution-wide rename; find_replace regex edit inside a member/type or a whole file (doc: scope). Every edit re-parses before applying, reports semantic/ripple diagnostics plus a unified diff, and leads with an explicit warning if the code no longer compiles.

Project opschanges_list / changes_diff what changed since the last commit; commit snapshot; revert_file undo one file; package_add / package_remove / package_list NuGet references; project_create / project_remove projects; asset_list / asset_read / asset_write non-code files (configs, json, ...).

Environment variables

  • DOTMCP_RELOAD_DEBOUNCE_SECONDS — quiet period of the file watcher before external edits trigger a workspace reload (default 60).
  • DOTMCP_DEPLOY_SKILL=true — opt-in: deploy the bundled Claude Code skill doc on startup.
  • DOTMCP_SKILLS_DIR — overrides the skills directory for that deployment.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.7.2 40 7/18/2026
0.7.1 43 7/18/2026
0.7.0 46 7/18/2026
0.6.1 46 7/17/2026
0.6.0 54 7/16/2026
0.5.0 45 7/16/2026
0.4.0 41 7/16/2026
0.3.0 45 7/16/2026
0.2.0 84 7/14/2026
0.1.2 86 7/13/2026
0.1.1 87 7/13/2026
0.1.0 88 7/13/2026