MCP Csharp
atherio-danp/cde-dotnetcc
Create, debug, test, and publish MCP (Model Context Protocol) servers in C using the official ModelContextProtocol SDK — tools/prompts/resources, stdio vs HTTP transport, MapMcp hosting.
Build or consume Model Context Protocol (MCP) servers and clients in .NET using the official MCP C SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation.
$ npx skills add managedcode/dotnet-skills --skill mcp -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install managedcode/dotnet-skills mcp --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/catalog/Libraries/MCP/skills/mcp .claude/skills/mcp && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mcp" agent skill from https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcp into .claude/skills/mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcpType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add managedcode/dotnet-skills --skill mcp -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install managedcode/dotnet-skills mcp --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/catalog/Libraries/MCP/skills/mcp .agents/skills/mcp && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mcp" agent skill from https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcp into .agents/skills/mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add managedcode/dotnet-skills --skill mcp -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install managedcode/dotnet-skills mcp --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/catalog/Libraries/MCP/skills/mcp .cursor/skills/mcp && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mcp" agent skill from https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcp into .cursor/skills/mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/managedcode/dotnet-skills.git --path catalog/Libraries/MCP/skills/mcp--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add managedcode/dotnet-skills --skill mcp -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install managedcode/dotnet-skills mcp --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/catalog/Libraries/MCP/skills/mcp .gemini/skills/mcp && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mcp" agent skill from https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcp into .gemini/skills/mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install managedcode/dotnet-skills mcpInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add managedcode/dotnet-skills --skill mcp -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/catalog/Libraries/MCP/skills/mcp .github/skills/mcp && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mcp" agent skill from https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcp into .github/skills/mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add managedcode/dotnet-skills --skill mcp -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install managedcode/dotnet-skills mcp --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/catalog/Libraries/MCP/skills/mcp .opencode/skills/mcp && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mcp" agent skill from https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/MCP/skills/mcp into .opencode/skills/mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mcpBuild or consume Model Context Protocol (MCP) servers and clients in .NET using the official MCP C SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation.
MCP is an agent skill from managedcode/dotnet-skills. Build or consume Model Context Protocol (MCP) servers and clients in .NET using the official MCP C SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation. USE FOR: .NET MCP servers or clients; stdio versus HTTP transport choices; tools, resources, prompts, completions, and capability negotiation. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test…
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `manifest.json`, `references/patterns.md` and `references/security.md`). Compatibility notes: Requires the official MCP C SDK packages (ModelContextProtocol.Core, ModelContextProtocol, or ModelContextProtocol.AspNetCore) on .NET 8+; current guidance…
It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol, .NET and C#. The repository describes itself as: Installable .NET skill catalog and CLI for Codex, Claude Code, GitHub Copilot, and Gemini. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 535dd55. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are csharp and mermaid).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
csharp.sdk.modelcontextprotocol.iogithub.commodelcontextprotocol.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires the official MCP C# SDK packages (`ModelContextProtocol.Core`, `ModelContextProtocol`, or `ModelContextProtocol.AspNetCore`) on .NET 8+; current guidance targets the v2.2 SDK and MCP 2026-07-28.
From compatibility in the SKILL.md frontmatter.
MCP loads about 3.5k tokens when it runs, and up to ~8.3k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 1,240 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from managedcode/dotnet-skills at commit 535dd55, republished under its MIT licence (© managedcode). 1,240 words, ~3,516 tokens.
.claude/skills/mcp/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.IChatClient.NET AI quickstarts or publishing a server to the MCP Registrymcp when protocol interoperability is the requirement.microsoft-extensions-ai when you only need model/provider abstraction or local tool orchestration without the MCP wire protocol.microsoft-agent-framework when the main problem is agent orchestration; combine it with mcp only when those agents must consume or expose MCP endpoints..NET AI quickstarts for the very first vertical slice, then come back here to harden transport, capability negotiation, publishing, and host interoperability.Load only what the task needs:
| Package | Choose when |
|---|---|
ModelContextProtocol.Core | You only need a client or low-level server APIs and want the smallest dependency set. |
ModelContextProtocol | You want the main SDK package with hosting, DI, attribute discovery, and stdio server support. Start here for most projects. |
ModelContextProtocol.AspNetCore | You are hosting a remote MCP server in ASP.NET Core over HTTP. This includes the main package. |
| Transport | Use when | Notes |
|---|---|---|
StdioClientTransport / WithStdioServerTransport() | The MCP server should run as a local child process. | Best for local tooling and editor/agent integrations. |
HttpClientTransport + HttpTransportMode.StreamableHttp | The server is remote or should be reachable over HTTP. | Recommended HTTP transport; supports streaming and session resumption. |
HttpTransportMode.Sse | You must connect to an older SSE-only server. | Legacy compatibility only; do not choose this for new servers. |
.NET AI MCP documentation separates a getting-started hub, client and server quickstarts, MCP Registry publishing, and a server-resource index. Use those pages to bootstrap a vertical slice, then return to the C# SDK docs here for exact transport, capability, authorization, and lifecycle behavior.v2.0.0 aligns with MCP 2026-07-28: HTTP is stateless by default, clients negotiate with server/discover before falling back to legacy initialize, Tasks move to ModelContextProtocol.Extensions.Tasks, and Roots, Sampling, and Logging are deprecated for the new protocol. Set HttpServerTransportOptions.Stateless = false only for an intentional stateful compatibility requirement.v2.1.0 adds an opt-in subscriptions/listen server handler, keeps AutoDetect usable after a provisional SSE failure, preserves HTTP status codes across target frameworks, and falls back to initialize when server/discover fails at the HTTP layer. Add custom notification streams only when both peers negotiate the extension.v2.2.0 adds HttpServerSessionMode so one ASP.NET Core endpoint can serve stateful and stateless clients across the MCP 2025-11-25 and 2026-07-28 protocol versions. Choose the mode explicitly, test both negotiated paths when compatibility matters, and upgrade before working around malformed percent-encoded request headers because the release fixes that decoding failure.v1.4.x, update structured-result consumers to accept non-object values directly, require Tool.inputSchema in custom payloads, move Tasks to the extension package, and test PKCE S256 plus issuer validation in OAuth metadata.IdentityAssertionGrantProvider for the Identity Assertion Authorization Grant flow. Use it only when the enterprise SSO and MCP authorization-server contract is part of the actual scenario.StdioClientTransportOptions.InheritEnvironmentVariables controls whether child-process MCP servers inherit the parent environment. Set it intentionally when launching untrusted or third-party servers.DELETE is hardened to require the same authenticated user that opened the session. Do not build custom session cleanup paths that bypass that authorization check.flowchart LR
A["Need MCP interoperability in .NET"] --> B{"Role?"}
B -->|"Expose MCP surface"| C{"Where will it run?"}
B -->|"Consume an MCP server"| D{"Transport?"}
C -->|"Local child process"| E["ModelContextProtocol\nAddMcpServer()\nWithStdioServerTransport()"]
C -->|"Remote HTTP endpoint"| F["ModelContextProtocol.AspNetCore\nAddMcpServer()\nWithHttpTransport()\nMapMcp()"]
D -->|"stdio"| G["StdioClientTransport\nMcpClient.CreateAsync()"]
D -->|"HTTP"| H["HttpClientTransport\nAutoDetect or StreamableHttp"]
E --> I["Register tools/resources/prompts"]
F --> I
G --> J["Check ServerCapabilities\nbefore optional features"]
H --> JPick the package and transport first.
ModelContextProtocol + WithStdioServerTransport().ModelContextProtocol.AspNetCore + WithHttpTransport() + MapMcp().ModelContextProtocol or ModelContextProtocol.Core.Model the MCP surface explicitly.
[McpServerToolType] + [McpServerTool][McpServerResourceType] + [McpServerResource][McpServerPromptType] + [McpServerPrompt]Prefer attribute discovery for straightforward servers.
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using ModelContextProtocol.Server;
using System.ComponentModel;
var builder = Host.CreateApplicationBuilder(args);
builder.Logging.AddConsole(options =>
{
options.LogToStandardErrorThreshold = LogLevel.Trace;
});
builder.Services
.AddMcpServer()
.WithStdioServerTransport()
.WithToolsFromAssembly();
await builder.Build().RunAsync();
[McpServerToolType]
public static class EchoTool
{
[McpServerTool, Description("Echoes the message back to the client.")]
public static string Echo(string message) => $"hello {message}";
}using ModelContextProtocol.Server;
using System.ComponentModel;
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddMcpServer()
.WithHttpTransport()
.WithToolsFromAssembly();
var app = builder.Build();
app.MapMcp("/mcp");
app.Run();
[McpServerToolType]
public static class EchoTool
{
[McpServerTool, Description("Echoes the message back to the client.")]
public static string Echo(string message) => $"hello {message}";
}McpClient.CreateAsync(...) and stay capability-aware.using ModelContextProtocol.Client;
using ModelContextProtocol.Protocol;
var transport = new StdioClientTransport(new StdioClientTransportOptions
{
Name = "Everything",
Command = "npx",
Arguments = ["-y", "@modelcontextprotocol/server-everything"],
});
await using var client = await McpClient.CreateAsync(transport);
IList<McpClientTool> tools = await client.ListToolsAsync();
if (client.ServerCapabilities.Prompts is not null)
{
var prompts = await client.ListPromptsAsync();
}Treat optional features as negotiated capabilities, not assumptions.
McpClientOptions.Capabilities for roots, sampling, and elicitation.client.ServerCapabilities before using completions, logging, prompt list-change notifications, or resource subscriptions.client.NegotiatedProtocolVersion or server.NegotiatedProtocolVersion only when version-specific behavior matters.Keep HTTP guidance current.
MapMcp() also serves SSE compatibility endpoints for older clients.AutoDetect by default, or force StreamableHttp / Sse.McpClient.ResumeSessionAsync(...).Treat the .NET AI MCP quickstarts as bootstrap examples.
build-mcp-client and build-mcp-server are good starting points when the surrounding app is still MEAI-centric.publish-mcp-registry is the distribution step, not the design step. Stabilize the protocol surface before publishing.Respect current error and serialization rules.
CallToolResult.IsError == true.McpProtocolException only for protocol-level JSON-RPC failures.McpClientTool inherits from AIFunction, so discovered tools can be passed directly into IChatClient.MCPEXP... diagnostics; suppress them intentionally, not globally by accident.JsonSerializerContext, prepend McpJsonUtilities.DefaultOptions.TypeInfoResolver so MCP protocol types keep the SDK's contract.| Anti-pattern | Why it causes trouble | Better approach |
|---|---|---|
| Picking HTTP transport for a purely local child-process scenario | Adds unnecessary hosting, auth, and deployment surface | Use stdio for local/editor-hosted integrations |
| Treating SSE as the default remote transport | Locks new work to legacy behavior | Prefer Streamable HTTP and keep SSE only for backward compatibility |
Writing tools without [Description] metadata | Hosts and models lose schema clarity | Describe tool purpose and parameters explicitly |
| Returning huge binary/text payloads from every tool call | Bloats context and slows hosts | Return focused content and move large data to resources |
| Logging to stdout on stdio servers | Corrupts the protocol stream | Send logs to stderr |
| Assuming prompts/resources/logging/completions exist | Breaks against partial implementations | Check negotiated capabilities first |
| Using filters for normal business logic | Makes handlers opaque and hard to reason about | Keep filters for cross-cutting policy, audit, or protocol plumbing |
Core, ModelContextProtocol, or AspNetCoreMapMcp() and are tested at the final route, for example /mcp[McpServer*] attributes or documented handler/filter alternativesServerCapabilities before using subscriptions, completions, logging, or prompt/resource list-change flows© managedcode, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in catalog/Libraries/MCP/skills/mcp of managedcode/dotnet-skills.
Open the folder on GitHubat commit 535dd55
MCP next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| MCP this skillmanagedcode/dotnet-skills | 486 | — | ~3.5k | Automated safety check: Pass | MIT | |
| MCP Csharpatherio-danp/cde-dotnetcc | 109 | — | ~1.2k | Automated safety check: Notes | None | |
| Csharp MCP Server GeneratorILoveDotNet/ilovedotnet | 155 | — | ~560 | Automated safety check: Pass | CC0-1.0 | |
| Dotnet MCP Builderboshi-xixixi/TraeSkill | 274 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Dotnet MCP Buildergithub/awesome-copilot | 40k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Agent Frameworkjihadkhawaja/Egroo | 178 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 |
atherio-danp/cde-dotnetcc
Create, debug, test, and publish MCP (Model Context Protocol) servers in C using the official ModelContextProtocol SDK — tools/prompts/resources, stdio vs HTTP transport, MapMcp hosting.
ILoveDotNet/ilovedotnet
Generate a complete MCP server project in C with tools, prompts, and proper configuration
boshi-xixixi/TraeSkill
Build Model Context Protocol (MCP) servers in C/.NET against the current ModelContextProtocol 1.x NuGet packages.
github/awesome-copilot
Build Model Context Protocol (MCP) servers in C/.NET against the current ModelContextProtocol 2.x NuGet packages.
jihadkhawaja/Egroo
Build, extend, and debug AI agents in Egroo using the Microsoft Agent Framework (C .NET).
wshobson/agents
Master C/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications.
managedcode/dotnet-skills
Use a repo-root .editorconfig to configure free .NET analyzer and style rules.
managedcode/dotnet-skills
Use the open-source free ArchUnitNET library for architecture rules in .NET tests.
managedcode/dotnet-skills
Build, upgrade, and operate Aspire 13.5.x C or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for…
managedcode/dotnet-skills
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET.
managedcode/dotnet-skills
Use the open-source free Asynkron.Profiler dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts.
managedcode/dotnet-skills
Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns.
Works with
Categories
Build or consume Model Context Protocol (MCP) servers and clients in .NET using the official MCP C SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation. MCP is an agent skill from managedcode/dotnet-skills.NET using the official MCP C SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation.
MCP fits situations like: : .NET MCP servers; stdio versus HTTP transport choices; capability negotiation; : unrelated stacks.
Run `npx skills add managedcode/dotnet-skills --skill mcp -a claude-code`. Or copy the skill folder (catalog/Libraries/MCP/skills/mcp in managedcode/dotnet-skills) into .claude/skills/mcp in your project. Claude Code loads it when a task matches its description.
Run `npx skills add managedcode/dotnet-skills --skill mcp -a codex`. Or copy the skill folder (catalog/Libraries/MCP/skills/mcp in managedcode/dotnet-skills) into .agents/skills/mcp in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add managedcode/dotnet-skills --skill mcp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mcp, .gemini/skills/mcp, .github/skills/mcp and .opencode/skills/mcp in your project.
SKILL.md names no scripts, command-line tools or credentials: MCP is instructions for the agent only. Compatibility (from SKILL.md): Requires the official MCP C# SDK packages (`ModelContextProtocol.Core`, `ModelContextProtocol`, or `ModelContextProtocol.AspNetCore`) on .NET 8+; current guidance targets the v2.2 SDK and MCP 2026-07-28..
SKILL.md names 3 domains. As links in the text: csharp.sdk.modelcontextprotocol.io, github.com and modelcontextprotocol.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
MCP is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with MCP: MCP Csharp (atherio-danp/cde-dotnetcc, 109 stars), Csharp MCP Server Generator (ILoveDotNet/ilovedotnet, 155 stars), Dotnet MCP Builder (boshi-xixixi/TraeSkill, 274 stars) and Dotnet MCP Builder (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
managedcode (a GitHub organization) maintains it in managedcode/dotnet-skills, which has 486 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 7, 2026.
Source: managedcode/dotnet-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.