返回市场
dart-mcp服务器

dart-mcp服务器

作者:jmanhype5 星标更新:2025-11-05

项目介绍

Dart MCP Server

smithery 徽章

这是一个用 Dart 实现的 Model Context Protocol (MCP) 服务器,通过 MCP 工具提供任务管理、文档处理和工作区组织能力。

<a href="https://glama.ai/mcp/servers/2pdqgspm4q"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=556791167,1780469353&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Dart Server MCP 服务器" /> </a>

预备条件

  • Node.js 16.x 或更高版本
  • Python 3.8 或更高版本
  • 安装 Dart Python SDK (pip install dart-sdk)
  • 有效的 Dart API 令牌

功能

  • 任务管理
    • 创建和更新任务
    • 设置任务优先级和状态
    • 分配任务给团队成员
  • 文档管理
    • 创建和组织文档
    • 支持 Markdown 内容
    • 报告生成
  • 空间管理
    • 创建和管理工作区
    • 使用文件夹组织内容
    • 控制访问权限
  • Dartboard 集成
    • 默认状态管理
    • 任务组织
    • 团队协作

安装

通过 Smithery 安装

要通过 Smithery 自动安装 Dart MCP Server 到 Claude Desktop:

npx -y @smithery/cli install @jmanhype/dart-mcp-server --client claude

手动安装

  1. 克隆仓库:
git clone https://github.com/jmanhype/dart-mcp-server.git
cd dart-mcp-server
  1. 安装 Node.js 依赖项:
npm install
  1. 设置 Python 环境并安装 Dart SDK:
# 创建并激活虚拟环境
python -m venv .venv
source .venv/bin/activate  # 在 Windows 上:.venv\Scripts\activate

# 安装 Dart SDK
pip install dart-sdk
  1. 设置环境变量:
# 复制示例环境文件
cp .env.example .env

# 编辑 .env 文件以进行配置
# 必需:DART_TOKEN
# 可选:PYTHONPATH(指向 dart sdk 的路径)

使用方法

  1. 构建 TypeScript 代码:
npm run build
  1. 启动 MCP 服务器:
npm start

开发

# 监视 TypeScript 更改
npm run dev

# 运行测试
npm test

环境变量

创建一个包含以下变量的 .env 文件:

# 必需:您的 Dart API 令牌
DART_TOKEN=your_dart_token_here

# 可选:Dart SDK 安装路径
PYTHONPATH=/path/to/dart/sdk

# 可选:Python 可执行文件路径(默认为系统 Python)
PYTHON_PATH=/path/to/python

可用的 MCP 工具

  • create_task: 创建新任务,包括标题、描述、优先级等。
  • update_task: 更新现有任务的状态、标题、描述。
  • get_default_status: 获取默认状态 DUIDs。
  • get_default_space: 获取默认空间 DUID。
  • get_dartboards: 列出可用的 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 许可证

Dart 工具

PyPI 支持的 Python 版本 许可证

Dart 是由人工智能驱动的项目管理工具。

dart-tools 是 Dart 命令行界面和 Python 库。它允许通过终端 CLI 或 Python 直接与 Dart 集成。

  • 安装
  • 使用 CLI
  • 使用 Python 库
  • 在 AWS Lambda 函数中使用 Python 库
  • 使用 MCP 服务器
  • 高级用法
  • 帮助和资源
  • 贡献
  • 许可证

安装

在终端中运行以下命令进行安装:

pip install dart-tools

使用 CLI

首先设置身份验证:

dart login

然后,您可以使用类似以下命令创建新任务:

dart createtask "更新登录页面" -p0 --tag 营销

这将创建一个名为“更新登录页面”的任务,其优先级为“关键”(即 P0),并且带有“营销”标签。

您可以通过 dart --help 或更具体的子命令帮助(例如 dart createtask --help)来探索所有这些选项和其他更多选项。

另一个常见的工作流程是更新已存在的任务。为此,可以运行类似以下命令:

dart updatetask [DUID] -s 完成

此命令将标记引用的任务为“完成”。这里的 [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

# 检查认证是否设置,并在未设置时停止,一旦一切就绪即可移除此检查
is_logged_in(should_raise=True)

# 创建一个名为“更新登录页面”的任务,其优先级为“关键”(即 p0),并且带有“营销”标签
new_task = create_task(
    "更新登录页面", priority_int=0, tag_titles=["营销"]
)

# 将任务状态更新为“完成”
update_task(new_task.duid, status_title="完成")

使用 MCP 服务器

Model Context Protocol (MCP) 服务器实现使 AI 助手(如 Claude)能够通过标准化工具与 Dart 进行交互。这使得 AI 功能可以无缝集成到 Dart 的任务管理系统中。

安装

# 克隆仓库
git clone https://github.com/its-dart/dart-tools.git
cd dart-tools/dart/mcp

# 安装依赖项
npm install

# 设置 Python 环境
python -m venv .venv
source .venv/bin/activate  # 在 Windows 上:.venv\Scripts\activate
pip install dart-tools

# 配置环境
cp .env.example .env
# 编辑 .env 文件以添加您的 DART_TOKEN

可用的 MCP 工具

服务器提供了这些 MCP 工具:

  • 任务管理(创建/更新任务)
  • 文档管理(创建/组织文档)
  • 空间管理(工作区/文件夹)
  • Dartboard 集成

有关详细文档,请参阅 MCP 服务器 README

高级用法

几乎可以在 Dart 中完成的操作都可以通过 Python 库完成,但并非所有操作都有方便的封装函数。对于大多数高级用法,最好的做法是联系我们,我们会提供帮助。

然而,如果您想自行探索,客户端是强类型化的,因此您可以简单地浏览代码以了解可能的功能。所有更新都将通过 dart.transact 函数进行。

例如,您可以运行类似于 update_task 的操作:

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

# 初始化内部客户端
dart = Dart()

# 准备更新操作
task_update = TaskUpdate(
    duid="[DUID]",
    size=5,
)
task_update_op = Operation(
    model=OperationModelKind.TASK,
    kind=OperationKind.UPDATE,
    data=task_update,
)

# 事务性调用操作以执行更新
response = dart.transact([task_update_op], TransactionKind.TASK_UPDATE)

帮助和资源

  • 主页
  • Web 应用
  • 帮助中心
  • Bug 和功能请求
  • 库源码
  • Discord 聊天
  • 发送邮件至 support@itsdart.com

贡献

欢迎贡献!请打开一个问题或提交一个拉取请求。

许可证

本项目采用 MIT 许可证。