这是一个用 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>pip install dart-sdk)要通过 Smithery 自动安装 Dart MCP Server 到 Claude Desktop:
npx -y @smithery/cli install @jmanhype/dart-mcp-server --client claude
git clone https://github.com/jmanhype/dart-mcp-server.git
cd dart-mcp-server
npm install
# 创建并激活虚拟环境
python -m venv .venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
# 安装 Dart SDK
pip install dart-sdk
# 复制示例环境文件
cp .env.example .env
# 编辑 .env 文件以进行配置
# 必需:DART_TOKEN
# 可选:PYTHONPATH(指向 dart sdk 的路径)
npm run build
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
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: 删除现有的工作区。如果您遇到问题:
验证 Python 环境:
python --version
pip list | grep dart
检查 Dart SDK 安装:
python -c "import dart; print(dart.__version__)"
验证环境变量:
echo $DART_TOKEN
echo $PYTHONPATH
MIT 许可证
PyPI 支持的 Python 版本 许可证
Dart 是由人工智能驱动的项目管理工具。
dart-tools 是 Dart 命令行界面和 Python 库。它允许通过终端 CLI 或 Python 直接与 Dart 集成。
在终端中运行以下命令进行安装:
pip install dart-tools
首先设置身份验证:
dart login
然后,您可以使用类似以下命令创建新任务:
dart createtask "更新登录页面" -p0 --tag 营销
这将创建一个名为“更新登录页面”的任务,其优先级为“关键”(即 P0),并且带有“营销”标签。
您可以通过 dart --help 或更具体的子命令帮助(例如 dart createtask --help)来探索所有这些选项和其他更多选项。
另一个常见的工作流程是更新已存在的任务。为此,可以运行类似以下命令:
dart updatetask [DUID] -s 完成
此命令将标记引用的任务为“完成”。这里的 [DUID] 应替换为现有任务的“Dart ID”,包括方括号。您可以通过多种方式获取现有任务的 DUID,例如从任务 URL 的末尾复制它,或者在 Dart 中点击任务页面上的“...”按钮,然后选择“复制 ID”。
首先设置身份验证。在终端中运行 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="完成")
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 服务器 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)
欢迎贡献!请打开一个问题或提交一个拉取请求。
本项目采用 MIT 许可证。