Content
# DotnetMCP
Solução de exemplo demonstrando a implementação de **MCP Servers** (Model Context Protocol) em .NET, com suporte a múltiplos transportes e integração com APIs internas.
## Estrutura da Solução
```
DotnetMCPServer/
├── Agendamentos.API/ # API interna de Agendamentos
├── Clientes.API/ # API interna de Clientes
├── DotnetMCPServer.Agendamentos.Stdio/ # MCP Server de Agendamentos (transporte Stdio)
├── DotnetMCPServer.Agendamentos.StreamableHttp/ # MCP Server de Agendamentos (transporte HTTP)
├── DotnetMCPServer.Clientes.Stdio/ # MCP Server de Clientes (transporte Stdio)
├── DotnetMCPServer.Clientes.StreamableHttp/ # MCP Server de Clientes (transporte HTTP)
├── DotnetMCPServer.Client/ # Cliente MCP com integração LLM
├── DotnetMCPServer.Client.API/ # API do cliente MCP
└── DotnetMCPServer.Shared/ # Biblioteca compartilhada (tools, helpers, clients)
```
## Projetos
### APIs Internas
O armazenamento é feito **em memória** (sem banco de dados) para simplificar a execução do projeto. Ao iniciar, cada API carrega automaticamente um conjunto de dados padrão:
| API | Dados pré-carregados |
|---|---|
| **Clientes.API** | 3 clientes (Ana Paula, Bruno Costa, Carla Mendes) |
| **Agendamentos.API** | 6 agendamentos — 5 ativos e 1 cancelado, distribuídos entre hoje e amanhã |
Os endpoints de cada API podem ser explorados pela **Scalar UI**, acessível na rota `/docs` após subir o projeto:
- `http://localhost:<porta>/docs` — Agendamentos API
- `http://localhost:<porta>/docs` — Clientes API
- **Agendamentos.API** — API RESTful para gerenciamento de agendamentos
- **Clientes.API** — API RESTful para gerenciamento de clientes
### MCP Servers
Cada domínio possui dois servidores MCP com transportes diferentes:
| Projeto | Transporte |
|---|---|
| `DotnetMCPServer.Agendamentos.Stdio` | Stdio |
| `DotnetMCPServer.Agendamentos.StreamableHttp` | Streamable HTTP |
| `DotnetMCPServer.Clientes.Stdio` | Stdio |
| `DotnetMCPServer.Clientes.StreamableHttp` | Streamable HTTP |
### Cliente
- **DotnetMCPServer.Client** — Orquestrador MCP com integração a LLMs
- **DotnetMCPServer.Client.API** — API expondo o cliente MCP
### Shared
- **DotnetMCPServer.Shared** — Ferramentas (tools), helpers e clients compartilhados entre os projetos
## Pré-requisitos
- [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) ou superior
- Visual Studio 2022 / VS Code / Rider
## Como executar
1. Clone o repositório:
```bash
git clone https://github.com/tiago-aguiar-moreira/DotnetMCP.git
cd DotnetMCP
```
2. Restaure as dependências:
```bash
dotnet restore
```
3. Execute os projetos desejados (APIs internas + MCP Server):
```bash
dotnet run --project Agendamentos.API
dotnet run --project Clientes.API
dotnet run --project DotnetMCPServer.Agendamentos.StreamableHttp
dotnet run --project DotnetMCPServer.Clientes.StreamableHttp
```
## Referências
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [MCP C# SDK](https://github.com/modelcontextprotocol/csharp-sdk)
Connection Info
You Might Also Like
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
awesome-claude-skills
A curated list of awesome Claude Skills, resources, and tools for...
claude-flow
Claude-Flow v2.7.0 is an enterprise AI orchestration platform.
Appwrite
Build like a team of hundreds
semantic-kernel
Build and deploy intelligent AI agents with Semantic Kernel's orchestration...
Anthropic-Cybersecurity-Skills
734+ structured cybersecurity skills for AI agents · MITRE ATT&CK mapped ·...