Slnmap 0.11.0
See the version list below for details.
dotnet tool install --global Slnmap --version 0.11.0
dotnet new tool-manifest
dotnet tool install --local Slnmap --version 0.11.0
#tool dotnet:?package=Slnmap&version=0.11.0
nuke :add-package Slnmap --version 0.11.0
Slnmap
Slnmap (sln-map) — a semantic map of your .sln for AI coding agents.
Open source under the MIT license. Source, issues, and full docs: github.com/EMahmoudNabil/slnmap
Your AI agent can't refactor .NET code it can't see. Ask an agent "what breaks if I change this interface?" and it guesses from the files in its context — missing callers in other projects and files it never opened. Slnmap gives the agent a precise, compiler-accurate map of your whole solution, so it answers correctly: every caller, every implementation, across every project. It runs locally and serves the map to your agent or editor over MCP.
Quickstart
1. Install (requires the .NET SDK 9.0+):
dotnet tool install --global Slnmap
2. Analyze your solution (builds slnmap.db in the current folder):
slnmap analyze path/to/YourSolution.sln
3. Connect your MCP client. For Claude Code, add this to .mcp.json, using an absolute path to
the slnmap.db you just built:
{
"mcpServers": {
"slnmap": {
"command": "slnmap",
"args": ["serve", "--db", "C:/path/to/your/project/slnmap.db"]
}
}
}
The tools
The server exposes thirteen read-only tools — find_symbol, get_dependencies, impact_analysis,
get_architecture_overview, find_usages, find_implementations, get_type_hierarchy,
find_tests_for_symbol, get_project_dependencies, find_circular_dependencies,
get_symbol_source, list_endpoints, and find_endpoint (full descriptions in the
README).
For an interface, impact_analysis follows both the interface's callers and its concrete
implementations/overrides — across projects, in files nobody has open. HTTP endpoints are
first-class graph nodes — from ASP.NET Core Minimal APIs (v0.7.0) and attribute-routed controllers
(v0.8.0): ask "which endpoint serves /api/vendors/42?" or "what breaks if I change this handler?"
and get the actual route back.
There's also slnmap viz: exports the graph as a single self-contained, interactive HTML file —
no server, no CDN, works offline. And slnmap watch (v0.10.0): analyze once, keep the workspace
warm, and re-analyze on every file save — a one-file change lands in the database in about a
second on a 10-project solution, and a slnmap serve running beside it keeps answering from the
same file, so your agent's answers stay fresh while you type.
And slnmap analyze-ts (v0.11.0): adds TypeScript/React frontend HTTP call sites to the same
graph — resolved route templates and an honestly-labeled unresolved bucket, six named reasons,
never a guess. Requires Node 18+; the extractor itself is fetched via npx automatically.
Privacy
100% local — and now you can verify it. No telemetry, no cloud service; analyze/watch/
serve/viz/status/doctor make no network calls at all. One documented exception:
analyze-ts fetches its extractor from the public npm registry via npx (skip it to stay fully
offline). Now that the CLI and MCP server are open source, the claim is auditable.
License & support
Slnmap is open source under the MIT license. The CLI and MCP server are MIT-licensed and will stay that way. Future hosted or team-oriented features may be commercial.
For questions or to report an issue, open a GitHub issue or contact hello@slnmap.dev.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.12.0 | 0 | 8/22/2026 |
| 0.11.0 | 0 | 8/22/2026 |
| 0.10.0 | 44 | 8/21/2026 |
| 0.9.0 | 46 | 8/21/2026 |
| 0.8.2 | 103 | 8/14/2026 |
| 0.8.1 | 85 | 8/14/2026 |
| 0.8.0 | 91 | 8/12/2026 |
| 0.7.0 | 93 | 8/12/2026 |
| 0.6.1 | 89 | 8/8/2026 |
| 0.6.0 | 92 | 8/8/2026 |
| 0.5.0 | 103 | 8/7/2026 |
| 0.4.0 | 120 | 7/23/2026 |
| 0.3.0 | 107 | 7/22/2026 |
| 0.2.1 | 113 | 7/19/2026 |
| 0.2.0 | 104 | 7/18/2026 |
| 0.1.9 | 98 | 7/18/2026 |
| 0.1.8 | 104 | 7/18/2026 |
| 0.1.7 | 99 | 7/18/2026 |
| 0.1.6 | 107 | 7/17/2026 |
| 0.1.5 | 102 | 7/17/2026 |
New: `slnmap analyze-ts` -- frontend HTTP call sites join the same
graph as your C# code. Point it at a TypeScript/React project root and it walks the program
with the TS Compiler API (via the companion `slnmap-ts` npm package, pulled automatically
through `npx` -- Node 18+ required, nothing to install by hand), resolving axios/fetch call
sites -- including through barrel re-exports and constant folding -- to route templates, and
disclosing exactly what it can't resolve across six named categories rather than guessing.
Field-trial verified across 4 codebases (two real production snapshots of the same app, a
frontend-only static site, and a public sample using a third HTTP client library): zero false
positives anywhere; one real gap found and fixed (superagent's `.del()` method name for DELETE).
Honest limits: no cross-stack linking yet (that's next); monorepo/TypeScript project-references
tsconfigs are not yet field-verified; a URL built from a helper function's own parameter is
correctly counted unresolved, not guessed from its callers. See CHANGELOG.md for details.
Source: https://github.com/EMahmoudNabil/slnmap