Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Roslyn-powered structural context and a dependency graph of C# solutions for AI coding agents.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"context-manager": {
"command": "dnx",
"args": [
"ContextManager",
"--yes"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add context-manager -- dnx ContextManager --yesIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"context-manager": {
"command": "dnx",
"args": [
"ContextManager",
"--yes"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"context-manager": {
"type": "stdio",
"command": "dnx",
"args": [
"ContextManager",
"--yes"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto nushey bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.3.5) kam vor 4 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du .NET auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Apify MCP Server
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
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.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
ContextManager
Structural C# context for AI coding agents, powered by Roslyn.
Navigate before you read.
Install • Tools • How to use it • FAQ • Full install guide
ContextManager is an MCP server that saves an agent from reading whole C# files. It does two things:
.cs file into a JSON contract with its types, public members, constructor dependencies, base types, interfaces, and events. Method bodies, private members, and XML docs are left out; each method carries its line range so the agent can read only the body it needs..sln so the agent can find which files matter, and how risky a change is, before opening any of them.You need the .NET 10 SDK or later.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/nushey/ContextManager/main/scripts/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/nushey/ContextManager/main/scripts/install.ps1 | iex
The installer installs or updates the ContextManager .NET global tool and runs context-manager setup, a wizard that adds the server to the MCP clients you pick (Claude Code, Claude Desktop, Codex, Antigravity, Kilo Code, Cursor, Devin, Opencode).
To install by hand instead:
dotnet tool install -g ContextManager
claude mcp add --scope user context-manager -- context-manager # Claude Code
For other clients, flags, config-file paths, and troubleshooting, see INSTALL.md.
project_scanon.NET Framework 4.8solutions only works on Windows and needs
Visual Studio Build Tools with the
.NET desktop build tools workload. Everything else works on any platform.
| Tool | What it returns |
|---|---|
inspect_file | The structural contract of one .cs file. |
inspect_context | A compact view of up to 15 .cs files plus the references between them; unresolved lists the user types missing from the set. |
project_scan | Builds or refreshes the solution's graph and reports its coverage. |
graph_search | Files and methods matching possible names, grouped by file with namespaces and method node IDs. |
graph_get_dependencies | The neighbors of a node, rolled up to their declaring type, with edge counts per kind. |
graph_impact_analysis | Every type that depends on a node, directly or transitively, with its file. |
graph_path_find | The shortest dependency path between two nodes. |
Graph tools take the path of the .sln and keep the graph up to date on their own: before answering, they re-extract only what changed since the last scan. The graph is saved in .context-manager/ .graph.json next to the .sln, so every session on that solution shares it.
When the user mentions a file, start there:
inspect_file(path): read the type and build its node ID as Namespace.TypeName.graph_get_dependencies(solutionPath, nodeId): find the neighbors worth reading.inspect_file on those neighbors only.graph_impact_analysis(solutionPath, nodeId): check the blast radius before changing anything.A short impact list means the change is contained. A long one means the type's public contract is load-bearing and should be preserved; it does not mean the agent has to read every file in it.
Node IDs use Roslyn's fully qualified format, for example MyApp.Orders.OrderService or MyApp.Orders.OrderService.GetOrderAsync(System.Guid). Pass the IDs that the graph tools return as they are.
// graph_impact_analysis("/abs/path/MyApp.sln", "MyApp.Orders.IOrderRepository")
{ "affectedIds": ["MyApp.Orders.OrderService", "MyApp.Api.OrdersController"], "affectedFiles": { "MyApp.Orders.OrderService": "/abs/path/Orders/OrderService.cs", "MyApp.Api.OrdersController": "/abs/path/Api/OrdersController.cs" } }
When you know roughly what something is called but not which file it is in, and you have no node ID, call graph_search with several candidate names:
{"solutionPath":"/abs/path/MyApp.sln","queries":["Login","Authentication","SignIn"]}
What it searches. A term matches when it appears anywhere in a file name (without .cs) or a method name (without its signature). Matching is ordinal and ignores case, and any one term is enough. It searches every method already in the graph, private ones included, and finds constructors under their type name. It does not search directory paths, parameter types, method bodies, or namespaces.
Valid terms. Terms are trimmed and must have at least 3 characters. An empty list, or a single term that is too short, rejects the whole query before the graph is synchronized, with code invalid_query and message Provide at least one query term; each term must be at least 3 characters long after trimming whitespace.
Order and limit. Exact matches come first, then partial ones; within each group, results keep the order in which they appear in the graph. A name that matches several terms does not rank higher. The search keeps at most 50 matches, and the limit counts matches, not files: each matching file counts once and each matching method ID counts once, even when several terms match it. There is no pagination. When truncated is true, at least one match was left out; use more specific names to narrow the search.
{"results":[{"file":"/abs/path/Auth/Session.cs","namespaces":["MyApp.Auth"],"fileMatched":false,"methods":[{"name":"Login","nodeId":"MyApp.Auth.Session.Login()"}]}],"truncated":false}
Response. The response is one line of compact JSON, grouped by file. Every file entry has file, namespaces, fileMatched, and methods, and empty arrays stay as []. namespaces lists every namespace in the file. fileMatched is true when the file's own name is one of the matches kept within the limit. A file can also appear only because one of its methods was kept, even if its name matched too but fell outside the limit. With no matches, the response is {"results":[],"truncated":false}.
From there, call inspect_file on a returned file, or pass a method's nodeId unchanged to the other graph tools. A graph saved by an older version is re-extracted once to add names and namespaces; later queries reuse the updated graph while nothing changes.
To make your agent follow these workflows, copy docs/AGENTS-template.md into the AGENTS.md of your project.
Is it a background service? No. It is an MCP stdio server: the client starts it when a session opens and stops it when the session ends.
What state does it keep? Only the graph files written next to each .sln. The inspection tools read the files you pass and keep nothing.
Does it read my whole solution? Only the graph tools do. inspect_file and inspect_context read just the files you give them.
dotnet build
dotnet test
MIT © nushey