# Dart — how to use (mcp.ai)

The ultimate AI project management tool.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_dart?ms=1781542140000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `dart_add_task_comment`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/dart`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/dart/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/dart/add/task/comment` — Tool to create a new comment on a DART task. Use when you need to add feedback, notes, or discussion to a specific task. Supports markdown formatting and threaded replies via parentId.
  - body: { text: string, task_id: string, parent_id?: string }
- `POST https://api.mcp.ai/api/dart/add/task/time/tracking` — Tool to add a time tracking entry to a DART task. Use when you need to record time spent on a specific task. The finishedAt timestamp must be after startedAt.
  - body: { id: string, user?: string, startedAt: string, finishedAt: string }
- `POST https://api.mcp.ai/api/dart/create/doc` — Tool to create a new doc in Dart. Use when you need to record a new document that the user intends to write down. By default, the created doc will be in the Docs folder unless a specific folder is spe
  - body: { item: object }
- `POST https://api.mcp.ai/api/dart/create/task` — Tool to create a new task in DART with title and optional metadata. Use when you need to add a task to a workspace.
  - body: { item: object }
- `POST https://api.mcp.ai/api/dart/delete/doc` — Tool to move an existing doc to the trash where it can be recovered if needed. Use when you need to delete a doc without permanently removing it.
  - body: { id: string }
- `POST https://api.mcp.ai/api/dart/delete/task` — Tool to delete an existing task in Dart by moving it to trash. Use when a task needs to be removed but can be recovered later.
  - body: { id: string }
- `POST https://api.mcp.ai/api/dart/get/config` — Tool to retrieve workspace configuration including dartboards, folders, types, statuses, and more. Use when you need to understand available options in the workspace.
- `POST https://api.mcp.ai/api/dart/get/doc` — Tool to retrieve an existing doc with metadata and content. Use when you need to access a specific document's details including title, folder, and text content.
  - body: { id: string }
- `POST https://api.mcp.ai/api/dart/get/task` — Tool to retrieve an existing task with full details including title, dartboard, status, and description. Use when you need to fetch complete information about a specific task.
  - body: { id: string }
- `POST https://api.mcp.ai/api/dart/list/comments` — Tool to list comments for a task with filtering options. Use when you need to retrieve comments on a specific task. Supports filtering by author, text content, date range, and pagination. Can be order
  - body: { o?: string[], ids?: string, text?: string, limit?: integer, author?: string, offset?: integer, task_id: string, author_id?: string, parent_id?: string, published_at?: string, published_at_after?: string, published_at_before?: string }
- `POST https://api.mcp.ai/api/dart/list/help/center/articles` — Tool to search help center articles by semantic similarity to query. Use when you need to find relevant help articles based on a short search query (1-5 words). Returns up to two most relevant article
  - body: { query: string }
- `POST https://api.mcp.ai/api/dart/list/tasks` — Tool to list tasks with powerful filtering options. Use when you need to retrieve tasks from DART with filters like dartboard, status, assignee, tags, priority, dates, or completion state. Supports pa
  - body: { o?: string[], ids?: string, tag?: string, size?: integer, type?: string, view?: string, limit?: integer, title?: string, due_at?: string, offset?: integer, status?: string, tag_id?: string, type_id?: string, view_id?: string, assignee?: string, in_trash?: boolean, priority?: string, start_at?: string, dartboard?: string, parent_id?: string, status_id?: string, created_at?: string, created_by?: string, updated_at?: string, updated_by?: string, assignee_id?: string, description?: string, no_defaults?: boolean, dartboard_id?: string, due_at_after?: string, is_completed?: boolean, created_by_id?: string, due_at_before?: string, updated_by_id?: string, start_at_after?: string, start_at_before?: string, created_at_after?: string, updated_at_after?: string, created_at_before?: string, updated_at_before?: string }
- `POST https://api.mcp.ai/api/dart/move/task` — Tool to move a task to a specific position within its dartboard. Use when you need to reorder tasks in a list. Specify either afterTaskId or beforeTaskId to position the task.
  - body: { id: string, afterTaskId?: string, beforeTaskId?: string }
- `POST https://api.mcp.ai/api/dart/retrieve/skill/by/title` — Tool to retrieve a skill by its exact title from the workspace. Use when you need to find details about a specific skill including its ID and instructions.
  - body: { title: string }
- `POST https://api.mcp.ai/api/dart/update/doc` — Tool to update an existing doc in Dart. Use when you need to modify a document's title, folder location, or content. Any properties not specified will remain unchanged.
  - body: { item: object }
- `POST https://api.mcp.ai/api/dart/update/task` — Tool to update an existing task in DART with new properties. Use when you need to modify a task's title, status, assignees, or other attributes. Only properties specified in the request will be update
  - body: { item: object }

## More
- Page: https://mcp.ai/dart
- Agent spec (llms.txt): https://mcp.ai/dart/llms.txt
- Postman collection: https://mcp.ai/dart/postman.json
