Blueprint Referansı: §21 MCP Server Architecture, §3 Native CLI & Installation, §20 Claude Code Integration Guide
Deckent, Model Context Protocol (MCP) üzerinden Claude Code ve diğer MCP-uyumlu IDE'lere entegre olur. MCP sunucu stdio transport ile çalışır — ekstra kimlik doğrulama gerekmez. Claude Code, Deckent araçlarını doğal konuşma akışı içinde çağırır.
- MCP Sunucu Mimarisi
- Kurulum ve IDE Entegrasyonu
- 10 MCP Tool Referansı
- 5 MCP Resource Referansı
- Tipik Kullanım Akışları
Claude Code / IDE (MCP client)
│
│ stdio transport
▼
deckent-mcp process (src/mcp/server.ts)
├── 10 Tools (src/mcp/tools/)
└── 5 Resources (src/mcp/resources/)
│
▼
Deckent Core Engine
(brain.ts, planner.ts, auditor.ts, worker.ts, analyzer.ts)
MCP sunucusu deckent-mcp binary'si olarak yayınlanır. deckent init komutu bu binary'yi projenin .claude/settings.json dosyasına otomatik olarak kaydeder.
npm install -g deckent
# veya
npx deckent --versiondeckent init çalıştırıldığında proje kökünde .claude/settings.json otomatik oluşturulur/güncellenir:
{
"mcpServers": {
"deckent": {
"command": "deckent-mcp",
"args": []
}
}
}Kayıt başarılıysa Claude Code'u yeniden başlatın — araçlar deckent_ prefix'iyle hazır olacaktır.
# Proje düzeyinde (sadece bu proje için)
cat > .claude/settings.json << 'EOF'
{
"mcpServers": {
"deckent": {
"command": "deckent-mcp",
"args": []
}
}
}
EOF
# Global düzey (tüm projeler için)
# ~/.claude/settings.json dosyasına aynı mcpServers bloğunu ekleyinClaude Code terminalinde:
/mcp
Çıktıda deckent sunucusunu ve bağlı tool sayısını görmelisiniz.
VS Code'da MCP desteği için Cline veya Continue eklentisi kullanın.
- Cline eklentisini yükleyin (VS Code Marketplace)
- Cline ayarlarını açın:
Ctrl+Shift+P→Cline: Open Settings - MCP sunucu ekleyin:
{
"mcpServers": {
"deckent": {
"command": "deckent-mcp",
"args": [],
"env": {}
}
}
}- Cline'ı yeniden başlatın.
~/.continue/config.json dosyasına ekleyin:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "deckent-mcp",
"args": []
}
}
]
}
}- Cursor Ayarları'nı açın:
Ctrl+,→ MCP sekmesi - "Add MCP Server" butonuna tıklayın
- Şu değerleri girin:
- Name:
deckent - Command:
deckent-mcp - Args: (boş bırakın)
- Name:
- Kaydedin ve Cursor'ı yeniden başlatın.
Alternatif olarak ~/.cursor/mcp.json dosyasına ekleyin:
{
"mcpServers": {
"deckent": {
"command": "deckent-mcp",
"args": []
}
}
}Tüm tool'lar src/mcp/tools/ altında tanımlanmıştır. Blueprint §21'de listelenen tam tablo:
| Tool | Dosya | Amaç |
|---|---|---|
deckent_init |
init.ts | Projeyi başlatır |
deckent_set_directives |
directives.ts | DIRECTIVES.md yazar |
deckent_plan |
plan.ts | Sprint planlar (dry-run) |
deckent_start |
start.ts | Sprint başlatır (arka plan) |
deckent_status |
status.ts | Anlık sprint durumu |
deckent_doctor |
doctor.ts | Sağlık kontrolü |
deckent_retro |
retro.ts | Son retrospektif |
deckent_history |
history.ts | Sprint geçmişi |
deckent_analyze_project |
analyze.ts | Proje analizi |
deckent_sync |
sync.ts | Adapter dosyaları senkronize eder |
Amaç: Proje kökünde Deckent yapısını oluşturur. .deckent/, .brain/, .tasks/, .locks/, .claude/rules/ dizinlerini ve config dosyalarını yaratır.
Parametreler:
| Parametre | Tip | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|---|
projectName |
string | Evet | — | Proje adı (DECKENT.md başlığında kullanılır) |
mode |
enum | Hayır | performance |
Plan modu: performance, balanced, economic, api (legacy: max_plan, max5x_plan, pro_plan) |
language |
enum | Hayır | en |
Ajan prompt dili: en, tr |
Örnek Çağrı:
{
"tool": "deckent_init",
"arguments": {
"projectName": "my-app",
"mode": "performance",
"language": "en"
}
}Beklenen Çıktı:
{
"success": true,
"created": [
".deckent/",
".brain/",
".tasks/",
".locks/",
".claude/rules/",
".deckent/config.json",
"DECKENT.md",
"AGENTS.md",
"CLAUDE.md",
".claude/settings.json"
],
"mode": "performance",
"language": "en",
"projectName": "my-app"
}Kaynak: src/mcp/tools/init.ts | Blueprint §3, §18
Amaç: DIRECTIVES.md içeriğini yazar. Claude, kullanıcının doğal dil hedeflerini ## Görev N: / ## Task N: blokları formatında yapılandırır.
Parametreler:
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
content |
string | Evet | ## Görev/Task N: bloklarını içeren formatlanmış DIRECTIVES.md içeriği |
Örnek Çağrı:
{
"tool": "deckent_set_directives",
"arguments": {
"content": "# DIRECTIVES — Sprint 1\n\n## Task 1: Auth API\n- File: src/auth/index.ts\n- Scope: src/auth/\n\n### Description\nImplement JWT-based authentication endpoint.\n"
}
}Beklenen Çıktı:
{
"success": true,
"taskCount": 1
}Not: taskCount ## Görev veya ## Task header'larını sayar. Brain bu sayıyı sprint planlamasında kullanır.
Kaynak: src/mcp/tools/directives.ts | Blueprint §21 (Key Design Decision)
Amaç: Mevcut DIRECTIVES.md içeriğine göre sprint planlar. Çalıştırmadan yalnızca görev listesi ve öneri döndürür (her zaman dry-run).
Parametreler:
| Parametre | Tip | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|---|
dryRun |
boolean | Hayır | true |
Her zaman true — plan tool çalıştırmaz |
mode |
enum | Hayır | config'den | Planlama modu: ai, structured, auto |
Örnek Çağrı:
{
"tool": "deckent_plan",
"arguments": {
"mode": "ai"
}
}Beklenen Çıktı:
{
"sprintId": "sprint-018",
"sprintNumber": 18,
"tasks": [
{ "id": "018-001", "title": "Auth API", "model": "sonnet", "priority": "HIGH" },
{ "id": "018-002", "title": "DB Schema", "model": "haiku", "priority": "NORMAL" }
],
"recommendation": {
"size": 4,
"maxWorkers": 4,
"reason": "Performance mode: up to 5 parallel workers"
},
"reasoning": "Tasks prioritized by dependency and complexity.",
"planningMode": "ai"
}Kaynak: src/mcp/tools/plan.ts | Blueprint §7, §21
Amaç: Tam sprint yaşam döngüsünü arka planda başlatır: plan → spawn → execute → evaluate → retro → cleanup. Hemen bir jobId döndürür; ilerlemeyi deckent_status ile takip edin.
Parametreler:
| Parametre | Tip | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|---|
autoApprove |
boolean | Hayır | false |
Worker işlemlerini otomatik onayla (--dangerously-skip-permissions) |
Örnek Çağrı:
{
"tool": "deckent_start",
"arguments": {
"autoApprove": false
}
}Beklenen Çıktı (anında):
{
"success": true,
"jobId": "sprint-1710768000000",
"status": "RUNNING",
"message": "Sprint started in background. Use deckent_status to track progress."
}Not: Sprint arka planda çalışır (child_process.fork()). MCP zaman aşımı olmaz. İş durumu .deckent/jobs/{jobId}.json dosyasına yazılır.
Kaynak: src/mcp/tools/start.ts | Blueprint §7, §21, Sprint 17 (background jobs)
Amaç: Anlık sprint dashboard durumunu döndürür. Ajan durumları, ilerleme, kullanım metrikleri, uyarılar ve arka plan iş durumu.
Parametreler: Yok
Örnek Çağrı:
{
"tool": "deckent_status",
"arguments": {}
}Beklenen Çıktı (sprint aktifken):
{
"active": true,
"sprintId": "sprint-018",
"phase": "EXECUTE",
"agents": [
{ "taskId": "018-001", "status": "EXECUTING", "model": "sonnet", "lastHeartbeat": "..." },
{ "taskId": "018-002", "status": "DONE", "model": "haiku" }
],
"progress": { "total": 4, "done": 1, "failed": 0, "running": 1 },
"alerts": [],
"job": {
"jobId": "sprint-1710768000000",
"status": "RUNNING",
"startedAt": "2026-03-18T10:00:00.000Z"
}
}Beklenen Çıktı (sprint yokken):
{
"active": false,
"message": "No active sprint.",
"job": null
}Kaynak: src/mcp/tools/status.ts | Blueprint §21
Amaç: Deckent sağlık kontrollerini çalıştırır: Node.js, git, tmux, Claude CLI, workspace, brain budget, debt, locks.
Parametreler: Yok
Örnek Çağrı:
{
"tool": "deckent_doctor",
"arguments": {}
}Beklenen Çıktı:
{
"ok": true,
"checks": [
{ "name": "node_version", "status": "ok", "detail": "v20.11.0 (>=18 required)" },
{ "name": "git", "status": "ok", "detail": "git 2.43.0" },
{ "name": "tmux", "status": "ok", "detail": "tmux 3.3a" },
{ "name": "claude_cli", "status": "ok", "detail": "claude 1.2.3" },
{ "name": "workspace", "status": "ok", "detail": ".deckent/ found" },
{ "name": "brain_budget", "status": "ok", "detail": "185/600 lines" },
{ "name": "debt", "status": "warning", "detail": "3 open debt items" },
{ "name": "stale_locks", "status": "ok", "detail": "No stale locks" }
]
}ok alanı: Sadece required statüslü kontroller başarısız olduğunda false döner. warning durumu ok: true döndürür.
Kaynak: src/mcp/tools/doctor.ts | Blueprint §16
Amaç: .brain/RETRO.md dosyasından en son sprint retrospektifini okur.
Parametreler: Yok
Örnek Çağrı:
{
"tool": "deckent_retro",
"arguments": {}
}Beklenen Çıktı:
{
"content": "# Sprint 17 Retrospective\n\n## Completed\n- Background jobs via child_process.fork()\n- React test infra\n\n## Learnings\n- MCP deckent_start no longer times out\n..."
}Retrospektif yoksa:
{
"content": null
}Kaynak: src/mcp/tools/retro.ts | Blueprint §7 (RETRO phase)
Amaç: .brain/sprints/ dizinindeki sprint geçmiş loglarını okur. Son N sprint'i döndürür.
Parametreler:
| Parametre | Tip | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|---|
last |
number | Hayır | 5 |
Döndürülecek son sprint sayısı |
Örnek Çağrı:
{
"tool": "deckent_history",
"arguments": {
"last": 3
}
}Beklenen Çıktı:
{
"sprints": [
{
"id": "sprint-015",
"content": "# Sprint 015\n\n## Tasks\n- DECKENT.md independence...\n"
},
{
"id": "sprint-016",
"content": "# Sprint 016\n\n## Tasks\n- Watch mode, worker logs...\n"
},
{
"id": "sprint-017",
"content": "# Sprint 017\n\n## Tasks\n- Background jobs, React test...\n"
}
]
}Kaynak: src/mcp/tools/history.ts | Blueprint §24
Amaç: Proje stack'ini, boyutunu ve metodoloji önerisini analiz eder. Sadece okuma yapar (destructive değil, idempotent).
Parametreler: Yok
Örnek Çağrı:
{
"tool": "deckent_analyze_project",
"arguments": {}
}Beklenen Çıktı:
{
"stack": ["TypeScript", "Node.js", "vitest"],
"size": {
"files": 142,
"linesOfCode": 8500,
"testFiles": 38
},
"methodology": "sprint-parallel",
"recommendation": {
"planMode": "ai",
"maxWorkers": 5,
"reason": "Large TypeScript monorepo with test coverage — AI planning recommended"
}
}Kaynak: src/mcp/tools/analyze.ts, src/core/analyzer.ts | Blueprint §21, Sprint 15
Amaç: Adapter dosyalarını (CLAUDE.md, AGENTS.md) @DECKENT.md referansıyla senkronize eder. Additive — mevcut içeriği asla silmez.
Parametreler: Yok
Örnek Çağrı:
{
"tool": "deckent_sync",
"arguments": {}
}Beklenen Çıktı:
{
"success": true,
"synced": ["CLAUDE.md", "AGENTS.md"]
}DECKENT.md bulunamazsa:
{
"success": false,
"error": "DECKENT.md not found. Run deckent init first."
}Not: ensureDeckentImport() fonksiyonu idempotent'tir — dosya eksikse oluşturur, referans yoksa başa ekler, referans varsa dokunmaz.
Kaynak: src/mcp/tools/sync.ts, src/core/utils.ts | Blueprint §21, Sprint 15
Resource'lar IDE'nin context penceresine otomatik olarak dahil edilebilir. deckent:// URI şemasını kullanırlar.
| Resource URI | MIME Tipi | Kaynak Dosya | Açıklama |
|---|---|---|---|
deckent://dashboard |
application/json |
.dashboard |
Anlık sprint durumu |
deckent://directives |
text/markdown |
DIRECTIVES.md |
Aktif sprint hedefleri |
deckent://memory |
text/markdown |
.brain/MEMORY.md |
Öğrenilmiş desenler |
deckent://debt |
application/json |
.brain/DEBT.md |
Teknik borç kalemleri |
deckent://config |
application/json |
.deckent/config.json |
Proje konfigürasyonu |
Açıklama: Auditor'ın her 30 saniyede bir yazdığı anlık sprint dashboard durumu.
Kaynak Dosya: .dashboard (JSON)
Örnek Çıktı:
{
"active": true,
"sprintId": "sprint-018",
"phase": "EXECUTE",
"agents": [...],
"progress": { "total": 10, "done": 6, "failed": 0, "running": 4 },
"alerts": [],
"updatedAt": "2026-03-18T10:15:30.000Z"
}Kaynak: src/mcp/resources/dashboard.ts | Blueprint §21
Açıklama: Aktif sprint için DIRECTIVES.md içeriği. Brain sprint planlamadan önce bu resource'u okur.
Kaynak Dosya: DIRECTIVES.md (Markdown)
Örnek Çıktı:
# DIRECTIVES — Sprint 18
## Task 1: Auth API
- File: src/auth/index.ts
...Kaynak: src/mcp/resources/directives.ts | Blueprint §21
Açıklama: .brain/MEMORY.md içeriği — önceki sprintlerden öğrenilen desenler. Max 100 satır. Brain her sprint başında bu resource'u okur.
Kaynak Dosya: .brain/MEMORY.md (Markdown)
Örnek Çıktı:
# Learned Patterns
## Wave 1 Learnings (Sprint 1)
- @types/node is required as devDependency...
- tsconfig.json needs "types": ["node"]...Kaynak: src/mcp/resources/memory.ts | Blueprint §6, §21
Açıklama: .brain/DEBT.md dosyasından parse edilmiş teknik borç kalemleri. JSON array formatında döner.
Kaynak Dosya: .brain/DEBT.md (Markdown tablo → JSON)
Örnek Çıktı:
[
{
"id": "DEBT-001",
"description": "sleepSync → async sleep migration",
"severity": "medium",
"sprint": "sprint-002",
"status": "resolved"
},
{
"id": "DEBT-003",
"description": "Dashboard WebSocket upgrade",
"severity": "low",
"sprint": "sprint-017",
"status": "open"
}
]Kaynak: src/mcp/resources/debt.ts | Blueprint §8
Açıklama: .deckent/config.json proje konfigürasyonu. Plan modu, dil ve diğer ayarları içerir.
Kaynak Dosya: .deckent/config.json (JSON)
Örnek Çıktı:
{
"mode": "performance",
"language": "en",
"projectName": "my-app",
"brain_planning": "ai",
"last_sprint_id": 18
}Kaynak: src/mcp/resources/config.ts | Blueprint §21
Kullanıcı: "Set up Deckent for my TypeScript project"
Claude:
1. deckent_doctor() → sağlık kontrolü
2. deckent_analyze_project() → proje analizi
3. deckent_init({ projectName: "my-app", mode: "performance" })
4. deckent_sync() → CLAUDE.md + AGENTS.md güncellenir
Kullanıcı: "I want to add authentication and a user profile page"
Claude:
1. deckent_set_directives({ content: "## Task 1: Auth..." })
2. deckent_plan() → görev listesini göster
Kullanıcı onaylar
3. deckent_start() → { jobId: "sprint-..." }
4. deckent_status() → (periyodik kontrol)
Kullanıcı: "How's the sprint going?"
Claude:
1. deckent_status() → anlık durum
2. deckent://dashboard resource → detaylı dashboard
Kullanıcı: "What did we learn from the last sprint?"
Claude:
1. deckent_retro() → son retrospektif
2. deckent://memory → öğrenilmiş desenler
3. deckent_history({ last: 3 }) → son 3 sprint logu
Kullanıcı: "Deckent doesn't seem to work"
Claude:
1. deckent_doctor() → sağlık kontrolü
2. deckent://config → mevcut konfigürasyon
3. deckent_sync() → adapter dosyalarını düzelt
| Durum | Hata | Çözüm |
|---|---|---|
| Config bulunamadı | Config not found. Run deckent init first. |
deckent_init() çalıştırın |
| DECKENT.md yok | DECKENT.md not found. Run deckent init first. |
deckent_init() çalıştırın |
| Dashboard parse hatası | Cannot parse dashboard file. |
Sprint aktif değil veya .dashboard bozuk |
| Sprint başlatma hatası | Sprint failed at phase X: <message> |
deckent_doctor() ile sağlık kontrolü yapın |
| Bölüm | Konu |
|---|---|
| §3 Native CLI & Installation | deckent-mcp binary kurulumu |
| §20 Claude Code Integration Guide | IDE entegrasyon adımları |
| §21 MCP Server Architecture | Tool ve resource tam tablosu |
| §15 Security & Permissions | Tool izin modeli |
| §16 Self-Test & Reporting | deckent_doctor detayları |
| §7 Sprint Lifecycle | deckent_start yaşam döngüsü |
| §6 Memory Architecture | deckent://memory resource formatı |
| §8 GO/NO-GO Protocol | deckent_status değerlendirme kriterleri |