Skip to main content
Glama

Dart MCP 서버

대장간 배지

Dart를 위한 MCP(Model Context Protocol) 서버 구현으로, MCP 도구를 통해 작업 관리, 문서 처리 및 작업 공간 구성 기능을 제공합니다.

필수 조건

  • Node.js 16.x 이상

  • Python 3.8 이상

  • Dart Python SDK 설치됨( pip install dart-sdk )

  • 유효한 Dart API 토큰

Related MCP server: Dart MCP Server

특징

  • 작업 관리

    • 작업 생성 및 업데이트

    • 작업 우선순위 및 상태 설정

    • 팀원들에게 작업 할당

  • 문서 관리

    • 문서 만들기 및 정리

    • 마크다운 콘텐츠 지원

    • 보고서 생성

  • 공간 관리

    • 작업 공간 만들기 및 관리

    • 폴더로 콘텐츠 정리

    • 액세스 권한 제어

  • 다트보드 통합

    • 기본 상태 관리

    • 작업 구성

    • 팀 협업

설치

Smithery를 통해 설치

Smithery 를 통해 Claude Desktop에 Dart MCP 서버를 자동으로 설치하려면:

지엑스피1

수동 설치

  1. 저장소를 복제합니다.

git clone https://github.com/jmanhype/dart-mcp-server.git
cd dart-mcp-server
  1. Node.js 종속성을 설치하세요.

npm install
  1. Python 환경을 설정하고 Dart SDK를 설치하세요.

# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install Dart SDK
pip install dart-sdk
  1. 환경 변수 설정:

# Copy example environment file
cp .env.example .env

# Edit .env with your configuration
# Required: DART_TOKEN
# Optional: PYTHONPATH (path to dart sdk)

용법

  1. TypeScript 코드를 작성합니다.

npm run build
  1. MCP 서버를 시작합니다.

npm start

개발

# Watch for TypeScript changes
npm run dev

# Run tests
npm test

환경 변수

다음 변수를 사용하여 .env 파일을 만듭니다.

# Required: Your Dart API token
DART_TOKEN=your_dart_token_here

# Optional: Path to your Dart SDK installation
PYTHONPATH=/path/to/dart/sdk

# Optional: Python executable path (defaults to system Python)
PYTHON_PATH=/path/to/python

사용 가능한 MCP 도구

  • create_task : 제목, 설명, 우선순위 등을 지정하여 새로운 작업을 만듭니다.

  • update_task : 기존 작업의 상태, 제목, 설명을 업데이트합니다.

  • get_default_status : 기본 상태 DUID 가져오기

  • get_default_space : 기본 공간 DUID 가져오기

  • get_dartboards : 사용 가능한 다트보드 목록

  • get_folders : 공간의 폴더 나열

  • create_folder : 새 폴더 생성

  • create_doc : 새 문서 또는 보고서 만들기

  • create_space : 새로운 작업공간을 생성합니다

  • delete_space : 기존 작업 공간 삭제

문제 해결

문제가 발생하는 경우:

  1. Python 환경 확인:

    python --version
    pip list | grep dart
  2. Dart SDK 설치 확인:

    python -c "import dart; print(dart.__version__)"
  3. 환경 변수를 확인하세요:

    echo $DART_TOKEN
    echo $PYTHONPATH

특허

MIT 라이센스

다트 도구

PyPI 지원 Python 버전 라이센스

Dart는 AI를 활용한 프로젝트 관리 솔루션입니다.

dart-tools Dart CLI 및 Python 라이브러리입니다. 터미널 CLI 또는 Python을 통해 Dart와 직접 통합할 수 있습니다.

  • 설치

  • CLI 사용

  • Python 라이브러리 사용

  • AWS Lambda 함수에서 Python 라이브러리 사용

  • MCP 서버 사용

  • 고급 사용법

  • 도움말 및 리소스

  • 기여하다

  • 특허

설치

터미널에서 다음을 실행하여 설치하세요.

pip install dart-tools

CLI 사용

인증을 설정하여 시작하세요.

dart login

그런 다음 다음과 같은 명령으로 새 작업을 만들 수 있습니다.

dart createtask "Update the landing page" -p0 --tag marketing

그러면 '랜딩 페이지 업데이트'라는 새 작업이 만들어지고 우선순위는 '중요'(즉, P0)이고 '마케팅' 태그가 붙습니다.

dart --help 또는 하위 명령에 대한 보다 구체적인 도움말(이 경우 dart createtask --help 사용하여 이러한 모든 옵션과 더 많은 옵션을 살펴볼 수 있습니다.

또 다른 일반적인 워크플로는 기존 작업을 업데이트하는 것입니다. 이를 위해 다음과 같은 명령을 실행하세요.

dart updatetask [DUID] -s Done

이 명령은 참조된 작업을 '완료'로 표시합니다. 여기서 [DUID] 기존 작업의 'Dart ID'로 대체해야 합니다(괄호 포함). 기존 작업에서 DUID를 가져오는 방법은 여러 가지가 있습니다. 작업 URL 끝부분에서 복사하거나 Dart 작업 페이지에서 '...' 버튼을 클릭한 후 'ID 복사'를 선택하면 됩니다.

Python 라이브러리 사용

먼저 인증을 설정하세요. 터미널에서 dart login 실행하여 대화형 프로세스를 실행하거나, Dart 프로필을 방문하여 dart.login(token) 실행하거나 토큰을 DART_TOKEN 환경 변수에 저장하세요.

그런 다음 다음과 같은 것을 실행할 수 있습니다.

import os
from dart import create_task, is_logged_in, update_task

# Check that auth is set up and stop if not, can remove this once everything is set up
is_logged_in(should_raise=True)

# Create a new task called 'Update the landing page' with priority 'Critical' (i.e. p0) and with the 'marketing' tag
new_task = create_task(
    "Update the landing page", priority_int=0, tag_titles=["marketing"]
)

# Update the task to be 'Done'
update_task(new_task.duid, status_title="Done")

MCP 서버 사용

모델 컨텍스트 프로토콜(MCP) 서버 구현은 클로드와 같은 AI 어시스턴트가 표준화된 도구를 통해 Dart와 상호 작용할 수 있도록 지원합니다. 이를 통해 AI 기능과 Dart 작업 관리 시스템의 원활한 통합이 가능합니다.

설치

# Clone the repository
git clone https://github.com/its-dart/dart-tools.git
cd dart-tools/dart/mcp

# Install dependencies
npm install

# Set up Python environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install dart-tools

# Configure environment
cp .env.example .env
# Edit .env with your DART_TOKEN

사용 가능한 MCP 도구

서버는 다음과 같은 MCP 도구를 제공합니다.

  • 작업 관리(작업 생성/업데이트)

  • 문서 관리(문서 생성/정리)

  • 공간 관리(작업 공간/폴더)

  • 다트보드 통합

자세한 내용은 MCP 서버 README를 참조하세요.

고급 사용법

Dart에서 할 수 있는 거의 모든 작업은 Python 라이브러리에서도 할 수 있지만, 모든 작업에 편리한 래퍼 함수가 있는 것은 아닙니다. 고급 기능을 사용하려면 저희에게 연락하시면 도와드리겠습니다.

하지만 직접 탐색해 보고 싶다면 클라이언트가 잘 작성되어 있으므로 코드를 살펴보며 어떤 기능이 가능한지 확인할 수 있습니다. 모든 업데이트는 dart.transact 함수를 통해 진행됩니다.

예를 들어 update_task 와 유사한 것을 실행할 수 있습니다.

from dart import (
    Dart,
    Operation,
    OperationKind,
    OperationModelKind,
    TaskUpdate,
    TransactionKind,
)

# Initialize the inner client
dart = Dart()

# Prepare the update operation
task_update = TaskUpdate(
    duid="[DUID]",
    size=5,
)
task_update_op = Operation(
    model=OperationModelKind.TASK,
    kind=OperationKind.UPDATE,
    data=task_update,
)

# Call the operation transactionally to perform the update
response = dart.transact([task_update_op], TransactionKind.TASK_UPDATE)

도움말 및 리소스

  • 홈페이지

  • 웹 앱

  • 도움말 센터

  • 버그 및 기능

  • 도서관 출처

  • Discord에서 채팅하기

  • support@itsdart.com 으로 이메일을 보내주세요.

기여하다

기여를 환영합니다! 이슈를 개설하거나 풀 리퀘스트를 제출해 주세요.

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다.

Available Tools

10 tools
create_docC

Create a new document or report

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_duidYesFolder DUID to create the document in
titleYesTitle of the document
textNoContent of the document
text_markdownNoMarkdown content of the document
report_kindNoKind of report (if creating a report)
editor_duidsNoList of editor DUIDs
subscriber_duidsNoList of subscriber DUIDs

TDQS

C2.9/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. 'Create a new document or report' implies a write/mutation operation but reveals nothing about permissions needed, whether creation is reversible, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 that states the core purpose without any fluff. It's appropriately sized and front-loaded, with every word earning its place. No structural issues or unnecessary elaboration.

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 7-parameter mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain the relationship between document vs. report creation, what happens when text vs. text_markdown is provided, or what the tool returns. The agent lacks critical context about this write operation's behavior and outcomes.

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%, so all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond the basic concept of 'document or report' creation. This meets the baseline of 3 when the schema does the heavy lifting, but the description doesn't compensate with any extra context about parameter relationships or usage.

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 action ('Create') and resource ('document or report'), making the purpose immediately understandable. However, it doesn't differentiate between creating documents versus reports or explain how this tool differs from sibling tools like create_folder or create_space, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like needing a folder DUID), when to choose document vs. report creation, or how this differs from sibling tools like create_folder or create_task. The agent must infer usage from parameters alone.

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

create_folderC

Create a new folder in a space

ParametersJSON Schema
NameRequiredDescriptionDefault
space_duidYesSpace DUID to create the folder in
titleYesTitle of the folder
descriptionNoDescription of the folder
kindNoKind of folderDefault

TDQS

C2.9/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 of behavioral disclosure. It states this is a creation operation but doesn't mention required permissions, whether it's idempotent, error conditions, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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 that states the core purpose without any unnecessary words. It's appropriately sized and front-loaded with the essential information.

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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation, what permissions are needed, or potential side effects. Given the complexity of creating resources and the lack of structured behavioral information, more context is needed.

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 schema has 100% description coverage, so all parameters are documented in the schema itself. The description doesn't add any additional meaning about parameters beyond what's already in the schema, which meets the baseline expectation when schema coverage is high.

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 action ('Create') and resource ('new folder in a space'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'create_doc' or 'create_space' beyond the resource type, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives like 'create_doc' or 'create_space', nor does it mention prerequisites or constraints. It simply states what the tool does without contextual usage information.

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

create_spaceC

Create a new space

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the space
descriptionNoDescription of the space
abrevNoShort abbreviation for the space
accessible_by_teamNoWhether the space is accessible by the whole team
accessible_by_user_duidsNoList of user DUIDs who can access the space
icon_kindNoKind of icon to useNone
icon_name_or_emojiNoIcon name or emoji character
color_hexNoColor in hex format (e.g. #FF0000)
sprint_modeNoSprint mode for the spaceNone
sprint_replicate_on_rolloverNoWhether to replicate sprints on rollover
sprint_name_fmtNoSprint name format

TDQS

C2.9/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. 'Create a new space' implies a mutation/write operation, but the description doesn't mention required permissions, whether this operation is idempotent, what happens on failure, or what the response contains. For a creation tool with 11 parameters and no annotation coverage, this is a significant gap in 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.

Conciseness5/5

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

The description is maximally concise at just three words. It's front-loaded with the essential action and resource, with zero wasted words. Every sentence (in this case, the single phrase) earns its place by communicating the core purpose efficiently.

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 complexity (11 parameters, creation operation) and absence of both annotations and output schema, the description is insufficiently complete. It doesn't explain what a 'space' is conceptually, what happens after creation, or provide any behavioral context. For a tool with this level of complexity and no structured safety/behavior annotations, the description should do more heavy lifting.

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%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter info in the description.

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 verb ('Create') and resource ('a new space'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling creation tools like create_doc, create_folder, or create_task, which all follow the same 'Create a new X' pattern without explaining what distinguishes a 'space' from those other resources.

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?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when to choose create_space over create_folder or create_doc, or any contextual constraints. The agent must infer usage from the tool name alone.

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

create_taskC

Create a new Dart task

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the task
descriptionYesDescription of the task
priorityNoPriority of the task
tagsNoTags for the task
sizeNoSize/complexity of the task (1-5)
assignee_duidsNoList of assignee DUIDs
subscriber_duidsNoList of subscriber DUIDs

TDQS

C2.9/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 of behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't address important behavioral aspects: whether this requires specific permissions, what happens on success/failure, whether the creation is immediate or queued, or what the response contains. For a mutation tool with zero annotation coverage, this is insufficient.

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 maximally concise - a single 4-word sentence that communicates the core purpose without any wasted words. It's front-loaded with the essential information and earns its place efficiently.

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 mutation tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what a 'Dart task' is, what happens after creation, whether there are side effects, or what the agent should expect as a result. The agent would need to guess about important behavioral aspects of this creation operation.

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 schema description coverage is 100%, with all 7 parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's already in the structured schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 verb ('Create') and resource ('Dart task'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'create_doc', 'create_folder', or 'create_space' - all of which create different types of resources in the same system.

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?

The description provides no guidance about when to use this tool versus alternatives. There's no mention of prerequisites, when to choose this over other creation tools, or any context about what constitutes a 'Dart task' versus other resource types. The agent must infer usage from the tool name alone.

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

delete_spaceB

Delete a space and all its contents

ParametersJSON Schema
NameRequiredDescriptionDefault
space_duidYesDUID of the space to delete

TDQS

B3.2/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 of behavioral disclosure. It states the tool deletes 'a space and all its contents,' which implies destructive behavior, but lacks details on permissions needed, whether deletion is reversible, confirmation prompts, or error conditions. The description adds minimal behavioral context beyond the basic action.

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 that front-loads the core action ('Delete a space') and adds critical scope ('and all its contents') without unnecessary words. Every part of the sentence earns its place by clarifying the tool's impact.

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 destructive tool with no annotations and no output schema, the description is incomplete. It lacks information on permissions, reversibility, success/error responses, or dependencies (e.g., cannot delete default spaces). Given the high-risk nature of deletion, more context is needed to guide safe 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 description coverage is 100%, with the single parameter 'space_duid' documented as 'DUID of the space to delete.' The description does not add any additional meaning beyond what the schema provides, such as format examples or validation rules, so it meets the baseline for high schema coverage.

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 specific action ('Delete') and resource ('a space and all its contents'), distinguishing it from sibling tools like create_space, update_task, or get_folders. It precisely communicates the destructive nature of the operation beyond just the space itself.

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 or prerequisites for deletion. While the destructive nature is implied, there's no explicit mention of when-not conditions (e.g., irreversible, requires permissions) or alternatives like archiving instead of deleting.

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

get_dartboardsC

Get available dartboards

ParametersJSON Schema
NameRequiredDescriptionDefault
space_duidYesSpace DUID to get dartboards from

TDQS

C2.9/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 of behavioral disclosure. 'Get available dartboards' implies a read-only operation, but it doesn't specify what 'available' means (e.g., accessible vs. all), whether it requires authentication, rate limits, pagination, or the return format. This leaves significant gaps for a tool with no annotation coverage.

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 zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place without redundancy.

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 complexity (a read operation with one required parameter), no annotations, and no output schema, the description is incomplete. It doesn't explain what 'available' entails, the return structure, or error conditions. For a tool with minimal structured data, more context is needed to guide the agent effectively.

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 schema description coverage is 100%, with the single parameter 'space_duid' documented as 'Space DUID to get dartboards from'. The description adds no additional parameter semantics beyond implying that dartboards are retrieved from a space. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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 'Get available dartboards' clearly states the verb 'Get' and resource 'dartboards', making the purpose understandable. However, it doesn't distinguish this tool from potential siblings like 'get_folders' or 'get_default_space' beyond the resource name, and the term 'available' adds some specificity but could be more precise.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a space DUID), exclusions, or how it differs from other 'get' tools in the sibling list. The agent must infer usage from the parameter alone.

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

get_default_spaceB

Get the default space DUID

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states this is a 'Get' operation (implying read-only), but doesn't clarify whether this requires authentication, has rate limits, returns structured data or just an ID, or what happens if no default space exists. The description is minimal and lacks important operational context.

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 that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple zero-parameter retrieval tool and is perfectly front-loaded with the core functionality.

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 no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'DUID' means, what format the return value takes, whether this is a simple ID or full object, or error conditions. The agent lacks critical information to use this tool effectively despite its simplicity.

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?

The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist, earning a baseline score of 4 for not adding unnecessary information.

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 action ('Get') and the resource ('default space DUID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_folders' or 'get_dartboards' beyond the specific resource type, and 'DUID' might be an unfamiliar term to some agents.

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?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this should be called versus other 'get_' tools, or what context makes it appropriate. The agent must infer usage from the tool name alone.

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

get_default_statusC

Get the default status DUIDs

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/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 the full burden. It states 'Get' implies a read operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, error handling, or what the output looks like (e.g., format, structure). This leaves significant gaps for a tool with no annotation coverage.

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, efficient sentence with no wasted words. It's front-loaded with the core purpose, though it could be slightly more informative without sacrificing brevity.

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 no annotations and no output schema, the description is incomplete. It lacks details on what 'default status DUIDs' are, how they're used, or what the return value includes, making it inadequate for a tool that likely returns data without further context.

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?

The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The description doesn't add parameter semantics, but that's appropriate here, warranting a baseline score above minimum viable.

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

Purpose3/5

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

The description states the action ('Get') and the resource ('default status DUIDs'), but it's vague about what 'default status DUIDs' are or what this tool specifically does with them. It doesn't distinguish from siblings like 'get_default_space' or 'get_dartboards' beyond the resource name.

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. It doesn't mention prerequisites, context, or exclusions, and with siblings like 'get_default_space', there's no indication of how this differs or when one should be chosen over the other.

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

get_foldersC

Get available folders

ParametersJSON Schema
NameRequiredDescriptionDefault
space_duidYesSpace DUID to get folders from

TDQS

C2.6/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 for behavioral disclosure. 'Get available folders' implies a read operation, but it doesn't specify permissions needed, whether it returns all folders or a subset, pagination behavior, or error conditions. The description lacks critical behavioral context for a tool with no annotation support.

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 extremely concise at three words, which is appropriately sized for a simple retrieval tool. It's front-loaded with the core action, though it could benefit from slightly more detail to improve clarity without sacrificing efficiency.

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 no annotations and no output schema, the description is incomplete for a tool that likely returns folder data. It doesn't explain what 'available' means, what data is returned, or how results are structured. For a retrieval tool with zero structured support, the description should provide more context about behavior and outputs.

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%, with the single parameter 'space_duid' documented in the schema as 'Space DUID to get folders from'. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for adequate but minimal value.

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

Purpose3/5

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

The description 'Get available folders' states a clear verb ('Get') and resource ('folders'), but it's vague about scope and doesn't distinguish from potential siblings. It doesn't specify whether this retrieves all folders, user-accessible folders, or folders with specific characteristics, leaving the purpose somewhat ambiguous.

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?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'create_folder' and 'get_dartboards', there's no indication of whether this is for listing folders versus creating them, or how it relates to other retrieval tools. No context about prerequisites or exclusions is mentioned.

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

update_taskC

Update an existing task

ParametersJSON Schema
NameRequiredDescriptionDefault
duidYesDUID of the task to update
status_duidNoNew status DUID
titleNoNew title for the task
descriptionNoNew description for the task
priorityNoNew priority for the task

TDQS

C2.7/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 of behavioral disclosure. 'Update an existing task' implies a mutation operation but doesn't specify permissions needed, whether changes are reversible, error handling, or response format. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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's appropriately sized and front-loaded, making it easy to parse quickly without unnecessary elaboration.

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 tool's complexity (a mutation operation with 5 parameters), lack of annotations, and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like side effects, error conditions, or return values, leaving critical gaps for the agent to understand the tool fully.

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 has 100% description coverage, documenting all 5 parameters clearly with descriptions and an enum for 'priority'. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline score of 3 for high schema coverage.

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

Purpose3/5

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

The description 'Update an existing task' clearly states the verb ('update') and resource ('task'), making the basic purpose understandable. However, it doesn't differentiate from potential sibling tools like 'create_task' or provide any specificity about what aspects of a task can be updated, making it somewhat vague.

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?

The description provides no guidance on when to use this tool versus alternatives like 'create_task' or other update-related tools that might exist. There's no mention of prerequisites, context, or exclusions, leaving the agent with minimal usage direction.

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. 10 tool updates
    • First observedcreate_doc
    • First observedcreate_folder
    • First observedcreate_space
    • First observedcreate_task
    • First observeddelete_space
    • First observedget_dartboards
    • First observedget_default_space
    • First observedget_default_status
    • First observedget_folders
    • First observedupdate_task

TDQS

B3.2/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes focused on different resources (documents, folders, spaces, tasks, dartboards), but 'create_doc' and 'create_folder' could be confused if a document is stored in a folder, though their descriptions clarify separate actions. No direct functional overlap exists between other tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., create_doc, get_dartboards, update_task). The naming is predictable and uniform across all 10 tools, making it easy for agents to understand the action and target.

Tool Count5/5

With 10 tools, the count is well-scoped for a Dart MCP server, covering core operations like creation, retrieval, update, and deletion. Each tool appears to serve a specific purpose without redundancy, fitting typical server scope of 3-15 tools.

Completeness3/5

The toolset covers creation and retrieval for documents, folders, spaces, and tasks, with update for tasks and delete for spaces, but lacks update/delete for documents and folders, and retrieval for tasks and documents. This creates notable gaps in CRUD coverage, though agents might work around them with available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    A distributable Model Context Protocol (MCP) server that exposes Dart SDK commands for AI-powered development. This server bridges the gap between AI coding assistants and Dart/Flutter development workflows by implementing the Model Context Protocol (MCP).
    10
    21 npm
    6
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server for Dart AI task management that enables bulk operations using DartQL selectors to minimize token usage and context rot. It provides tools for batch updates, task and document CRUD, and safe CSV imports with integrated dry-run capabilities.
    25
    25 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for task management that enables AI agents to read, create, update tasks, and track work sessions, allowing agents and humans to collaborate on the same task board.
    5 npm
    9
    MIT