
jmanhype/dart-mcp-server
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
A Model Context Protocol server implementation for Dart task management system
Обзор
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. 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. If this fails, the MCP server will not be able to execute any tools. Each tool handler builds a Python script as a string, spawns python3 -c " ", and parses the JSON output. The Python process has a 120-second timeout. - Every tool call spawns a new Python process (no persistent connection to Dart API) - The .env path is hardcoded to /Users/speed/dart-tools/.
README
Показан фрагмент оригинального README. Открыть оригинал.
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 "", 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
.envpath is hardcoded to/Users/speed/dart-tools/.envin the source - No input validation beyond what the Dart SDK provides
- No pagination support for list operations
Установка
npx -y @smithery/cli install @jmanhype/dart-mcp-server --client claude