Skip to content

Latest commit

 

History

History
833 lines (627 loc) · 19.4 KB

mcp-guide.md

File metadata and controls

833 lines (627 loc) · 19.4 KB

MCP-GUIDE — Deckent MCP Kullanım Kılavuzu

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.


İçindekiler

  1. MCP Sunucu Mimarisi
  2. Kurulum ve IDE Entegrasyonu
  3. 10 MCP Tool Referansı
  4. 5 MCP Resource Referansı
  5. Tipik Kullanım Akışları

MCP Sunucu Mimarisi

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.


Kurulum ve IDE Entegrasyonu

Önkoşullar

npm install -g deckent
# veya
npx deckent --version

Claude Code

Otomatik Kayıt (Önerilen)

deckent 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.

Manuel Kayıt

# 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 ekleyin

Doğrulama

Claude Code terminalinde:

/mcp

Çıktıda deckent sunucusunu ve bağlı tool sayısını görmelisiniz.


VS Code

VS Code'da MCP desteği için Cline veya Continue eklentisi kullanın.

Cline ile

  1. Cline eklentisini yükleyin (VS Code Marketplace)
  2. Cline ayarlarını açın: Ctrl+Shift+P → Cline: Open Settings
  3. MCP sunucu ekleyin:
{
  "mcpServers": {
    "deckent": {
      "command": "deckent-mcp",
      "args": [],
      "env": {}
    }
  }
}
  1. Cline'ı yeniden başlatın.

Continue ile

~/.continue/config.json dosyasına ekleyin:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "deckent-mcp",
          "args": []
        }
      }
    ]
  }
}

Cursor

  1. Cursor Ayarları'nı açın: Ctrl+, → MCP sekmesi
  2. "Add MCP Server" butonuna tıklayın
  3. Şu değerleri girin:
    • Name: deckent
    • Command: deckent-mcp
    • Args: (boş bırakın)
  4. Kaydedin ve Cursor'ı yeniden başlatın.

Alternatif olarak ~/.cursor/mcp.json dosyasına ekleyin:

{
  "mcpServers": {
    "deckent": {
      "command": "deckent-mcp",
      "args": []
    }
  }
}

10 MCP Tool Referansı

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

1. deckent_init

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


2. deckent_set_directives

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)


3. deckent_plan

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


4. deckent_start

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)


5. deckent_status

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


6. deckent_doctor

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


7. deckent_retro

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)


8. deckent_history

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


9. deckent_analyze_project

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


10. deckent_sync

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


5 MCP Resource Referansı

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

1. deckent://dashboard

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


2. deckent://directives

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


3. deckent://memory

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


4. deckent://debt

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


5. deckent://config

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


Tipik Kullanım Akışları

Akış 1: İlk Kurulum

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

Akış 2: Sprint Başlatma

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)

Akış 3: Sprint Takibi

Kullanıcı: "How's the sprint going?"
Claude:
  1. deckent_status()  → anlık durum
  2. deckent://dashboard resource → detaylı dashboard

Akış 4: Retrospektif ve Öğrenme

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

Akış 5: Sorun Giderme

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

Hata Durumları

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

Blueprint Referansları

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