DutyHub MCP Server
This server allows Claude to automate comprehensive project and task lifecycle management on the DutyHub platform.
Project Management
List all projects you have access to
Get details of a specific project
Create new projects with name, description, status, dates, and visibility settings
Sprint Management
List sprints within a project
Create new sprints with goals, dates, and status
Start a sprint (transition to active)
Complete/close a sprint (transition to completed)
Task Management
List tasks in a project with optional status filtering (pending / in_progress / completed)
Create tasks with title, description, priority, type (epic/story/task/subtask/bug), sprint, due date, and parent task
Update task status — move tasks through To Do → In Progress → Done, optionally with a comment
Update task fields — modify title, description, priority, sprint assignment, or due date
Delete tasks
Comment Management
Add a comment to a task
List comments on a task
Members & Assignment
List project members to find user IDs
Assign a task to a specific user
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DutyHub MCP ServerCreate a high priority task in the Test project called 'Fix login bug'."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildRelated 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 |
| ✅ | — | 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.
Available Tools
16 toolsadd_commentA
Bir task'a (veya başka bir varlığa) yorum ekler. Durum değiştirmeden sadece yorum bırakmak için.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Yorum bırakılacak varlığın UUID'si (genelde task id) | |
| comment_text | Yes | Yorum metni | |
| entity_type | No | Varlık tipi. Varsayılan: task |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| user_id | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| sprint_id | Yes |
TDQS
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.
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.
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.
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.
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.
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').
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Proje adı | |
| description | No | Açıklama | |
| status | No | Durum (Active/On Hold/Completed/Planning). Varsayılan: Active | |
| start_date | No | Başlangıç tarihi (YYYY-MM-DD veya ISO) | |
| end_date | No | Bitiş tarihi (YYYY-MM-DD veya ISO) | |
| visibility | No | Görünürlük. Varsayılan: private |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| name | Yes | ||
| goal | No | ||
| start_date | No | YYYY-MM-DD veya ISO | |
| end_date | No | YYYY-MM-DD veya ISO | |
| status | No | planned/active/completed. Varsayılan: planned |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Proje UUID (zorunlu) | |
| title | Yes | Task başlığı (zorunlu, boş olamaz) | |
| description | No | ||
| status | No | Başlangıç durumu. Varsayılan: pending (Yapılacak) | |
| priority | No | low/medium/high/urgent. Varsayılan: medium | |
| due_date | No | Son tarih (YYYY-MM-DD veya ISO) | |
| sprint_id | No | Opsiyonel sprint UUID | |
| task_type | No | Varsayılan: task | |
| parent_task_id | No | Alt-task için üst task UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Proje UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Task UUID | |
| entity_type | No | Varsayılan: task |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Proje UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Proje UUID | |
| status_filter | No | Opsiyonel: pending | in_progress | completed (TR girdiler de kabul edilir) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| sprint_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| title | No | ||
| description | No | ||
| priority | No | ||
| due_date | No | ||
| sprint_id | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task UUID | |
| status | Yes | Yeni durum: pending | in_progress | completed (TR girdiler de kabul edilir) | |
| comment | No | Opsiyonel: durum değişimiyle birlikte task'a bırakılacak yorum |
TDQS
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.
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.
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.
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.
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.
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.
16 tool updates
v1.0.0- First observed
add_comment - First observed
assign_task - First observed
complete_sprint - First observed
create_project - First observed
create_sprint - First observed
create_task - First observed
delete_task - First observed
get_project - First observed
list_comments - First observed
list_project_members - First observed
list_projects - First observed
list_sprints - First observed
list_tasks - First observed
start_sprint - First observed
update_task - First observed
update_task_status
TDQS
Scored across 16 tools
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.
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.
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.
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
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
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Create projects, nodes, and tasks in UluP Spaces by conversation with Claude.
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Related MCP Servers
- AlicenseCqualityDmaintenanceConnects Jira with Claude, enabling users to search issues, view issue details, update issues, add comments, and retrieve project information through natural language commands.1481MIT
- FlicenseNot gradedqualityCmaintenanceEnables Claude Code to query, create, and modify Dooray tasks via natural language.-
- AlicenseAqualityDmaintenanceEnables natural language management of ClickUp workspaces, including task CRUD operations, task listing, and user profile retrieval via Claude Desktop.61MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to interact with Jira for project management tasks, including issue creation, updates, workflow transitions, and bulk operations.304MIT