.NET MCP Server
NUGET · COMMUNITY.MCP.DOTNET · SCANNED SEP 20
AI assistant access to .NET SDK for projects, packages, building, testing, and development tools.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 185 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability53
- 38% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3514 tokens (~206/item across 17 items; 12 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the .NET MCP Server server?
.NET MCP Server runs locally as a NuGet package, launched with dnx Community.Mcp.DotNet@1.1.2 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · Community.Mcp.DotNet
claude mcp add jongalloway-dotnet-mcp -- dnx Community.Mcp.DotNet@1.1.2 --yes
{
"mcpServers": {
"jongalloway-dotnet-mcp": {
"command": "dnx",
"args": [
"Community.Mcp.DotNet@1.1.2",
"--yes"
]
}
}
} {
"servers": {
"jongalloway-dotnet-mcp": {
"command": "dnx",
"args": [
"Community.Mcp.DotNet@1.1.2",
"--yes"
]
}
}
} codex mcp add jongalloway-dotnet-mcp -- dnx Community.Mcp.DotNet@1.1.2 --yes
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jongalloway-dotnet-mcp": {
"type": "local",
"command": [
"dnx",
"Community.Mcp.DotNet@1.1.2",
"--yes"
],
"enabled": true
}
}
} mcp_servers:
jongalloway-dotnet-mcp:
command: "dnx"
args: ["Community.Mcp.DotNet@1.1.2", "--yes"] {
"McpServers": {
"jongalloway-dotnet-mcp": {
"Transport": "stdio",
"Command": "dnx",
"Arguments": [
"Community.Mcp.DotNet@1.1.2",
"--yes"
]
}
}
} {
"mcpServers": {
"jongalloway-dotnet-mcp": {
"command": "dnx",
"args": [
"Community.Mcp.DotNet@1.1.2",
"--yes"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- Stability: pass → 0.80 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 −3
- Stability: pass → 0.83 functional
- 11 Sept 26 +1
- Stability: 0.97 → pass security
- 9 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed nuget/Community.Mcp.DotNet@1.1.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | nuget |
| Reason | Signature present, unreadable |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
dotnet_dev_certs Dev Certs & User Secrets ~185
Manage developer certificates and user secrets for secure local development. Provides a consolidated interface for certificate trust/management and user secrets storage.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The operation to perform |
| format | string|null | – | Export format: Pfx or Pem (for cert_export action) |
| key | string|null | – | Secret key for set/remove operations (supports hierarchical keys like 'ConnectionStrings:Default') |
| password | string|null | – | Certificate password for protection (for cert_export action) |
| path | string|null | – | Export file path (for cert_export action) |
| project | string|null | – | Path to project file (for secrets operations) |
| trust | boolean | – | Also check if certificate is trusted (for cert_check action) |
| value | string|null | – | Secret value for set operation |
| workingDirectory | string|null | – | Working directory for command execution |
No output schema declared.
No examples provided.
dotnet_ef Entity Framework Core ~518
Manage Entity Framework Core operations including migrations, database updates, and DbContext scaffolding. Provides a unified interface for all EF Core CLI operations. Note: Requires dotnet-ef tool to be installed (dotnet tool install dotnet-ef --global or locally).
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The EF Core operation to perform |
| connection | string|null | – | Database connection string (DatabaseUpdate, DbContextScaffold) |
| connectionDisplay | boolean | – | Show connection string used (MigrationsList) |
| context | string|null | – | The DbContext class to use (if multiple contexts exist) |
| contextDir | string|null | – | Directory for the generated DbContext class (DbContextScaffold) |
| dryRun | boolean | – | Perform a dry run without actually executing (DatabaseDrop) |
| force | boolean | – | Force operation: for MigrationsRemove reverts if already applied; for DatabaseDrop confirms deletion; for DbContextScaffold overwrites existing files |
| framework | string|null | – | Target framework for the project |
| from | string|null | – | Starting migration for script generation (MigrationsScript) |
| idempotent | boolean | – | Generate idempotent script that can be run multiple times (MigrationsScript) |
| migration | string|null | – | Target migration name for database update (DatabaseUpdate). Use '0' to rollback all migrations. |
| name | string|null | – | Migration name (required for MigrationsAdd) |
| noBuild | boolean | – | Do not build the project before executing the command |
| output | string|null | – | Output file path for SQL script (MigrationsScript) |
| outputDir | string|null | – | Output directory for migration files (MigrationsAdd) or entity classes (DbContextScaffold) |
| project | string|null | – | Project file containing the DbContext |
| provider | string|null | – | Database provider package name (required for DbContextScaffold, e.g., 'Microsoft.EntityFrameworkCore.SqlServer') |
| schemas | string|null | – | Specific schemas to scaffold, comma-separated (DbContextScaffold) |
| startupProject | string|null | – | Startup project file (if different from DbContext project) |
| tables | string|null | – | Specific tables to scaffold, comma-separated (DbContextScaffold) |
| to | string|null | – | Ending migration for script generation (MigrationsScript) |
| useDatabaseNames | boolean | – | Use database names directly instead of pluralization (DbContextScaffold) |
| workingDirectory | string|null | – | Working directory for command execution |
No output schema declared.
No examples provided.
dotnet_help .NET CLI Help ~68
Get help for a specific dotnet command. Use this to discover available options for any dotnet command.
| Name | Type | Req | Description |
|---|---|---|---|
| command | string|null | – | The dotnet command to get help for (e.g., 'build', 'new', 'run'). If not specified, shows general dotnet help. |
No output schema declared.
No examples provided.
dotnet_package NuGet Package Manager ~324
Manage NuGet packages and project references. Provides a unified interface for all package and reference operations including adding/removing packages, searching NuGet.org, updating packages, managing project-to-project references, and clearing local caches.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The package operation to perform |
| cacheType | string|null | – | Cache location to clear: all, http-cache, global-packages, temp, plugins-cache |
| deprecated | boolean|null | – | Show only deprecated packages in list |
| exactMatch | boolean|null | – | Show exact matches only in search results |
| framework | string|null | – | Target framework for package operations |
| outdated | boolean|null | – | Show only outdated packages in list |
| packageId | string|null | – | NuGet package ID for add/remove/update operations (e.g., 'Newtonsoft.Json', 'Serilog') |
| prerelease | boolean|null | – | Include prerelease package versions |
| project | string|null | – | Path to project file for package/reference operations |
| referencePath | string|null | – | Path to referenced project for add/remove reference operations |
| searchTerm | string|null | – | Search query for finding packages on NuGet.org |
| skip | integer|null | – | Skip the first N search results for pagination |
| source | string|null | – | NuGet source URL for package operations |
| take | integer|null | – | Maximum number of search results to return (1-100) |
| version | string|null | – | Specific package version to install or update to |
| workingDirectory | string|null | – | Working directory for command execution |
No output schema declared.
No examples provided.
dotnet_project .NET Project ~1,021
Manage .NET project lifecycle including creation, building, testing, running, and publishing. Provides a unified interface for all project operations including new project creation, building, running, testing, publishing, cleaning, code formatting, packaging, and project analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The project operation to perform |
| additionalOptions | string|null | – | Template-specific options for new action (e.g., '--use-program-main', '--aot') |
| appArgs | string|null | – | Arguments to pass to the application for run action |
| arch | string|null | – | Target architecture for publish action (e.g., 'x64', 'arm64') |
| blame | boolean|null | – | Run tests in blame mode for test action |
| collect | string|null | – | Data collector friendly name for test action (e.g., 'XPlat Code Coverage') |
| configFile | string|null | – | NuGet.config file to use for restore action |
| configuration | string|null | – | Build configuration (Debug or Release) |
| diagnostics | string|null | – | Comma-separated list of diagnostic IDs to fix for format action |
| filter | string|null | – | Test filter expression for test action |
| framework | string|null | – | Target framework (e.g., 'net10.0', 'net8.0') |
| include | string|null | – | The Include attribute value for AddItem/RemoveItem actions |
| includeGenerated | boolean|null | – | Include generated code files for format action |
| includeSource | boolean|null | – | Include source files in the package for pack action |
| includeSymbols | boolean|null | – | Include symbols package for pack action |
| itemType | string|null | – | Item type for AddItem/RemoveItem/ListItems actions (e.g., 'Using', 'Content', 'None') |
| listTests | boolean|null | – | List discovered tests without running them for test action |
| lockedMode | boolean|null | – | Run restore in locked mode (fail if lock file is out of date) for restore action |
| logger | string|null | – | Logger for test results (e.g., 'trx', 'console;verbosity=detailed') |
| name | string|null | – | Project name for new action |
| noBuild | boolean|null | – | Skip building before test/run actions |
| noHotReload | boolean|null | – | Disable hot reload for watch action |
| noRestore | boolean|null | – | Skip restore before build/test actions |
| os | string|null | – | Target operating system for publish action (e.g., 'win', 'linux', 'osx') |
| output | string|null | – | Output directory for new/publish/pack actions |
| project | string|null | – | Path to project file for most operations |
| projectPath | string|null | – | Project path for analyze/dependencies/validate actions (required for these actions) |
| propertyName | string|null | – | MSBuild property name for SetProperty/GetProperty/RemoveProperty actions (e.g., 'OutputType') |
| propertyValue | string|null | – | Value to set for SetProperty action (e.g., 'Exe') |
| resultsDirectory | string|null | – | Directory for test results |
| runtime | string|null | – | Target runtime identifier for publish action (e.g., 'linux-x64', 'win-x64') |
| selfContained | boolean|null | – | Publish as self-contained deployment (true) or framework-dependent (false) for publish action |
| sessionId | string|null | – | Session ID for stop/logs actions (required when action is Stop or Logs) |
| severity | string|null | – | Severity level to fix for format action (info, warn, error) |
| since | string|null | – | Return logs only after this timestamp (ISO 8601 format) for logs action (optional) |
| source | string|null | – | NuGet package source URL or local path for restore action |
| startMode | string|null | – | Start mode for run/watch actions (Foreground or Background). Foreground blocks until exit, Background returns immediately with sessionId. Default: Foreground |
| tailLines | integer|null | – | Number of most recent log lines to return for logs action (optional, returns all if not specified) |
| template | string|null | – | Template short name for new action (e.g., 'console', 'webapi', 'classlib') |
| testRunner | string|null | – | Test runner selection for test action (Auto, MicrosoftTestingPlatform, or VSTest). Auto detects from global.json. Default: Auto |
| useLegacyProjectArgument | boolean|null | – | DEPRECATED: Use testRunner parameter instead. When true, uses positional project argument (VSTest mode) |
| verbosity | string|null | – | MSBuild verbosity level (quiet, minimal, normal, detailed, diagnostic) |
| verify | boolean|null | – | Verify formatting without making changes for format action |
| watchAction | string|null | – | Sub-action for watch (run, test, or build) |
| workingDirectory | string|null | – | Working directory for command execution |
No output schema declared.
No examples provided.
dotnet_sdk .NET SDK & Templates ~452
Query .NET SDK, runtime, template, and framework information. Provides a unified interface for all SDK-related queries including version info, installed SDKs and runtimes, template discovery, framework metadata, and cache metrics. Also supports creating or updating global.json to configure the SDK version, roll-forward policy, and test runner.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The SDK information operation to perform |
| force | boolean | – | Allows installing template packages from specified sources even if they override an existing template package |
| forceReload | boolean | – | If true, bypasses cache and reloads from disk (applies to template operations) |
| framework | string|null | – | Specific framework to query for framework info (e.g., 'net10.0', 'net8.0') |
| globalJsonPath | string|null | – | Path to global.json file; defaults to 'global.json' in the working directory for ConfigureGlobalJson action |
| interactive | boolean | – | Allows install to prompt for authentication/interaction if required |
| nugetSource | string|null | – | Optional NuGet source to use for template install (e.g., a feed URL) |
| rollForward | string|null | – | SDK roll-forward policy for global.json (e.g., 'latestMinor', 'latestMajor', 'disable') for ConfigureGlobalJson action |
| sdkVersion | string|null | – | SDK version to pin in global.json (e.g., '10.0.100') for ConfigureGlobalJson action |
| searchTerm | string|null | – | Search query for template search operations |
| templatePackage | string|null | – | Template package ID (NuGet) or path (folder or .nupkg) for template install/uninstall operations |
| templateShortName | string|null | – | Template short name for template info operations (e.g., 'console', 'webapi') |
| templateVersion | string|null | – | Optional version for template package install (used as <package>@<version>) |
| testRunner | string|null | – | Test runner to configure in global.json (e.g., 'Microsoft.Testing.Platform', 'VSTest') for ConfigureGlobalJson action |
| workingDirectory | string|null | – | Working directory for command execution |
No output schema declared.
No examples provided.
dotnet_server_capabilities Server Capabilities ~33
Get a machine-readable JSON snapshot of server capabilities, versions, and supported features for agent orchestration and discovery.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
dotnet_server_info Server Information ~43
Get detailed human-readable information about .NET MCP Server capabilities, including supported features, concurrency safety, and available resources. Provides guidance for AI orchestrators on parallel execution.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
dotnet_server_metrics Server Metrics ~94
Get or reset in-memory telemetry metrics for MCP tool invocations. Returns per-tool counts, average durations, and success/failure rates. Metrics are collected automatically via a message filter — no code changes needed in individual tools. No PII is stored; only tool names and timing data are tracked.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The metrics operation to perform: Get (return current snapshot) or Reset (clear all counters) |
No output schema declared.
No examples provided.
dotnet_solution .NET Solution Manager ~209
Manage solution files and project membership. A solution file organizes multiple related projects. This is a consolidated tool that routes to specific solution operations based on the action parameter.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The solution operation to perform: Create, Add, List, or Remove |
| format | string|null | – | Solution file format: 'sln' (classic) or 'slnx' (XML-based). Default is 'sln'. (optional, used with 'create' action) |
| name | string|null | – | Solution name (required for 'create' action) |
| output | string|null | – | Output directory for solution file (optional, used with 'create' action) |
| projects | array|null | – | Array of project file paths (required for 'add' and 'remove' actions) |
| solution | string|null | – | Path to solution file. Required for 'add', 'list', and 'remove' actions. Not used for 'create' action (which uses the name parameter). |
No output schema declared.
No examples provided.
dotnet_tool .NET Tool Manager ~332
Manage .NET tools (global, local, and tool manifests). Provides a unified interface for all .NET tool operations including installation, updates, searching, running, and manifest management.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The tool operation to perform |
| args | string|null | – | Arguments to pass to the tool when running |
| detail | boolean|null | – | Show detailed information in search results |
| force | boolean|null | – | Force manifest creation even if one already exists |
| framework | string|null | – | Target framework for installation |
| global | boolean|null | – | Install/update/uninstall as global tool (system-wide); otherwise operates on local tools |
| output | string|null | – | Output directory for manifest creation (defaults to current directory) |
| packageId | string|null | – | NuGet package ID of the tool for install/update/uninstall operations (e.g., 'dotnet-ef', 'dotnet-format') |
| prerelease | boolean|null | – | Include prerelease tool versions in search |
| searchTerm | string|null | – | Search query for finding tools on NuGet.org |
| skip | integer|null | – | Skip the first N search results for pagination |
| take | integer|null | – | Maximum number of search results to return (1-100) |
| toolName | string|null | – | Tool command name to run (e.g., 'dotnet-ef', 'dotnet-format') |
| toolPath | string|null | – | Custom tool installation path |
| version | string|null | – | Specific version to install or update to |
| workingDirectory | string|null | – | Working directory for command execution |
No output schema declared.
No examples provided.
dotnet_workload .NET Workload Manager ~205
Manage .NET workloads for specialized development scenarios (MAUI, WASM, etc.). Provides a consolidated interface for installing, updating, listing, searching, and uninstalling workloads.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The workload operation to perform |
| configFile | string|null | – | Path to NuGet configuration file to use (used with Install and Update actions) |
| includePreviews | boolean | – | Allow prerelease workload manifests (used with Install and Update actions) |
| searchTerm | string|null | – | Optional search term to filter workloads (used with Search action) |
| skipManifestUpdate | boolean | – | Skip updating the workload manifests during installation (used with Install action) |
| source | string|null | – | NuGet package source to use during restore (used with Install and Update actions) |
| workingDirectory | string|null | – | Working directory for command execution |
| workloadIds | array|null | – | Array of workload IDs to install or uninstall (required for Install and Uninstall actions) |
No output schema declared.
No examples provided.
What is the .NET MCP Server server?
.NET MCP Server is listed in the public MCP registry as io.github.jongalloway/dotnet-mcp. AI assistant access to .NET SDK for projects, packages, building, testing, and development tools. This page covers its NuGet package (Community.Mcp.DotNet).
Is the .NET MCP Server server safe to use?
.NET MCP Server scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the .NET MCP Server server expose?
.NET MCP Server exposes 12 tools: dotnet_solution, dotnet_help, dotnet_server_metrics, dotnet_dev_certs, dotnet_server_info, and 7 more. Their descriptions and schemas cost roughly 3,484 tokens of context every time the server is loaded.
Is the .NET MCP Server server still maintained?
.NET MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the .NET MCP Server server under?
.NET MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.