MCP (Model Context Protocol) server pro práci s BrokerTrust Generic API přes OAuth 2.0 Authorization Code Flow.
✅ OAuth 2.0 Authorization Code Flow
✅ Automatický refresh tokenů
✅ Strukturované logování (Serilog)
✅ MCP Protocol implementace
✅ Validace povinných polí při vytváření karet
✅ Práce s client-cards endpointy:
GET /client-cards
- vyhledávání karetGET /client-cards/{id}
- detail kartyPOST /client-cards
- vytvoření karty (s validací)PUT /client-cards/{id}
- aktualizace karty
Pro fyzickou osobu (FO):
- ✅ Jméno, Příjmení, Datum narození, Email
Pro OSVČ (FOP):
- ✅ Jméno, Příjmení, Datum narození, Email
Pro právnickou osobu (PO):
- ✅ Název firmy, Email
- .NET 9.0 SDK
- OAuth credentials (client_id, client_secret) od BrokerTrust
- Nastav OAuth credentials v
appsettings.json
:
{
"OAuth": {
"ClientId": "TVOJE_CLIENT_ID",
"ClientSecret": "TVOJE_CLIENT_SECRET"
}
}
- Restore balíčků:
dotnet restore
dotnet build
dotnet run
Po spuštění:
- Otevře se authorization URL - zkopíruj ji do prohlížeče
- Přihlas se do BrokerTrust SSO
- Po přesměrování zkopíruj celou URL zpět do konzole
- ✅ Tokeny se automaticky uloží (zašifrovaně)
- Můžeš začít používat příkazy
dotnet run
Už nepotřebuješ OAuth flow! Tokeny se načtou z .tokens
souboru.
Dostupné příkazy:
1
- Vyhledat klientské karty2
- Získat detail karty3
- Vytvořit novou kartu4
- Aktualizovat kartutools
- Zobrazit tools manifestexit
- Ukončit
dotnet run stdio
Automaticky použije uložené tokeny. Pokud nejsou, zobrazí chybu.
Aplikace používá Serilog pro strukturované logování do souborů.
logs/
└── bt-generic-mcp-YYYYMMDD.log # Nový soubor každý den
Windows PowerShell:
Get-Content logs\bt-generic-mcp-*.log -Wait
Linux/Mac:
tail -f logs/bt-generic-mcp-*.log
V appsettings.json
změň:
{
"Logging": {
"LogLevel": {
"Default": "Information" // nebo "Debug" pro více detailů
}
}
}
📖 Kompletní dokumentace: Documentation/LOGGING.md
🚀 Rychlý start: Documentation/LOGGING_QUICKSTART.md
BT.Generic.MCP/
├── Program.cs # Entry point, DI, Serilog konfigurace
├── OAuthClient.cs # OAuth 2.0 logika
├── RestApiClient.cs # REST API client
├── MCPProtocolHandler.cs # MCP protokol
├── TokenStorage.cs # Zašifrované ukládání tokenů
├── Models/
│ └── ClientCardModels.cs # Data modely
├── appsettings.json # Konfigurace
├── logs/ # Log soubory (automaticky vytvořené)
└── Documentation/ # Kompletní dokumentace
├── LOGGING.md
├── LOGGING_QUICKSTART.md
├── TESTING_CHECKLIST.md
└── ... další dokumenty
> 1
Příjmení: Novák
> 2
ID klientské karty: 550e8400-e29b-41d4-a716-446655440000
> 3
Legal Type (FO/PO/FOP): FO
--- Údaje fyzické osoby ---
Jméno (POVINNÉ): Jan
Příjmení (POVINNÉ): Novák
Datum narození (YYYY-MM-DD) (POVINNÉ): 1990-05-15
Email (POVINNÉ): [email protected]
Telefon (nepovinné): +420123456789
Odesílám požadavek...
1. Program vygeneruje Authorization URL
↓
2. Uživatel se přihlásí v prohlížeči
↓
3. SSO přesměruje na redirect_uri s authorization code
↓
4. Program vymění code za access_token + refresh_token
↓
5. Token se používá pro API requesty
↓
6. Při expiraci se automaticky refreshuje
- ✅ OAuth 2.0 Authorization Code Flow
- ✅ Token Persistence - Zašifrované ukládání tokenů (AES-256)
- ✅ Automatický refresh tokenů před expirací
- ✅ State parameter pro CSRF ochranu
- ✅ Bearer token autentizace
- ✅
.gitignore
chrání tokenů a klíčů - ✅ Citlivá data nejsou logována
Aplikace automaticky ukládá OAuth tokeny do .tokens
souboru:
- 🔒 Zašifrováno pomocí AES-256
- ♻️ Automatické načítání při dalším spuštění
- 🔄 Refresh tokeny se ukládají a používají
- 💻 Claude Desktop může používat uložené tokeny
📖 Vice info: Documentation/TOKEN_PERSISTENCE.md
- Zkontroluj logy:
logs/bt-generic-mcp-*.log
- Hledej
[ERR]
záznamy - Ověř
client_id
aclient_secret
vappsettings.json
# Hledej chyby v lozích
Select-String -Path "logs\*.log" -Pattern "\[ERR\]"
- Zkontroluj logy pro detaily
- Smaž
.tokens
a projdi OAuth flow znovu - Ujisti se, že máš správné OAuth credentials
- Zkontroluj logy - token mohl expirovat
- Auto-refresh by měl proběhnout automaticky
- Hledej refresh token události v lozích
# Hledej OAuth události
Select-String -Path "logs\*.log" -Pattern "OAuth|Token|refresh"
- Zkontroluj, že máš .NET 9.0 SDK:
dotnet --version
- Proveď clean build:
dotnet clean
dotnet restore
dotnet build
- Zkontroluj logy pro detailní chybové zprávy
Pro přidání dalších endpointů:
- Přidej metodu do
RestApiClient.cs
:
public async Task<string> NewEndpointAsync(params)
{
_logger.LogInformation("Volání NewEndpoint");
var endpoint = "/new-endpoint";
var request = await CreateAuthenticatedRequestAsync(HttpMethod.Get, endpoint);
var response = await _httpClient.SendAsync(request);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
-
Přidej handler do
MCPProtocolHandler.cs
-
Přidej tool do manifestu v
GetToolsManifest()
-
Přidej case do switch v
HandleToolCallAsync()
- 📖 README.md - Tento soubor
- 📖 Documentation/DOCUMENTATION_INDEX.md - Navigace v dokumentaci
- 🚀 Documentation/LOGGING_QUICKSTART.md - Rychlý start
- 📖 Documentation/LOGGING.md - Kompletní dokumentace logování
- 📖 Documentation/TOKEN_PERSISTENCE.md - Ukládání tokenů
- 📖 Documentation/MCP_SETUP.md - Nastavení MCP
- 📖 Documentation/CONSOLE_VS_LOGGER.md - Kdy použít Console vs Logger
- 📖 Documentation/CHANGELOG.md - Historie změn
- 📖 Documentation/CHANGELOG_LOGGING.md - Změny v logování
- 📖 Documentation/SUMMARY_LOGGING_CHANGES.md - Souhrn změn
- 📖 Documentation/TESTING_CHECKLIST.md - Testing checklist
- 📖 Documentation/CLAUDE_DESKTOP_CHECKLIST.md - Krok za krokem
- 📖 Documentation/IMPLEMENTATION_COMPLETE.md - Přehled implementace
- 📖 Documentation/GIT_COMMIT_GUIDE.md - Git návod
- Framework: .NET 9.0
- Logování: Serilog + Microsoft.Extensions.Logging
- DI: Microsoft.Extensions.DependencyInjection
- Šifrování: AES-256 (pro tokeny)
- Protokol: MCP (Model Context Protocol)
- OAuth: Authorization Code Flow
- OAuth 2.0 flow
- Token persistence
- MCP protokol
- Client cards operace
- Strukturované logování
- Dependency Injection
- Přidat další endpointy z Generic API
- Implementovat rate limiting
- Přidat unit testy
- Vytvořit Docker image
- Support pro více uživatelů/tokenů
- Application Insights integrace
- Health checks
Pro otázky ohledně OAuth credentials nebo API přístupů kontaktuj BrokerTrust tým.
Verze: 1.1.0
Poslední aktualizace: 2025-10-01
Status: ✅ Production Ready