/ Diretório / Playground / MCPSharp
● Comunidade afrise ⚡ Instantâneo

MCPSharp

por afrise · afrise/MCPSharp

Envie MCP em C#/.NET - decore um método com [McpTool], inicie o servidor, pronto. Funciona com Microsoft.Extensions.AI e Kernel Semântico.

MCPSharp é um pacote .NET NuGet que transforma métodos C# em ferramentas (e recursos) MCP por meio de atributos e também fornece um cliente para chamar outros servidores MCP de C#. Ele lida com o encanamento JSON-RPC, validação automática de parâmetros e conversão de tipo, e extrai descrições de ferramentas de seus comentários de documentos XML. Integrações de primeira classe para Microsoft.Extensions.AI e Semantic Kernel significam que você pode conectar agentes com ferramentas MCP em aplicativos .NET com o mínimo de clichê.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

mcpsharp.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcpsharp",
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcpsharp": {
      "command": {
        "path": "dotnet",
        "args": [
          "add",
          "package",
          "MCPSharp"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add mcpsharp -- dotnet add package MCPSharp

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: MCPSharp

Expor serviços C# existentes como ferramentas MCP

👤 Lojas .NET com bibliotecas internas para as quais desejam que os agentes de IA liguem ⏱ ~30 min intermediate

Quando usar: Você tem uma biblioteca de negócios em funcionamento em C# e precisa torná-la acessível ao agente.

Pré-requisitos
  • SDK do .NET 8+ — https://dotnet.microsoft.com/download
  • Pacote MCPSharp — dotnet adicionar pacote MCPSharp
Fluxo
  1. Métodos de decoração
    Adicione [McpTool] aos métodos públicos que desejo expor em meu OrdersService. Guarde assinaturas; deixe o MCPSharp validar.✓ Copiado
    → Atributos aplicados, documentos XML usados ​​como descrições
  2. Inicie o servidor
    Adicione um ponto de entrada Program.cs que chama MCPServer.StartAsync("orders", "1.0.0").✓ Copiado
    → Executa via dotnet run; Os clientes MCP podem descobrir ferramentas
  3. Conecte-se ao Claude Desktop
    Emita um snippet claude_desktop_config.json que inicia meu binário dotnet.✓ Copiado
    → Bloco de configuração com command=dotnet args=[run --project, path]

Resultado: Um servidor MCP que seus serviços C# potencializam, com pouco código novo.

Armadilhas
  • Devolver objetos grandes sem modelá-los — Retorne DTOs - não serialize entidades EF com propriedades de navegação, você explodirá as respostas
Combine com: fastmcp

Use ferramentas MCP de um agente de kernel semântico

👤 Equipes construindo agentes com o Kernel Semântico da Microsoft ⏱ ~45 min intermediate

Quando usar: Você está no SK e deseja consumir as ferramentas de um servidor MCP externo.

Fluxo
  1. Adicione o cliente
    Adicione o cliente MCPSharp e registre o servidor remoto como um plugin SK.✓ Copiado
    → Ferramentas aparecem no plano SK
  2. Chamar de uma função
    Mostre uma função de chat que chama uma das ferramentas remotas quando o usuário pergunta.✓ Copiado
    → Ida e volta: prompt → SK seleciona ferramenta → chamada MCP → resultado em resposta

Resultado: Seu aplicativo SK pode consumir qualquer servidor MCP de forma limpa.

Registre ferramentas em tempo de execução a partir de uma pasta de plugins

👤 Equipes enviando sistemas de plug-ins ou produtos de baixo código ⏱ ~60 min advanced

Quando usar: Os usuários inserem novas definições de ferramentas e você deseja que elas estejam disponíveis sem reimplantação.

Fluxo
  1. Digitalize a pasta
    Escreva um carregador que reflita cada .dll e registre métodos [McpTool] dinamicamente.✓ Copiado
    → As ferramentas aparecem sem alterar listas codificadas
  2. Recarregue a quente com segurança
    Adicione isolamento AssemblyLoadContext para que as recargas não vazem.✓ Copiado
    → Assemblies antigos descarregados entre recargas

Resultado: Conjunto de ferramentas conectáveis ​​com ciclo de vida de montagem adequado.

Armadilhas
  • Vazamento de assemblies com contexto de carregamento padrão — Use AssemblyLoadContext colecionável para recargas isoladas

Combinações

Combine com outros MCPs para 10× de alavancagem

mcpsharp + fastmcp

Compare a criação de servidor .NET vs Python MCP

Portar minhas ferramentas Python FastMCP para MCPSharp para a pilha .NET existente.✓ Copiado
mcpsharp + csharp-sdk

SDK oficial vs pacote comunitário – escolha o que se adapta

Compare o MCPSharp e o csharp-sdk oficial para minhas necessidades.✓ Copiado
mcpsharp + azure-ai-gateway

Coloque o servidor C# MCP por trás das políticas de gateway de IA do Azure

Fronte meu servidor MCPSharp com o gateway Azure AI para limites de autenticação/taxa.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
[McpTool] C# method signature Em cada método que você deseja que um agente ligue 0
[McpResource] C# member Quando você deseja expor recursos legíveis (arquivos/dados) e não ferramentas 0
[McpParameter] method parameter Marque os parâmetros obrigatórios e forneça as descrições dos parâmetros 0
MCPServer.StartAsync name, version Inicie o servidor via stdio (ou transporte configurado) 0
MCPClient server address De C# para conversar com outro servidor MCP 0

Custo e limites

O que custa rodar

Cota de API
Nenhum - é uma biblioteca
Tokens por chamada
Depende de suas ferramentas; a biblioteca em si é pequena
Monetário
Gratuito (OSS estilo MIT)
Dica
Molde DTOs de resposta intencionalmente – grandes blobs JSON aumentam os tokens e a latência.

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Qualquer que seja o uso de seus serviços (configuração ASP.NET, KeyVault, etc.). MCPSharp não possui credenciais.
Saída de dados: Dependente de transporte (stdio local; HTTP/remoto se configurado).

Solução de problemas

Erros comuns e correções

Ferramenta não descoberta pelo cliente

Confirme se o método é público, tem [McpTool] e se o nome do atributo corresponde ao que você o chama. Verifique também o nome do servidor passado para StartAsync.

Verificar: MCPServer.ListTools() at startup
Exceção de serialização no retorno

Retornar um POCO/DTO; evite entidades e tipos EF de carregamento lento com referências cíclicas.

Verificar: Unit test serialization with System.Text.Json
Kernel Semântico não vê ferramentas

Registre o plugin MCP explicitamente e confirme se o construtor do kernel está ciente; algumas versões SK requerem importação explícita.

Verificar: Log plugins at startup

Alternativas

MCPSharp vs. outros

AlternativaQuando usarTroca
csharp-sdk (official)Você quer o SDK C# Anthropic/MCP oficialErgonomia diferenciada; observe as diferenças de recursos
fastmcpVocê prefere PythonEcossistema diferente
mcp-agentVocê deseja padrões de agente baseados em Python, não apenas autoria de servidorNão é .NET

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills