DutyHub MCP Server
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 buildYapı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 |
| ✅ | — | Servis hesabı email (örn. |
| ✅ | — | Servis hesabı şifresi |
| — |
| API kök adresi |
| — |
| Cihaz kimliği |
| — |
| Cihaz açıklaması |
⚠️ Şifreyi koda yazmayın, sohbete yapıştırmayın. Sadece aşağıdaki config'in
envbloğ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.jsAraçlar (Tools)
Projeler
list_projects— erişilebilir projeleri listeleget_project— proje detayıcreate_project— yeni proje (New Project)
Sprintler
list_sprints— projenin sprintlericreate_sprint— yeni sprintstart_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_status— Yapılacak → Devam Ediyor → Tamamlandı + opsiyonel yorumupdate_task— başlık/açıklama/öncelik/sprint/son tarih güncelledelete_task— sil
Yorumlar
add_comment— task'a yorum bıraklist_comments— task'ın yorumları
Üyeler / Atama
list_project_members— proje üyeleriassign_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
Status/priority normalizasyonu (kritik): DutyHub'da bu alanlar serbest metindir ve istemciler farklı değerler yazmıştır (
pending/todo,completed/done,Active/in_progressvb.). Bu server yazarken ana uygulamanın kanonik değerlerini (pending/in_progress/completed, önceliklow/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.Task güncelleme tam nesne ister:
update_task_statusveupdate_taskönce task'ı GET eder, alanı değiştirip tüm nesneyi PUT eder.titleboş olamaz (backend 400 döner). Tamamlandı'ya alırkencompleted_atotomatik set edilir.Status filtresi server'da yok:
list_tasksprojeye göre çekip filtrelemeyi istemcide yapar.Tarihler ISO 8601 UTC:
2026-06-20gibi yalın tarihler otomatikT00:00:00Z'ye çevrilir.Tek ortam production'dır. Denemeleri önce bir "Test" projesinde ve ayrı bir servis hesabıyla yapın.