dotMCP.win-arm64
0.4.0
See the version list below for details.
dotnet add package dotMCP.win-arm64 --version 0.4.0
NuGet\Install-Package dotMCP.win-arm64 -Version 0.4.0
<PackageReference Include="dotMCP.win-arm64" Version="0.4.0" />
<PackageVersion Include="dotMCP.win-arm64" Version="0.4.0" />
<PackageReference Include="dotMCP.win-arm64" />
paket add dotMCP.win-arm64 --version 0.4.0
#r "nuget: dotMCP.win-arm64, 0.4.0"
#:package dotMCP.win-arm64@0.4.0
#addin nuget:?package=dotMCP.win-arm64&version=0.4.0
#tool nuget:?package=dotMCP.win-arm64&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:
Set
DOTMCP_DEPLOY_SKILL=truein the server's environment, e.g.:{ "mcpServers": { "dotmcp": { "command": "dnx", "args": ["dotMCP@0.4.0", "--yes"], "env": { "DOTMCP_DEPLOY_SKILL": "true" } } } }On every server start the skill is (re)written to
~/.claude/skills/dotmcp/SKILL.md— upgrades refresh it automatically. SetDOTMCP_SKILLS_DIRto redirect the skills root (thedotmcp/SKILL.mdpart stays).Restart Claude Code (or start a new session); the
dotmcpskill is picked up automatically and teaches the agent every tool below.
Tools at a glance (63)
Workspace — workspace_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.
Navigation — get_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).
Usages — find_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 graph — get_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.
Analysis — complexity 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 ops — changes_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.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.