Skip to main content
Glama
K-ulucay
by K-ulucay

https://dutyhub.net

DutyHub MCP Server

Claude'un (Claude Desktop / Claude Code) DutyHub üzerinde otomatik olarak proje açmasını, task eklemesini, task'ları Yapılacak → Devam Ediyor → Tamamlandı arasında taşımasını, sprint yönetmesini ve yorum bırakmasını sağlayan MCP server'ı.

DutyHub backend'i (ASP.NET Core / .NET 8, PostgreSQL) REST + JSON API'si üzerinden çalışır.


Kurulum

cd dutyhub-mcp
npm install
npm run build

Yapılandırma (env değişkenleri)

Server, bir servis hesabı ile email/şifre kullanarak login olur ve 7 günlük JWT alır. Token süresi dolunca otomatik yeniden login eder. DutyHub'da ayrı API-key sistemi yoktur.

Değişken

Zorunlu

Varsayılan

Açıklama

DUTYHUB_EMAIL

Servis hesabı email (örn. mcp-bot@dutyhub.net)

DUTYHUB_PASSWORD

Servis hesabı şifresi

DUTYHUB_BASE_URL

https://api.dutyhub.net/api

API kök adresi

DUTYHUB_DEVICE_ID

mcp-server-1

Cihaz kimliği

DUTYHUB_DEVICE_INFO

Claude MCP

Cihaz açıklaması

⚠️ Şifreyi koda yazmayın, sohbete yapıştırmayın. Sadece aşağıdaki config'in env bloğunda tutun.

Claude Desktop'a ekleme

claude_desktop_config.json dosyasına (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "dutyhub": {
      "command": "node",
      "args": ["/TAM/YOL/dutyhub-mcp/dist/index.js"],
      "env": {
        "DUTYHUB_EMAIL": "mcp-bot@dutyhub.net",
        "DUTYHUB_PASSWORD": "buraya-sifre"
      }
    }
  }
}

Claude Desktop'ı yeniden başlatın. Araçlar otomatik görünür.

Claude Code'a ekleme

claude mcp add dutyhub \
  --env DUTYHUB_EMAIL=mcp-bot@dutyhub.net \
  --env DUTYHUB_PASSWORD=buraya-sifre \
  -- node /TAM/YOL/dutyhub-mcp/dist/index.js

Araçlar (Tools)

Projeler

  • list_projects — erişilebilir projeleri listele

  • get_project — proje detayı

  • create_project — yeni proje (New Project)

Sprintler

  • list_sprints — projenin sprintleri

  • create_sprint — yeni sprint

  • start_sprint — başlat (→ active)

  • complete_sprint — tamamla (→ completed)

Task'lar

  • list_tasks — projenin task'ları (board sayımıyla birlikte; opsiyonel status filtresi)

  • create_task — yeni task (New Task)

  • update_task_statusYapılacak → Devam Ediyor → Tamamlandı + opsiyonel yorum

  • update_task — başlık/açıklama/öncelik/sprint/son tarih güncelle

  • delete_task — sil

Yorumlar

  • add_comment — task'a yorum bırak

  • list_comments — task'ın yorumları

Üyeler / Atama

  • list_project_members — proje üyeleri

  • assign_task — task'a kullanıcı ata


Örnek kullanım (Claude'a söyleyebilecekleriniz)

  • "DutyHub'da projelerimi listele."

  • "StormCorsairs projesine 'Ana menü müziği ekle' diye orta öncelikli bir task aç."

  • "Şu task'ı devam ediyor'a al."

  • "vfx setup task'ını tamamlandı yap ve 'Duman efektleri eklendi, test edildi' diye yorum bırak."

  • "Apex Empire için 'Sprint 2' adında yeni bir sprint oluştur ve başlat."


Önemli teknik notlar

  1. Status/priority normalizasyonu (kritik): DutyHub'da bu alanlar serbest metindir ve istemciler farklı değerler yazmıştır (pending/todo, completed/done, Active/in_progress vb.). Bu server yazarken ana uygulamanın kanonik değerlerini (pending/in_progress/completed, öncelik low/medium/high/urgent) gönderir; okurken tüm varyantları tek forma indirir. Türkçe girdiler (Yapılacak/Devam Ediyor/Tamamlandı, Düşük/Orta/Yüksek/Acil) de kabul edilir.

  2. Task güncelleme tam nesne ister: update_task_status ve update_task önce task'ı GET eder, alanı değiştirip tüm nesneyi PUT eder. title boş olamaz (backend 400 döner). Tamamlandı'ya alırken completed_at otomatik set edilir.

  3. Status filtresi server'da yok: list_tasks projeye göre çekip filtrelemeyi istemcide yapar.

  4. Tarihler ISO 8601 UTC: 2026-06-20 gibi yalın tarihler otomatik T00:00:00Z'ye çevrilir.

  5. Tek ortam production'dır. Denemeleri önce bir "Test" projesinde ve ayrı bir servis hesabıyla yapın.