Dart
About
Integrates with the Dart task management system to enable AI-driven project organization, document handling, and workflow automation through secure API interactions and Dartboard feature integration.
Details
- Author
- jmanhype
- Repository
- jmanhype/dart-mcp-server
- GitHub stars
- 3
- License
- MIT License
- Categories
- Productivity, Developer Tools, Design, Workplace, File Management, AI, Automation, API, Infrastructure
- Tags
- #integration
Jump to
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
DartCommand (node, npx, python, etc.)nodeArguments-
Argument 1
index.js
Environment-
DART_TOKEN
DART_TOKEN -
PYTHONPATH
PYTHONPATH -
PYTHON_PATH
PYTHON_PATH
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
| Variable | Required | Description |
|----------|----------|-------------|
| DART_TOKEN | Yes | Dart API token (get from your Dart profile) |
| PYTHONPATH | No | Path to Dart SDK if not in default location |
| PYTHON_PATH | No | Path to Python executable (defaults to system Python) |
python -c "import dart; print(dart.__version__)"
If this fails, the MCP server will not be able to execute any tools.
create_task
Create a task with title, description, priority, status, assignees, tags.
update_task
Update an existing task's status, title, or description by DUID.
get_default_status
Return default status DUIDs for a dartboard.
get_default_space
Return the default space DUID.
get_dartboards
List available dartboards.
get_folders
List folders in a space.
create_folder
Create a new folder.
create_doc
Create a document or report.
create_space
Create a new workspace.
delete_space
Delete a workspace by DUID.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"dart": {
"env": {
"DART_TOKEN": "DART_TOKEN",
"PYTHONPATH": "PYTHONPATH",
"PYTHON_PATH": "PYTHON_PATH"
},
"args": [
"index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"DART_TOKEN": "DART_TOKEN",
"PYTHONPATH": "PYTHONPATH",
"PYTHON_PATH": "PYTHON_PATH"
},
"args": [
"index.js"
],
"command": "node"
}
Macos
{
"env": {
"DART_TOKEN": "DART_TOKEN",
"PYTHONPATH": "PYTHONPATH",
"PYTHON_PATH": "PYTHON_PATH"
},
"args": [
"index.js"
],
"command": "node"
}
Windows
{
"env": {
"DART_TOKEN": "DART_TOKEN",
"PYTHONPATH": "PYTHONPATH",
"PYTHON_PATH": "PYTHON_PATH"
},
"args": [
"index.js"
],
"command": "node"
}
dart-mcp-server
MCP server that bridges the Dart project management platform to AI assistants. The server is TypeScript but delegates all Dart API calls to a Python subprocess using the dart-sdk package.
What It Does
Exposes Dart's task management, document, space, and dartboard operations as MCP tools. Each tool call spawns a Python process that imports dart-sdk, executes the operation, and returns JSON results over stdout. Communicates with MCP clients over stdio.
Status
| Area | State |
|------|-------|
| MCP transport | stdio |
| Language | TypeScript (server) + Python (Dart SDK calls) |
| MCP SDK | @modelcontextprotocol/sdk ^1.5.0 |
| Dart SDK | dart-sdk (pip, called via subprocess) |
| Node.js | >= 16.0.0 |
| Python | >= 3.8.0 |
| License | MIT |
MCP Tools
| Tool | What It Does |
|------|-------------|
| create_task | Create a task with title, description, priority, status, assignees, tags |
| update_task | Update an existing task's status, title, or description by DUID |
| get_default_status | Return default status DUIDs for a dartboard |
| get_default_space | Return the default space DUID |
| get_dartboards | List available dartboards |
| get_folders | List folders in a space |
| create_folder | Create a new folder |
| create_doc | Create a document or report |
| create_space | Create a new workspace |
| delete_space | Delete a workspace by DUID |
Setup
Via Smithery
npx -y @smithery/cli install @jmanhype/dart-mcp-server --client claude
Manual
git clone https://github.com/jmanhype/dart-mcp-server.git
cd dart-mcp-server
npm install # also runs postinstall: creates .venv and pip installs dart-sdk
npm run build
npm start
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| DART_TOKEN | Yes | Dart API token (get from your Dart profile) |
| PYTHONPATH | No | Path to Dart SDK if not in default location |
| PYTHON_PATH | No | Path to Python executable (defaults to system Python) |
Verifying the Python Environment
python -c "import dart; print(dart.__version__)"
If this fails, the MCP server will not be able to execute any tools.
Architecture
src/
index.ts — MCP server, tool handlers, Python subprocess management
test.ts — Basic test runner
Each tool handler builds a Python script as a string, spawns python3 -c "<script>", and parses the JSON output. The Python process has a 120-second timeout.
Limitations
- Every tool call spawns a new Python process (no persistent connection to Dart API)
- The .env path is hardcoded to /Users/speed/dart-tools/.env in the source
- No input validation beyond what the Dart SDK provides
- No pagination support for list operations
- Error messages from the Python subprocess are passed through as-is
- The postinstall script creates a virtualenv, which may fail in some CI environments
Dependencies
| Package | Version | Purpose |
|---------|---------|---------|
| @modelcontextprotocol/sdk | ^1.5.0 | MCP server protocol |
| dotenv | ^16.4.7 | Environment variable loading |
| typescript | ^5.3.3 | Build toolchain |
| dart-sdk | (pip) | Python client for Dart API |
License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





