DEV Community

Cover image for 🧠 Minha Primeira Comunicação com MCP e .NET

🧠 Minha Primeira Comunicação com MCP e .NET

📖 Introdução

Com o avanço das arquiteturas modernas e da interoperabilidade entre plataformas, o MCP (Model Context Protocol) surge como uma tecnologia que permite comunicação estruturada entre modelos de linguagem (LLMs) e aplicações reais, incluindo APIs, serviços e agentes.

O objetivo deste artigo é mostrar como realizar sua primeira comunicação entre uma aplicação .NET e um endpoint MCP, demonstrando na prática como conectar seu back-end a uma camada inteligente.


⚙️ O Que é o MCP?

O Model Context Protocol (MCP) é um padrão aberto projetado para criar um canal de comunicação entre aplicações externas e modelos de linguagem, de forma segura, extensível e baseada em contexto.

Ele permite que seu modelo (por exemplo, GPT, Claude, Gemini) acesse dados e APIs do mundo real, mantendo controle sobre escopo, autenticação e contexto.

No ecossistema moderno, isso significa que um sistema .NET pode expor endpoints que são compreendidos e consumidos diretamente por um modelo compatível com MCP.


🧩 Arquitetura da Comunicação

A arquitetura base envolve três camadas principais:

┌────────────────────────────┐
│        .NET API (C#)       │ ← Expõe endpoints REST/JSON
└──────────────┬─────────────┘
               │
               ▼
┌────────────────────────────┐
│        MCP Server          │ ← Interpreta, autentica e roteia
└──────────────┬─────────────┘
               │
               ▼
┌────────────────────────────┐
│     Model / LLM Client     │ ← ChatGPT / Copilot / Llama
└────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Essa comunicação pode ser feita via HTTP, WebSocket ou gRPC, dependendo da configuração do MCP.


🧱 Criando o Projeto .NET

Comece criando uma API básica em .NET:

dotnet new webapi -n McpConnector
cd McpConnector
Enter fullscreen mode Exit fullscreen mode

No arquivo Program.cs, configure um endpoint simples para teste:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/api/status", () =>
{
    return Results.Ok(new
    {
        service = "MCP .NET Connector",
        status = "running",
        timestamp = DateTime.UtcNow
    });
});

app.Run();
Enter fullscreen mode Exit fullscreen mode

Execute o projeto:

dotnet run
Enter fullscreen mode Exit fullscreen mode

Acesse http://localhost:5000/api/status.


🔗 Conectando com o MCP

Para conectar sua API ao MCP, é necessário expor um manifesto que descreve os recursos e operações disponíveis.

Crie um arquivo mcp-manifest.json:

{
  "version": "1.0.0",
  "name": "dotnet-mcp-service",
  "description": "MCP integration demo with .NET Web API",
  "endpoints": [
    {
      "id": "status",
      "method": "GET",
      "path": "/api/status",
      "description": "Returns the current service status."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Esse arquivo informa ao MCP como interagir com sua API, permitindo que um modelo entenda suas rotas.


🧠 Comunicação Prática

Suponha que seu MCP Client (por exemplo, ChatGPT com MCP habilitado) precise acessar seu endpoint /api/status.

O cliente MCP fará a requisição:

GET http://localhost:5000/api/status
Accept: application/json
Enter fullscreen mode Exit fullscreen mode

Resposta do .NET:

{
  "service": "MCP .NET Connector",
  "status": "running",
  "timestamp": "2025-10-07T12:00:00Z"
}
Enter fullscreen mode Exit fullscreen mode

O modelo então entende o contexto e pode usá-lo em conversas, dashboards ou automações.


🧩 Integração com gRPC ou WebSocket

O MCP pode usar transportes bidirecionais.
No .NET, podemos habilitar isso facilmente com MapHub (SignalR) ou Grpc.AspNetCore.

Exemplo gRPC (simplificado)

Adicione o pacote:

dotnet add package Grpc.AspNetCore
Enter fullscreen mode Exit fullscreen mode

Crie um arquivo mcp.proto:

syntax = "proto3";

service McpService {
  rpc GetStatus (Empty) returns (StatusResponse);
}

message StatusResponse {
  string service = 1;
  string status = 2;
  string timestamp = 3;
}
Enter fullscreen mode Exit fullscreen mode

Implemente o serviço e registre-o no Program.cs:

app.MapGrpcService<McpServiceImplementation>();
Enter fullscreen mode Exit fullscreen mode

Agora o MCP pode se conectar via gRPC com o mesmo modelo de contrato.


📈 Boas Práticas

✅ Utilize autenticação JWT ou API Key para proteger o acesso.
✅ Crie logs detalhados com ILogger<T> para rastrear as chamadas MCP.
✅ Padronize respostas JSON para consistência.
✅ Monitore com OpenTelemetry + Grafana para métricas e tracing.


🧩 Cenários Reais de Uso

  • Integração entre ChatGPT Enterprise e API .NET interna.
  • Automação de processos via MCP Agents conectados a microsserviços.
  • APIs inteligentes com acesso contextual (CRM, ERP, observabilidade).
  • Suporte a assistentes internos corporativos baseados em dados reais.

✅ Conclusão

Integrar o MCP com .NET é um passo estratégico para modernizar a comunicação entre suas APIs e modelos inteligentes.
Essa arquitetura cria uma ponte entre o raciocínio contextual de LLMs e a robustez do .NET, tornando suas aplicações mais dinâmicas, observáveis e preparadas para o futuro da interoperabilidade.


🤝 Conecte-se Comigo

Se você trabalha com .NET moderno e quer dominar arquitetura, C#, observabilidade, DevOps ou interoperabilidade, vamos conversar:

💼 LinkedIn
✍️ Medium
📬 dopme.io
📬devsfree

Bem sei eu que tudo podes, e que nenhum dos teus propósitos pode ser impedido. Jó 42:2

Top comments (0)