MCP C# SDK 1.0 - O que há de novo e como criar seu primeiro servidor MCP


   Neste artigo vou apresentar o MCP C# SDK na sua versão 1.0 lançado a poucos dias.

O MCP C# SDK atingiu a versão 1.0, trazendo suporte completo para a versão de 25/11/2025 da especificação MCP. Esta versão oferece um conjunto robusto de novos recursos — desde fluxos de autorização aprimorados e metadados mais completos até novos e poderosos padrões para chamadas de ferramentas, elicitação e tratamento de solicitações de longa duração.

c 

A inteligência artificial está rapidamente se tornando parte das aplicações modernas, e os desenvolvedores precisam de maneiras confiáveis de conectar modelos de IA com ferramentas do mundo real, APIs e fontes de dados.

Para atender essa necessidade, a Microsoft e a comunidade do Model Context Protocol (MCP) lançaram a versão 1.0 do MCP C# SDK, um marco importante para desenvolvedores .NET que estão construindo sistemas baseados em IA.

Essa versão traz suporte completo à especificação MCP 2025-11-25 e melhorias importantes em:
- Autenticação
- Metadados
- Integração de ferramentas
- Execução de operações de longa duração

Esses recursos tornam mais simples construir integrações de IA seguras e escaláveis em aplicações .NET.

O que é o Model Context Protocol (MCP)?

O Model Context Protocol (MCP) é um protocolo aberto criado para padronizar como aplicações fornecem contexto para modelos de linguagem (LLMs).

Em termos simples, o MCP funciona como uma ponte entre modelos de IA e sistemas do mundo real, como:
- APIs
- Bancos de dados
- Serviços
- Ferramentas externas

Com o MCP, desenvolvedores podem permitir que agentes de IA:
- Acessem dados estruturados
- Utilizem ferramentas externas
- Executem tarefas
- Interajam com aplicações de forma segura

Isso torna o MCP uma tecnologia fundamental para a construção de:
- Assistentes inteligentes
- Agentes de IA
- Plataformas de automação
- Aplicações corporativas com IA integrada

Principais recursos do MCP C# SDK v1.0

1. Descoberta avançada de servidores de autorização

A segurança é fundamental quando sistemas de IA interagem com recursos externos. A nova especificação MCP permite que servidores exponham Protected Resource Metadata (PRM) de várias maneiras.

Agora os servidores podem disponibilizar metadados através de:
- Uma URL no header WWW-Authenticate
- Um endpoint well-known derivado do caminho MCP
- Um endpoint well-known na raiz do servidor

O SDK gerencia automaticamente esse processo de descoberta, simplificando a implementação de autenticação baseada em OAuth.

2. Suporte a ícones para ferramentas e recursos

Agora o SDK permite anexar metadados de ícones a:
- Ferramentas
- Recursos
- Prompts

Isso melhora muito a experiência em interfaces que exibem as ferramentas disponíveis para agentes de IA.

3. Consentimento incremental de permissões

O MCP agora suporta incremental scope consent, permitindo solicitar permissões somente quando necessário.

O Fluxo típico é :
- O cliente inicia com permissões mínimas
- Quando uma ferramenta exige acesso adicional, o sistema solicita a autorização
- Esse modelo segue o princípio de menor privilégio, aumentando segurança e confiança.

4. Interações sensíveis usando URL Mode

Para evitar exposição de dados sensíveis (como chaves de API ou pagamentos), o MCP permite interações seguras fora do fluxo do modelo de IA.

O usuário é redirecionado para uma página segura controlada pelo servidor. Isso:
- Protege dados sensíveis
- Melhora fluxos de autenticação
- Segue boas práticas de segurança OAuth

5. Suporte a operações de longa duração

Os Workflows de IA podem levar mais tempo que o limite padrão de HTTP.

O MCP introduz suporte para operações long-running usando polling e event streams

O fluxo funciona assim:
- O servidor inicia o processamento
- Retorna um event ID
- O cliente pode consultar o resultado posteriormente

Isso permite criar workflows de IA escaláveis.

Exemplo Prático: Criando um MCP Server com C#

Vamos agora criar um servidor MCP simples que expõe uma ferramenta para consultar o tempo.

1 — Criando o projeto

Podemos criar o projeto no Visual Studio 2026 ou usando a linha de comando:

dotnet new web -n McpPrevisaoTempoServer
cd McpPrevisaoTempoServer


A seguir instale o pacote MCP:  dotnet add package ModelContextProtocol.AspNetCore

2 — Criando uma ferramenta MCP

No MCP, uma ferramenta (tool) é uma função publicada por um servidor, que qualquer cliente MCP pode descobrir e oferecer ao modelo de IA. Quem decide chamar a ferramenta é o modelo; quem executa a chamada é o cliente MCP, que a encaminha ao servidor.

Se você já usou tool calling (function calling) com o Microsoft.Extensions.AI, vai reconhecer o padrão: o mecanismo é o mesmo. A diferença é que a função passa a morar em um servidor e pode ser usada por qualquer aplicação que fale o protocolo MCP.

A seguir temos o exemplo de uma função bem simples que iremos implementar:

using System.ComponentModel;
using ModelContextProtocol.Server;
[McpServerToolType]
public class PrevisaoTempoTool
{
    [McpServerTool, Description("Obtém o clima atual de uma cidade.")]
    public static string GetPrevisaoTempo(
        [Description("Nome da cidade")] string cidade)
    {
        var previsao = new Dictionary<string, string>
        {
            ["São Paulo"] = "24°C, parcialmente nublado",
            ["Rio de Janeiro"] = "30°C, ensolarado",
            ["Curitiba"] = "18°C, chuva leve"
        };
        if (previsao.TryGetValue(cidade, out var resultado))
            return resultado;
        return "Cidade não encontrada.";
    }
}

Observe os atributos:
- [McpServerToolType] identifica a classe que contém ferramentas
- [McpServerTool] marca o método como ferramenta MCP (sem ele a ferramenta não é registrada)
- [Description] descreve a ferramenta e seus parâmetros; é com base nessa descrição que o modelo decide quando e como chamá-la

3 — Registrando o MCP Server

Agora vamos configurar o servidor MCP registrando a função :

using ModelContextProtocol.Server;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMcpServer()
    .WithHttpTransport()
    .WithTools<PrevisaoTempoTool>();
var app = builder.Build();
app.MapMcp();
app.Run();

Nesse código:
- AddMcpServer() registra os serviços do servidor MCP
- WithHttpTransport() configura o transporte HTTP (obrigatório para usar o MapMcp)
- WithTools<PrevisaoTempoTool>() registra as ferramentas da classe
- MapMcp() expõe o endpoint compatível com o protocolo MCP (na raiz da aplicação; você pode usar, por exemplo, app.MapMcp("/mcp"))

4 — Como um agente usaria esse servidor

Quando o modelo decide usar a ferramenta, o cliente MCP envia ao servidor uma requisição JSON-RPC com o método tools/call:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
  "name": "get_previsao_tempo",
  "arguments": { "cidade": "São Paulo" }
 }
}

E o servidor responde:

{
   "jsonrpc": "2.0",
   "id": 1,
   "result": {
      "content": [
         { "type": "text", "text": "24°C, parcialmente nublado" }
      ]
   }
}
 

Na prática você não monta esse JSON manualmente: o SDK faz isso por você. Em uma aplicação .NET que usa o Microsoft.Extensions.AI, basta obter as ferramentas do servidor e passá-las ao IChatClient:

using ModelContextProtocol.Client;

var transporte = new HttpClientTransport(new HttpClientTransportOptions
{
   Endpoint = new Uri("https://localhost:5001")
});

await using var mcpClient = await McpClient.CreateAsync(transporte);

// As ferramentas MCP são AIFunctions: podem ir direto para o ChatOptions
var tools = await mcpClient.ListToolsAsync();

var options = new ChatOptions { Tools = [.. tools] };

var resposta = await chatClient.GetResponseAsync(
"Como está o tempo em São Paulo?", options);

(Ajuste o endereço para a porta em que o seu servidor está rodando, e configure o chatClient com UseFunctionInvocation() para que as chamadas de ferramentas sejam executadas automaticamente.)

Assim, o modelo pode acessar ferramentas reais de forma padronizada — e o mesmo servidor pode ser usado também pelo Visual Studio, VS Code, GitHub Copilot ou Claude Code.

Por que esse lançamento é importante?

O MCP C# SDK 1.0 é um marco importante porque:
- Estabiliza o MCP para aplicações .NET em produção
- Simplifica autenticação e segurança
- Melhora a experiência do desenvolvedor
- Permite criar workflows de IA mais robustos

Para quem trabalha com:
- AI Agents
- Copilots
- Automação inteligente
- Aplicações corporativas com IA

Esse SDK fornece os blocos fundamentais para integrar IA com sistemas reais.

Casos de uso do MCP

Alguns exemplos práticos incluem:
- Ferramentas de desenvolvimento com IA
- Assistentes inteligentes corporativos
- Plataformas de automação
- Aplicações empresariais integradas com IA

Com o crescimento dos AI Agents, o MCP pode se tornar uma camada de infraestrutura essencial para aplicações inteligentes.

Conclusão

O MCP C# SDK 1.0 representa um avanço importante para desenvolvedores .NET que querem integrar IA em suas aplicações.

Ele oferece:
- Comunicação padronizada entre IA e aplicações
- Segurança robusta
- Integração simples com ferramentas e APIs

Isso abre caminho para um futuro onde modelos de IA podem interagir com serviços e dados do mundo real de forma segura e escalável.

Se você está construindo aplicações .NET com IA, este é um ótimo momento para começar a explorar o MCP.

O ecossistema ainda está no início — mas o potencial é enorme.

[NOTA DE ATUALIZAÇÃO — opcional, inclua se for republicar o artigo agora]
Atualização (novembro/2026): desde a publicação deste artigo, o MCP C# SDK chegou à versão 2.0, que implementa a revisão 2026-07-28 da especificação. Entre as mudanças, o transporte HTTP passou a ser stateless por padrão e há breaking changes em relação à 1.x. Além disso, o .NET 11 SDK já traz o template de projeto mcpserver (MCP Server App no Visual Studio), que permite escolher entre os transportes stdio e http.
 

E estamos conversados...  

"Volta, minha alma, para o teu repouso, pois o Senhor te fez bem"
Salmos 116:7

Referências:


José Carlos Macoratti