McpToken Yönetimi
McpToken, tenant'lara JWT login gerekmeden API erişimi sağlayan güvenlik token'larıdır. Özellikle MCP (Model Context Protocol) istemcileri için tasarlanmıştır.
Base URL: /api/admin/mcp-tokens
Yetkilendirme: Bearer Token (Admin)
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
McpToken Nedir?
McpToken, mevcut X-Api-Key authentication'a alternatif olarak sunulan bir token türüdür:
| Özellik | X-Api-Key | McpToken |
|---|---|---|
| Tenant auth gerekli | Evet (JWT) | Hayır |
| Expire tarihi | Yok | Manuel belirlenir |
| Yönetim | BaseDbContext | BaseDbContext |
| MCP entegrasyonu | Destekli | Önerilen |
Avantajları:
- Tenant kullanıcı email/password gerekmez
- Token expire tarihi ile otomatik geçersizleşme
- Admin tüm tokenları merkezi yönetir
McpToken İşlemleri
POST /
Yeni bir McpToken oluşturur.
Request:
{
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"expiresAt": "2026-12-31T23:59:59Z"
}
Alanlar:
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
customerId | GUID | Evet | Token'ın atanacağı müşteri ID |
expiresAt | DateTime | Evet | Token'ın geçerlilik bitiş tarihi |
Response — 201 Created:
{
"success": true,
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"token": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789",
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerName": "Acme Corp",
"customerSlug": "acme-corp",
"expiresAt": "2026-12-31T23:59:59Z",
"isActive": true,
"createdAt": "2026-03-31T10:00:00Z"
}
}
Token değeri yalnızca oluşturulduğu anda döndürülür. Bu değeri güvenli bir şekilde saklayın, çünkü sonraki isteklerde gösterilmez.
GET /
Tüm McpToken'ları listeler. İsteğe bağlı olarak customerId ile filtrelenebilir.
Query Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
customerId | GUID | Opsiyonel - Belirli bir müşteriye ait tokenları filtreler |
Response — 200 OK:
{
"success": true,
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"token": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789",
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerName": "Acme Corp",
"customerSlug": "acme-corp",
"expiresAt": "2026-12-31T23:59:59Z",
"isActive": true,
"createdAt": "2026-03-31T10:00:00Z"
}
]
}
GET /{id}
Belirli bir McpToken'ı getirir.
Response — 200 OK:
{
"success": true,
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"token": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789",
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerName": "Acme Corp",
"customerSlug": "acme-corp",
"expiresAt": "2026-12-31T23:59:59Z",
"isActive": true,
"createdAt": "2026-03-31T10:00:00Z"
}
}
PUT /{id}/toggle
Token'ın isActive durumunu değiştirir.
Response — 200 OK:
{
"success": true,
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"token": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789",
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerName": "Acme Corp",
"customerSlug": "acme-corp",
"expiresAt": "2026-12-31T23:59:59Z",
"isActive": false,
"createdAt": "2026-03-31T10:00:00Z"
}
}
DELETE /{id}
McpToken'ı soft-delete eder (kalıcı olarak silmez, sadece IsDeleted işaretler).
Response — 204 No Content
MCP İstemci Kullanımı
McpToken ile Bağlanma
MCP istemcinizi (Claude Desktop, Cursor, vb.) aşağıdaki gibi yapılandırın:
{
"cms": {
"baseUrl": "https://api.cms.kompanse.com",
"mcpToken": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789"
}
}
veya tool kullanarak:
Tool: configure_connection_with_mcp_token
Input: {
"mcpToken": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789"
}
Header Yapısı
McpToken kullanıldığında, istemci otomatik olarak:
X-Mcp-Token: AbCdEfGhIjKlMnOpQrStUvWxYz0123456789
header'ını gönderir. JWT login gerekmez, token zaten tenant ile ilişkilidir.
Güvenlik Notları
- Token Gizliliği: Token oluşturulduktan sonra yalnızca bir kez gösterilir. Güvenli bir yerde saklayın.
- Expire Süresi: Uygun expire süresi belirleyin (kısa süreli projeler için 1 ay, uzun vadeli için 1 yıl).
- Aktif/Pasif: Kullanılmayan tokenları
toggleendpoint'i ile pasif hale getirebilirsiniz. - Silme: Silinen token geri alınamaz, yeni token oluşturmanız gerekir.