Installation and Setup
Prerequisites
Section titled “Prerequisites”- Node.js 18+ (for npx or global install)
- A Dart AI account at dartai.com
- An MCP-compatible client (Claude Desktop, Claude Code, Cursor, or any MCP host)
Step 1: Get Your Dart AI Token
Section titled “Step 1: Get Your Dart AI Token”- Go to Dart AI Settings
- Copy your API token (starts with
dsa_) - Keep it handy for the next step
Step 2: Install dart-query
Section titled “Step 2: Install dart-query”Choose one of three methods depending on your setup.
Option A: npx (Recommended)
Section titled “Option A: npx (Recommended)”No global install needed. Add this to your MCP client configuration:
{ "mcpServers": { "dart-query": { "command": "npx", "args": ["-y", "@standardbeagle/dart-query"], "env": { "DART_TOKEN": "dsa_your_token_here" } } }}Where to put this file:
- Claude Desktop:
~/.config/claude/claude_desktop_config.json(Linux/Mac) or%APPDATA%\Claude\claude_desktop_config.json(Windows) - Claude Code:
~/.claude/mcp.jsonor project-level.mcp.json - Cursor: Settings > MCP Servers
Option B: Global npm Install
Section titled “Option B: Global npm Install”npm install -g @standardbeagle/dart-queryThen configure your MCP client to use the dart-query command directly:
{ "mcpServers": { "dart-query": { "command": "dart-query", "env": { "DART_TOKEN": "dsa_your_token_here" } } }}Option C: SLOP-MCP Registration
Section titled “Option C: SLOP-MCP Registration”If you use slop-mcp to manage your MCP servers:
slop register dart-query \ --command npx \ --args "-y" "@standardbeagle/dart-query" \ --env DART_TOKEN=dsa_your_token_here \ --scope userStep 3: Verify the Connection
Section titled “Step 3: Verify the Connection”After configuring your MCP client, restart it and run:
info({ level: "overview" })You should see a summary of your Dart AI workspace including available dartboards, statuses, and tool categories.
Step 4: Run Your First Batch Operation
Section titled “Step 4: Run Your First Batch Operation”Try a dry-run batch update to see dart-query in action without changing anything:
// Preview: find and start all high-priority tasks on a dartboardexecute_dartql({ query: "UPDATE WHERE dartboard = 'My Project' AND priority = 4 SET status = 'Doing'", dry_run: true})The response shows exactly which tasks would be affected and what would change. When you are ready, set dry_run: false to execute.
Environment Variable Reference
Section titled “Environment Variable Reference”| Variable | Required | Description |
|---|---|---|
DART_TOKEN | Yes | Your Dart AI API token (starts with dsa_) |
Next Steps
Section titled “Next Steps”- DartQL Syntax — learn the full selector language
- Batch Operations — update and delete tasks in bulk
- CSV Import — bulk-create tasks from spreadsheets
- Task Management — single-task CRUD operations