协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
diagnostics-mcp【开发与工程】Use dotnet-diagnostics-mcp for MCP-driven .NET CPU, allocation, GC, and test-host profiling. USE FOR: profiling unit tests or investigating runtime bottlenecks. DO NOT USE FOR: writing test assertions, coverage collection, or precise microbenchmark timing. INVOKES: connect the MCP server, select target processes, collect bounded profiles, and attribu…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
dotnet-diagnostics-mcp for .NET performance investigation.Use this skill for this MCP server's workflow. Use the test framework's guidance for assertions and test authoring, and a benchmark workflow when the question needs precise per-operation timing.
dotnet tool install -g dotnet-diagnostics-mcp
# If already installed:
dotnet tool update -g dotnet-diagnostics-mcp
dotnet tool list -g
Register dotnet-diagnostics-mcp with arguments ["--stdio"] in the client's native MCP settings, then reload its MCP connection. The client starts and owns the server subprocess; local stdio needs no HTTP daemon or bearer token. Ensure the client can resolve the global-tool command on PATH.
For example, Claude Desktop / Cursor-style configuration:
{
"mcpServers": {
"dotnet-diagnostics": {
"command": "dotnet-diagnostics-mcp",
"args": ["--stdio"]
}
}
}
Check tools/list for inspect_process, collect_batch, collect_sample, collect_events, and query_snapshot. Installing the tool alone does not connect it to the current AI session. If startup rejects symlink/reparse-point paths, set the server's MCP_ARTIFACT_ROOT environment variable to an existing writable directory whose full path has no symlinks; see tool patterns.
processId with inspect_process(view="list", commandLineContains=...). Use view="info" to verify its identity. For a long-lived app, view="triage" can choose the next collector; avoid spending a short test host's lifetime on preliminary captures.collect_batch; optionally add GC and counters, up to four entries. Use depth="compact" and read the returned digest and per-entry errors before querying handles.flowchart LR
A["Release build and unit-test inventory"] --> B["Run tests with normal parallelism"]
B --> C["inspect_process: actual test-host PIDs"]
C --> D["collect_batch: CPU + allocation"]
D --> E["query_snapshot: product hot paths"]
E --> F["Focused reproduction and equal-workload comparison"]
F --> G["Rank bottlenecks and disclose capture gaps"]
These are MCP tool arguments, not shell commands. Replace the illustrative PID and handle with values returned by the server.
Collect a bounded profile of a running test host with collect_batch:
{
"processId": 4242,
"durationSeconds": 10,
"depth": "compact",
"requests": [
{ "tool": "collect_sample", "kind": "cpu" },
{ "tool": "collect_sample", "kind": "allocation" }
]
}
Read the CPU or allocation handle's call tree with query_snapshot:
{
"handle": "<returned-handle>",
"view": "call-tree",
"topN": 10,
"maxDepth": 8,
"maxNodes": 40,
"depth": "compact"
}
Source: dotnet-diagnostics. Read test profiling for suite coverage and tool patterns for setup, drilldown, settings, and source links.