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

Related MCP server: Dooray MCP Server

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.


Available Tools

16 tools
add_commentA

Bir task'a (veya başka bir varlığa) yorum ekler. Durum değiştirmeden sadece yorum bırakmak için.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesYorum bırakılacak varlığın UUID'si (genelde task id)
comment_textYesYorum metni
entity_typeNoVarlık tipi. Varsayılan: task

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description only mentions no status change, but lacks disclosure of other behavioral traits like permissions required, notification effects, or comment history integration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences with no redundancy, front-loading the core action and adding a key nuance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple add-comment tool, the description covers purpose and critical nuance, though it lacks return value info. Still reasonably complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; the description adds no additional meaning beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it adds a comment to a task or entity, and specifies it does not change status, distinguishing it from sibling tools like update_task_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for adding comments without status change, but does not explicitly mention when to avoid using it or compare with alternatives like update_task for combined operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assign_taskC

Bir task'a bir kullanıcı atar (task_assignee). Atama ayrı tabloda tutulur.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
user_idYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The only behavioral detail is that assignment is stored in a separate table. Missing: whether it overwrites existing assignments, triggers notifications, or requires specific permissions. With no annotations, the description carries the full burden but provides minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with front-loaded purpose. Efficient, but could be improved by adding usage context without increasing length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so the description should explain return values or side effects. It does not. For a simple two-parameter tool, it still feels incomplete: missing error cases, success behavior, and any confirmation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain what task_id and user_id represent (e.g., format, scope). Both are required but their meaning is left to inference. The description adds no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: assign a user to a task (verb 'atar' + direct object 'kullanıcı' + indirect object 'task'). It distinguishes from sibling tools like add_comment or create_task by specifying the assignment concept.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. There is no mention of prerequisites (e.g., user must be a member) or exclusions. Sibling tools exist but no differentiation provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

complete_sprintB

Sprinti tamamlar/kapatır (status → completed).

ParametersJSON Schema
NameRequiredDescriptionDefault
sprint_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool changes sprint status to 'completed', which is a basic behavioral trait. However, with no annotations, it does not cover permissions, reversibility, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, highly concise. It could benefit from slightly more structure but avoids verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple action with one parameter, the description is minimally adequate. However, it lacks usage context and parameter details, making it incomplete for an informed tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain the sprint_id parameter beyond its role as identifier. With 0% schema description coverage and no elaboration, the agent gets no added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool completes/closes a sprint and changes its status to 'completed'. This distinguishes it from sibling tools like start_sprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., update_task_status), nor any prerequisites like requiring the sprint to be in a certain state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectB

Yeni bir DutyHub projesi oluşturur (UI'daki 'New Project').

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProje adı
descriptionNoAçıklama
statusNoDurum (Active/On Hold/Completed/Planning). Varsayılan: Active
start_dateNoBaşlangıç tarihi (YYYY-MM-DD veya ISO)
end_dateNoBitiş tarihi (YYYY-MM-DD veya ISO)
visibilityNoGörünürlük. Varsayılan: private

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the tool creates a project, omitting details such as authentication requirements, side effects (e.g., duplicate name handling), or whether changes are reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the core action. It is well-structured and front-loaded, though slightly more detail could be added without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 100% schema coverage, the description lacks critical context such as return values, error handling, or behavioral details. For a creation tool with six parameters, more completeness is needed for effective agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-level context, resulting in baseline adequacy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new DutyHub project and references the UI equivalent, making the purpose clear. However, it does not explicitly differentiate from sibling creation tools like create_task or create_sprint, but the resource name itself provides adequate distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating projects via the name and UI reference, but it offers no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sprintC

Bir projede yeni sprint oluşturur.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
nameYes
goalNo
start_dateNoYYYY-MM-DD veya ISO
end_dateNoYYYY-MM-DD veya ISO
statusNoplanned/active/completed. Varsayılan: planned

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavioral traits. It only states the action ('creates') without mentioning side effects, permissions, error conditions, or return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. However, it is in Turkish, which may reduce accessibility for non-Turkish agents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, no output schema, and no annotations, the description is too minimal. It lacks context about return values, prerequisites, or behavior for parameter validation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (3 of 6 params have descriptions), but the tool description adds no parameter information. It does not compensate for the undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new sprint in a project, using a specific verb and resource. It distinguishes from siblings like 'complete_sprint' and 'start_sprint', but could be more precise about the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskB

Bir projeye yeni task ekler ('New Task'). project_id ve title zorunludur.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProje UUID (zorunlu)
titleYesTask başlığı (zorunlu, boş olamaz)
descriptionNo
statusNoBaşlangıç durumu. Varsayılan: pending (Yapılacak)
priorityNolow/medium/high/urgent. Varsayılan: medium
due_dateNoSon tarih (YYYY-MM-DD veya ISO)
sprint_idNoOpsiyonel sprint UUID
task_typeNoVarsayılan: task
parent_task_idNoAlt-task için üst task UUID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only states the basic write operation, omitting behavioral traits such as authorization requirements, rate limits, or side effects like ID generation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no extraneous words; the critical information (action and required fields) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters and no output schema, the description is too sparse. It fails to explain return values (e.g., created task ID), validation rules, or relationships to sprints/parent tasks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (89%), so the baseline is 3. The description repeats that project_id and title are mandatory (already in schema) but adds no extra meaning for other parameters like status, priority, or due_date.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('adds a new task') and the target resource ('to a project'), with required fields noted, effectively distinguishing it from siblings like update_task or delete_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when creating a task) but provides no explicit guidance on when not to use or alternatives among the 15 sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_taskC

Bir task'ı siler.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It does not disclose whether deletion is permanent, requires permissions, or cascades to related data. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence), which is concise but under-specified. It lacks necessary details to be fully useful, so conciseness is not a virtue here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 param, no output schema, no annotations), the description is minimal. It fails to provide completeness by omitting behavioral context and parameter semantics, leaving the agent with little actionable information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning about the 'task_id' parameter. It does not mention format, source, or validation, leaving the agent with no guidance beyond the schema's type declaration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Bir task'ı siler' clearly indicates the action (delete) and resource (task), distinguishing it from sibling tools like create_task or update_task. However, it lacks specificity about scope or nuances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as update_task_status or complete_sprint. No conditions, prerequisites, or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectB

Tek bir projenin detayını getirir.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProje UUID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a read-only, non-destructive operation, which is sufficient. No annotations are provided, and the description does not disclose additional behavioral traits such as error handling or permissions, but the tool is simple.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words, efficiently conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one parameter, no output schema), the description adequately covers the tool's function. However, it could mention the return type or expected output for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the single parameter (project_id as string UUID). The description adds no additional semantic information about the parameter beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves details of a single project, using a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'list_projects', though the implication is evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like list_projects. The description lacks context for appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_commentsC

Bir task'ın (varlığın) yorumlarını listeler.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesTask UUID
entity_typeNoVarsayılan: task

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description discloses only the basic function of listing comments. It fails to state whether the operation is read-only, if authentication is required, or what happens on invalid input, offering minimal transparency beyond the action itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no superfluous words. While efficient, it could be slightly more detailed without losing conciseness, such as mentioning the return format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool, the description is adequate but incomplete. It does not mention ordering, pagination, or what comment data is returned. Without an output schema, more contextual details would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds no new meaning beyond what the schema already provides (e.g., entity_type default). Baseline score of 3 is appropriate since the description does not enhance understanding of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists comments for a task or entity, using the verb 'list' and identifying the resource. While in Turkish, it is unambiguous and distinguishes from sibling tools like add_comment and list_tasks, though it does not explicitly differentiate from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as add_comment or list_tasks. There is no mention of prerequisites, context, or exclusions, leaving the agent without situational advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_membersA

Bir projenin üyelerini listeler (task atamak için user_id bulmak amacıyla).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool lists members, implicitly a read-only operation, but does not explicitly confirm non-destructive behavior or mention any side effects, auth needs, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys purpose and usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and no output schema, the description is largely sufficient. It provides the key use case, though missing details on output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage for the single parameter project_id. The description does not add any details about the parameter beyond its obvious purpose, leaving the agent to infer formatting or constraints from the name alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'list' and resource 'project members', and adds a clear use case: 'to find user_id for task assignment'. This distinguishes it from other list tools like list_tasks or list_comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: to find user_id for task assignment. This implies a prerequisite for assign_task, but does not provide explicit exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsA

Kullanıcının erişebildiği tüm DutyHub projelerini listeler. Task eklemeden önce doğru project_id'yi bulmak için kullanın.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states the tool lists accessible projects, implying no destructive side effects. However, it does not disclose any authentication requirements, rate limits, or pagination behavior. For a simple read operation with no params, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The purpose is front-loaded and the usage is appended concisely. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the tool is simple: returns a list of projects. The description provides the context of use (finding project_id) which completes the picture. For a no-parameter, read-only list tool, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has zero parameters, and schema coverage is 100%. The description adds value by explaining the purpose of the list (finding project_id), which is a useful semantic above what the empty schema provides. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Lists all DutyHub projects accessible by the user' and ties it to a specific use case (finding project_id). This distinguishes it from sibling tools like get_project and other CRUD tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to find the correct project_id before adding a task' which gives clear context. No exclusions or alternatives mentioned, but the guidance is sufficient for this simple tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sprintsB

Bir projenin sprintlerini listeler.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProje UUID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as pagination, ordering, error handling, or whether only active sprints are listed. For a read operation, more context would be helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It is appropriately front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate. However, it lacks details on output format or potential errors, which would be useful for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the only parameter 'project_id' has a description). The tool description adds no additional meaning beyond the schema, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists sprints for a project, using a specific verb and resource. However, it lacks specificity about the scope (e.g., all or active sprints) compared to high-caliber examples.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool or alternatives. While it is the only sprint-listing tool among siblings, there are related tools like create_sprint or complete_sprint, but no differentiation is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA

Bir projenin task'larını listeler. Server-side status filtresi olmadığı için istemci tarafında filtreleriz. status_filter verilirse (pending/in_progress/completed) sadece o durumdakiler döner.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProje UUID
status_filterNoOpsiyonel: pending | in_progress | completed (TR girdiler de kabul edilir)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that filtering is client-side and that Turkish inputs are accepted for status_filter. However, missing details on pagination, ordering, and return format, which are important for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with main action, no redundant words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple list tool, but lacks description of return values. No output schema, so the description should cover what is returned. Missing pagination/ordering details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds value beyond schema by explaining client-side filtering and language flexibility for status_filter. Schema already documents parameters, so extra context is useful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists tasks for a project, which distinguishes it from sibling tools like list_projects or list_comments. The optional filtering adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., list_comments, get_project). Usage is implied by the resource type but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_sprintC

Sprinti başlatır (status → active).

ParametersJSON Schema
NameRequiredDescriptionDefault
sprint_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. Only states status change to active; lacks details on prerequisites (e.g., sprint must be planned), side effects, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence). Front-loaded but lacks substantive information. Could be expanded with minimal additional text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 1 parameter and no output schema or annotations, the description is incomplete. Missing details on return value, error conditions, and proper usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description does not explain the 'sprint_id' parameter beyond implying it identifies the sprint. No added meaning over schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (start sprint) and the result (status becomes active). It distinguishes from sibling 'complete_sprint' which likely sets status to completed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like complete_sprint or create_sprint. No mention of prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskA

Bir task'ın alanlarını günceller (başlık, açıklama, öncelik, sprint, son tarih). Sadece verilen alanlar değişir; gerisi korunur.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
titleNo
descriptionNo
priorityNo
due_dateNo
sprint_idNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the update is partial (only given fields change). However, it does not mention required permissions, authentication, rate limits, error handling, or what happens if the task_id is invalid. For a mutation tool, this is minimal but acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences. The first sentence states the action and fields, the second clarifies the partial update behavior. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and a key behavioral trait. However, it lacks information on return values (no output schema), error handling, and required authentication. Also, the language is Turkish, which may affect usability for a multilingual agent. Given the complexity of 6 parameters and no annotations, the description is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists the fields that can be updated (başlık, açıklama, öncelik, sprint, son tarih), mapping to the parameter names. However, it does not explain expected formats (e.g., priority as string, due_date as date string) or any constraints. With 0% schema coverage, the description adds minimal meaning beyond the schema's raw names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'günceller' (updates) and resource 'task'ın alanlarını' (task fields). It lists specific fields (başlık, açıklama, öncelik, sprint, son tarih) in parentheses, differentiating it from sibling tools like update_task_status which only updates status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating 'Sadece verilen alanlar değişir; gerisi korunur' (Only given fields change; the rest are preserved). This guides the agent to provide only the fields to update. However, it does not explicitly state when not to use this tool or mention alternatives like update_task_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_task_statusA

Bir task'ın durumunu değiştirir (Yapılacak → Devam Ediyor → Tamamlandı). Backend tam nesne beklediği için önce task'ı çeker, status'u günceller, gerekirse yorum ekler. 'completed' yapılırken completed_at otomatik set edilir.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask UUID
statusYesYeni durum: pending | in_progress | completed (TR girdiler de kabul edilir)
commentNoOpsiyonel: durum değişimiyle birlikte task'a bırakılacak yorum

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the workflow (pulls task, updates status, adds comment) and auto-set behavior. However, it does not mention authorization needs, error handling, or whether it returns the updated task, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three succinct sentences: main purpose, workflow, and one key behavior (auto-set completed_at). No fluff, front-loaded with the primary action, each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and moderate complexity, the description covers purpose, workflow, parameter nuances, and a key behavioral detail. It lacks error handling notes but is fairly complete for a single-purpose tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description adds value by explaining the workflow context (pulls task first) and clarifying that Turkish inputs are accepted for status, plus the auto-set behavior for completed_at, which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool changes task status (Yapılacak → Devam Ediyor → Tamamlandı) and distinguishes it from siblings like update_task by specializing in status transitions. It also mentions the automatic completed_at setting, adding specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for status changes but does not explicitly state when not to use it (e.g., for other updates use update_task) or provide exclusions. The usage context is implied but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 16 tool updatesv1.0.0
    • First observedadd_comment
    • First observedassign_task
    • First observedcomplete_sprint
    • First observedcreate_project
    • First observedcreate_sprint
    • First observedcreate_task
    • First observeddelete_task
    • First observedget_project
    • First observedlist_comments
    • First observedlist_project_members
    • First observedlist_projects
    • First observedlist_sprints
    • First observedlist_tasks
    • First observedstart_sprint
    • First observedupdate_task
    • First observedupdate_task_status

TDQS

B3.4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct action on a specific entity (project, sprint, task, comment) with clear boundaries. For example, update_task and update_task_status are separate because they modify different aspects. No overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_project, list_tasks, start_sprint). Verbs are imperative and nouns are plural for lists, singular for single items.

Tool Count5/5

16 tools cover the core operations for project, sprint, task, and comment management. The count is well-scoped for a domain-specific server, not excessive or insufficient.

Completeness3/5

Tasks have full CRUD (create, update, delete, list) plus status updates, but projects and sprints lack update and delete tools. Comments only have add and list, no delete. These gaps are notable but not severe.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers