### Local Development Setup for Dart MCP Server Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Steps for setting up the Dart MCP Server for local development, including environment variable configuration, dependency installation, and launching the MCP Inspector for debugging. ```bash # 1. Copy and fill environment variables cp .env.example .env # Set DART_TOKEN=dsa_... in .env # 2. Install dependencies and build yarn install && yarn build # 3. Launch MCP Inspector for interactive debugging yarn start:mcp-inspector # Open http://127.0.0.1:6274 and click Connect ``` -------------------------------- ### Create task prompt Source: https://context7.com/its-dart/dart-mcp-server/llms.txt A pre-built prompt that guides an AI assistant to create a Dart task with standard fields. ```APIDOC ## Create task ### Description A pre-built prompt that guides an AI assistant to create a Dart task with standard fields. The AI fills in missing fields based on context. ### Method `client.getPrompt` ### Arguments - **title** (string) - Required - The title of the task. - **description** (string) - Optional - The description of the task. - **status** (string) - Optional - The status of the task (e.g., "Todo", "In Progress"). - **priority** (string) - Optional - The priority of the task (e.g., "High", "Medium"). - **assignee** (string) - Optional - The email address of the assignee. ### Request Example ```typescript const prompt = await client.getPrompt({ name: "Create task", arguments: { title: "Add dark mode support", description: "Support system and manual dark mode toggle in the web app.", status: "Todo", priority: "Medium", assignee: "jane@example.com", }, }); console.log(prompt.messages[0].content.text); ``` ### Response - **messages** (array) - An array of messages, where each message contains the AI-generated prompt content. ``` -------------------------------- ### Configure Docker MCP Server Source: https://github.com/its-dart/dart-mcp-server/blob/main/README.md Use this configuration for setting up the Dart MCP server with Docker. Ensure Docker is installed and the image is built. Replace 'dsa...' with your actual Dart authentication token. ```json { "mcpServers": { "Dart": { "command": "bash", "args": [ "-c", "docker rm -f dart-mcp >/dev/null 2>&1 || true; docker run -i --rm --name dart-mcp -e DART_TOKEN mcp/dart" ], "env": { "DART_TOKEN": "dsa_..." } } } } ``` -------------------------------- ### Create Task Prompt with TypeScript Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Requests a pre-built prompt to guide an AI assistant in creating a Dart task with standard fields. The AI will fill in missing fields based on context. ```typescript // MCP get prompt request const prompt = await client.getPrompt({ name: "Create task", arguments: { title: "Add dark mode support", description: "Support system and manual dark mode toggle in the web app.", status: "Todo", priority: "Medium", assignee: "jane@example.com", }, }); // Returns a user message: // "Create a new task in Dart with the following details: // Title: Add dark mode support // Description: Support system and manual dark mode toggle in the web app. // Status: Todo // Priority: Medium // Assignee: jane@example.com" console.log(prompt.messages[0].content.text); ``` -------------------------------- ### Get Dartboard - Dart MCP Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches a dartboard (project or task list container) including its title, description, and all tasks within it. The `id` parameter is required. ```typescript // MCP tool call const result = await client.callTool({ name: "get_dartboard", arguments: { id: "jK7tC9kJuW5s" }, }); const dartboard = JSON.parse(result.content[0].text); console.log(dartboard.title); // "Backend Sprint" console.log(dartboard.tasks.length); // number of tasks in the dartboard ``` -------------------------------- ### Get Document - Dart MCP Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches all details for a specific document using its 12-character alphanumeric ID. The `id` parameter is required. ```typescript // MCP tool call const result = await client.callTool({ name: "get_doc", arguments: { id: "7hRkM2sNpL4b" }, }); const doc = JSON.parse(result.content[0].text); console.log(doc.title); // "Rate Limiting Design Spec" console.log(doc.text); // Full markdown content console.log(doc.folder.title); // "Engineering Docs" ``` -------------------------------- ### Configure Local MCP Server for Claude Desktop Source: https://github.com/its-dart/dart-mcp-server/blob/main/admin/README.md Add this configuration to your 'claude_desktop_config.json' to use the local dart-mcp-server build with Claude Desktop. Ensure you replace '' with the actual path to your project. ```json { "mcpServers": { "dart": { "command": "node", "args": ["/dart-mcp-server/dist/index.js"], "env": { "DART_TOKEN": "dsa_...", "DART_HOST": "http://localhost:5100" } } } } ``` -------------------------------- ### Create doc prompt Source: https://context7.com/its-dart/dart-mcp-server/llms.txt A pre-built prompt for creating a Dart document. The AI uses the provided context to populate title, content, and target folder. ```APIDOC ## Create doc ### Description A pre-built prompt for creating a Dart document. The AI uses the provided context to populate title, content, and target folder. ### Method `client.getPrompt` ### Arguments - **title** (string) - Required - The title of the document. - **text** (string) - Required - The content of the document. - **folder** (string) - Required - The name of the target folder for the document. ### Request Example ```typescript const prompt = await client.getPrompt({ name: "Create doc", arguments: { title: "Dark Mode Implementation Plan", text: "## Approach\nUse CSS custom properties with a `data-theme` attribute on ``.", folder: "Engineering Docs", }, }); console.log(prompt.messages[0].content.text); ``` ### Response - **messages** (array) - An array of messages, where each message contains the AI-generated prompt content. ``` -------------------------------- ### get_config Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches all possible values for the authenticated user's workspace configuration. This includes valid statuses, dartboards, assignees, and custom property names. It's recommended to call this first to understand available options before creating or updating tasks. ```APIDOC ## `get_config` — Fetch workspace configuration ### Description Returns all possible values for the authenticated user's space. Always call this first to discover valid statuses, dartboards, assignees, and custom property names before creating or updating tasks. ### Method `callTool` ### Arguments `name`: "get_config" `arguments`: {} ### Response Example ```json { "statuses": [ { "id": "cD4wZ8lKrT2v", "title": "Todo" }, { "id": "eF5vA7jHsU3q", "title": "In Progress" }, { "id": "gH6uB8iItV4r", "title": "Done" } ], "dartboards": [{ "id": "jK7tC9kJuW5s", "title": "Backend Sprint" }], "priorities": ["Critical", "High", "Medium", "Low"], "customPropertyDefinitions": [{ "name": "storyPoints", "type": "number" }] } ``` ``` -------------------------------- ### Fetch Workspace Configuration Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Call this first to discover valid statuses, dartboards, assignees, and custom property names before creating or updating tasks. ```typescript const result = await client.callTool({ name: "get_config", arguments: {} }); // Expected output: // { // "statuses": [ // { "id": "cD4wZ8lKrT2v", "title": "Todo" }, // { "id": "eF5vA7jHsU3q", "title": "In Progress" }, // { "id": "gH6uB8iItV4r", "title": "Done" } // ], // "dartboards": [{ "id": "jK7tC9kJuW5s", "title": "Backend Sprint" }], // "priorities": ["Critical", "High", "Medium", "Low"], // "customPropertyDefinitions": [{ "name": "storyPoints", "type": "number" }] // } console.log(JSON.parse(result.content[0].text)); ``` -------------------------------- ### Create Document Prompt with TypeScript Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Requests a pre-built prompt for creating a Dart document. The AI uses the provided context to populate title, content, and target folder. ```typescript // MCP get prompt request const prompt = await client.getPrompt({ name: "Create doc", arguments: { title: "Dark Mode Implementation Plan", text: "## Approach\nUse CSS custom properties with a `data-theme` attribute on ``.", folder: "Engineering Docs", }, }); // Returns a user message: // "Create a new document in Dart with the following details: // Title: Dark Mode Implementation Plan // Content: ## Approach\nUse CSS custom properties... // Folder: Engineering Docs" console.log(prompt.messages[0].content.text); ``` -------------------------------- ### Build Dart MCP Server Docker Image Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Build the Docker image for the Dart MCP Server. This command should be run once before deploying or running the server in a Docker container. ```bash # Build the image once docker build -t mcp/dart . ``` -------------------------------- ### create_doc Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Creates a new Dart document with a title, optional text content, and an optional folder assignment. ```APIDOC ## create_doc — Create a new document Creates a Dart document with a title, optional markdown text content, and an optional folder assignment. ### Method POST (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **title** (string) - Required - The title of the document. - **text** (string) - Optional - The markdown text content of the document. - **folder** (string) - Optional - The name of the folder to assign the document to. ### Request Example ```typescript // MCP tool call const result = await client.callTool({ name: "create_doc", arguments: { title: "Rate Limiting Design Spec", text: "# Rate Limiting Design\n\n## Algorithm\nToken-bucket with refill rate of 100 tokens/min per IP.\n\n## Endpoints affected\n- `POST /api/*`\n- `GET /api/search`", folder: "Engineering Docs", }, }); ``` ### Response #### Success Response Returns an object containing the ID and title of the newly created document. #### Response Example ```json { "id": "7hRkM2sNpL4b", "title": "Rate Limiting Design Spec" } ``` ``` -------------------------------- ### Summarize Tasks Prompt with TypeScript Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Requests a pre-built prompt that instructs the AI to summarize tasks grouped by status, with optional filtering. Use this for automated standup summaries. ```typescript // MCP get prompt request const prompt = await client.getPrompt({ name: "Summarize tasks", arguments: { status: "In Progress", assignee: "jane@example.com", }, }); // Returns a user message: // "Summarize the tasks in Dart with status "In Progress" assigned to jane@example.com. // Please include the total count, group by status, and list any high priority items." console.log(prompt.messages[0].content.text); ``` -------------------------------- ### Summarize tasks prompt Source: https://context7.com/its-dart/dart-mcp-server/llms.txt A pre-built prompt that instructs the AI to summarize tasks grouped by status, with optional filtering. ```APIDOC ## Summarize tasks ### Description A pre-built prompt that instructs the AI to summarize tasks grouped by status, with optional filtering. ### Method `client.getPrompt` ### Arguments - **status** (string) - Optional - Filters tasks by status (e.g., "In Progress"). - **assignee** (string) - Optional - Filters tasks by assignee's email address. ### Request Example ```typescript const prompt = await client.getPrompt({ name: "Summarize tasks", arguments: { status: "In Progress", assignee: "jane@example.com", }, }); console.log(prompt.messages[0].content.text); ``` ### Response - **messages** (array) - An array of messages, where each message contains the AI-generated prompt content. ``` -------------------------------- ### get_dartboard Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches a dartboard (project or task list container) by ID, including its title, description, and all associated tasks. ```APIDOC ## get_dartboard — Retrieve a dartboard by ID Fetches a dartboard (Dart's term for a project or task list container) including its title, description, and all tasks within it. ### Method GET (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **id** (string) - Required - The ID of the dartboard to retrieve. ### Request Example ```typescript // MCP tool call const result = await client.callTool({ name: "get_dartboard", arguments: { id: "jK7tC9kJuW5s" }, }); ``` ### Response #### Success Response Returns a JSON object containing the dartboard's details, including its title and a list of tasks. #### Response Example ```json { "title": "Backend Sprint", "description": "Tasks for the current backend sprint.", "tasks": [ { "id": "task1", "title": "Implement API endpoint" }, { "id": "task2", "title": "Write unit tests" } ] } ``` ``` -------------------------------- ### Create a New Task Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Creates a task with a required title and optional properties including description, status, priority, assignees, tags, dates, dartboard, parent task, custom properties, and task relationships. ```typescript const result = await client.callTool({ name: "create_task", arguments: { title: "Implement rate limiting on API endpoints", description: "## Goal\nAdd token-bucket rate limiting to all public REST endpoints.\n\n**Acceptance criteria:**\n- 100 req/min per IP\n- Returns 429 with Retry-After header", status: "In Progress", priority: "High", dartboard: "Backend Sprint", assignees: ["jane@example.com", "bob@example.com"], tags: ["security", "performance"], size: 5, startAt: "2025-07-01T09:00:00Z", dueAt: "2025-07-15T09:00:00Z", customProperties: { storyPoints: 8, team: "Backend", }, taskRelationships: { blockerIds: ["aB3xY9mNpQ1z"], relatedIds: ["cD4wZ8lKrT2v"], }, }, }); // Returns the created task object as JSON const task = JSON.parse(result.content[0].text); console.log(task.id); // e.g. "mN8pR3sToU2v" ``` -------------------------------- ### Configure npx MCP Server Source: https://github.com/its-dart/dart-mcp-server/blob/main/README.md Add this configuration to your MCP settings file to set up the Dart MCP server using npx. Replace 'dsa...' with your actual Dart authentication token. ```json { "mcpServers": { "Dart": { "command": "npx", "args": ["-y", "dart-mcp-server@latest"], "env": { "DART_TOKEN": "dsa_..." } } } } ``` -------------------------------- ### list_docs Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Lists documents with optional filtering by folder, title, text content, and sorting/pagination. ```APIDOC ## list_docs — List and filter documents Lists documents with optional filtering by folder, title, text content, and sorting/pagination. ### Method GET (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **folder** (string) - Optional - Filters documents by folder name. - **s** (string) - Optional - Performs a full-text search across title and text content. - **o** (array of strings) - Optional - Specifies sorting order. Prefix with '-' for descending (e.g., `["-updated_at"]`). - **limit** (integer) - Optional - The maximum number of documents to return. - **offset** (integer) - Optional - The number of documents to skip for pagination. ### Request Example ```typescript // MCP tool call — search for docs in a folder, sorted by latest update const result = await client.callTool({ name: "list_docs", arguments: { folder: "Engineering Docs", s: "rate limiting", // full-text search across title + text o: ["-updated_at"], // descending by updated_at limit: 10, offset: 0, }, }); ``` ### Response #### Success Response Returns a JSON object containing a list of documents (`results`) and the total count (`count`). #### Response Example ```json { "results": [ { "id": "7hRkM2sNpL4b", "title": "Rate Limiting Design Spec", ... } ], "count": 1 } ``` ``` -------------------------------- ### create_task Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Creates a new task with a required title and various optional properties such as description, status, priority, assignees, tags, dates, dartboard, parent task, custom properties, and task relationships. ```APIDOC ## `create_task` — Create a new task ### Description Creates a task with a required title and optional properties including description, status, priority, assignees, tags, dates, dartboard, parent task, custom properties, and task relationships. ### Method `callTool` ### Arguments `name`: "create_task" `arguments`: { `title`: "string" (required) - The title of the task. `description`: "string" (optional) - A detailed description of the task. `status`: "string" (optional) - The current status of the task (e.g., "In Progress"). `priority`: "string" (optional) - The priority level of the task (e.g., "High"). `dartboard`: "string" (optional) - The dartboard the task belongs to. `assignees`: ["string"] (optional) - A list of email addresses for assignees. `tags`: ["string"] (optional) - A list of tags associated with the task. `size`: "number" (optional) - Estimated size or effort for the task. `startAt`: "string" (optional) - The start date/time for the task (ISO 8601 format). `dueAt`: "string" (optional) - The due date/time for the task (ISO 8601 format). `customProperties`: { [key: string]: any } (optional) - A key-value map for custom task properties. `taskRelationships`: { `blockerIds`: ["string"] (optional) - IDs of tasks that block this task. `relatedIds`: ["string"] (optional) - IDs of related tasks. `parentIds`: ["string"] (optional) - IDs of parent tasks. `subtaskIds`: ["string"] (optional) - IDs of subtasks. } (optional) - Defines relationships with other tasks. } ### Response Example ```json { "id": "mN8pR3sToU2v", "title": "Implement rate limiting on API endpoints", "description": "## Goal\nAdd token-bucket rate limiting to all public REST endpoints.\n\n**Acceptance criteria:**\n- 100 req/min per IP\n- Returns 429 with Retry-After header", "status": { "id": "eF5vA7jHsU3q", "title": "In Progress" }, "priority": "High", "dartboard": { "id": "jK7tC9kJuW5s", "title": "Backend Sprint" }, "assignees": [{ "email": "jane@example.com" }, { "email": "bob@example.com" }], "tags": ["security", "performance"], "size": 5, "startAt": "2025-07-01T09:00:00Z", "dueAt": "2025-07-15T09:00:00Z", "customProperties": { "storyPoints": 8, "team": "Backend" }, "taskRelationships": { "blockerIds": ["aB3xY9mNpQ1z"], "relatedIds": ["cD4wZ8lKrT2v"] } } ``` ``` -------------------------------- ### get_folder Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Retrieves a folder by its ID, including its title, description, and contained documents. ```APIDOC ## get_folder ### Description Fetches a document folder by its ID, including its title, description, and contained documents. ### Method `client.callTool` ### Arguments - **id** (string) - Required - The ID of the folder to retrieve. ### Request Example ```typescript const result = await client.callTool({ name: "get_folder", arguments: { id: "xZ1cV6dWqE9t" }, }); const folder = JSON.parse(result.content[0].text); console.log(folder.title); console.log(folder.docs.length); ``` ### Response - **title** (string) - The title of the folder. - **description** (string) - The description of the folder. - **docs** (array) - An array of documents contained within the folder. ``` -------------------------------- ### Read Dart Workspace Configuration Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Use the MCP client to read the 'dart-config:' resource, which fetches all available workspace configuration values. This is useful before creating or updating tasks to discover valid options. ```typescript // MCP resource read request const response = await client.readResource({ uri: "dart-config:" }); // Returns JSON with shape: // { // "user": { "id": "aB3xY9mNpQ1z", "email": "user@example.com", "name": "Jane Doe" }, // "statuses": [{ "id": "cD4wZ8lKrT2v", "title": "In Progress" }, ...], // "priorities": ["Critical", "High", "Medium", "Low"], // "dartboards": [{ "id": "eF5vA7jHsU3q", "title": "Sprint 42" }], // "customPropertyDefinitions": [ // { "name": "storyPoints", "type": "number" }, // { "name": "team", "type": "select", "options": ["Frontend", "Backend"] } // ] // } console.log(JSON.parse(response.contents[0].text)); ``` -------------------------------- ### Add Dart MCP Server with Claude Code Source: https://github.com/its-dart/dart-mcp-server/blob/main/README.md Use this command to add the Dart MCP server when using Claude Code. Replace 'dsa...' with your actual Dart token. ```bash claude mcp add dart -e DART_TOKEN=dsa_... -- npx -y dart-mcp-server@latest ``` -------------------------------- ### Create Document - Dart MCP Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Creates a Dart document with a title, optional markdown text content, and an optional folder assignment. The `title` is mandatory, while `text` and `folder` are optional. ```typescript // MCP tool call const result = await client.callTool({ name: "create_doc", arguments: { title: "Rate Limiting Design Spec", text: "# Rate Limiting Design\n\n## Algorithm\nToken-bucket with refill rate of 100 tokens/min per IP.\n\n## Endpoints affected\n- `POST /api/*`\n- `GET /api/search`", folder: "Engineering Docs", }, }); const doc = JSON.parse(result.content[0].text); console.log(doc.id); // e.g. "7hRkM2sNpL4b" console.log(doc.title); // "Rate Limiting Design Spec" ``` -------------------------------- ### get_view Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Retrieves a saved view by its ID, including all tasks it contains. ```APIDOC ## get_view ### Description Fetches a saved view (a filtered/sorted task perspective) by its ID, including all tasks it contains. ### Method `client.callTool` ### Arguments - **id** (string) - Required - The ID of the view to retrieve. ### Request Example ```typescript const result = await client.callTool({ name: "get_view", arguments: { id: "bC2dE3fGhI4j" }, }); const view = JSON.parse(result.content[0].text); console.log(view.title); console.log(view.tasks.length); ``` ### Response - **title** (string) - The title of the view. - **tasks** (array) - An array of tasks contained within the view. ``` -------------------------------- ### Retrieve Folder by ID with TypeScript Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches a document folder by its ID. Use this to access folder details and its contained documents. ```typescript // MCP tool call const result = await client.callTool({ name: "get_folder", arguments: { id: "xZ1cV6dWqE9t" }, }); const folder = JSON.parse(result.content[0].text); console.log(folder.title); // "Engineering Docs" console.log(folder.docs.length); // number of docs in the folder ``` -------------------------------- ### list_tasks Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Lists tasks with extensive filtering capabilities, including assignee, status, dartboard, priority, date ranges, tags, parent task, completion status, and pagination. ```APIDOC ## `list_tasks` — List and filter tasks ### Description Lists tasks with rich filtering options: assignee, status, dartboard, priority, date ranges, tags, parent task, completion status, and pagination. ### Method `callTool` ### Arguments `name`: "list_tasks" `arguments`: { `assignee`: "string" (optional) - Filter by assignee's email. `status`: "string" (optional) - Filter by task status (e.g., "In Progress"). `dartboard`: "string" (optional) - Filter by dartboard name. `priority`: "string" (optional) - Filter by task priority (e.g., "High"). `dueAtAfter`: "string" (optional) - Filter tasks due on or after this date/time (ISO 8601 format). `dueAtBefore`: "string" (optional) - Filter tasks due on or before this date/time (ISO 8601 format). `tags`: ["string"] (optional) - Filter by associated tags. `parentTaskId`: "string" (optional) - Filter by parent task ID. `isCompleted`: "boolean" (optional) - Filter by completion status (true or false). `limit`: "number" (optional) - Maximum number of tasks to return (pagination). `offset`: "number" (optional) - Number of tasks to skip (pagination). } ### Response Example ```json { "results": [ { "id": "mN8pR3sToU2v", "title": "Implement rate limiting...", "priority": "High", ... }, ... ], "count": 3, "next": null } ``` ``` -------------------------------- ### get_doc Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Retrieves all details for a specific document using its 12-character alphanumeric ID. ```APIDOC ## get_doc — Retrieve a document by ID Fetches all details for a specific document using its 12-character alphanumeric ID. ### Method GET (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **id** (string) - Required - The 12-character alphanumeric ID of the document to retrieve. ### Request Example ```typescript // MCP tool call const result = await client.callTool({ name: "get_doc", arguments: { id: "7hRkM2sNpL4b" }, }); ``` ### Response #### Success Response Returns a JSON object containing the full details of the document. #### Response Example ```json { "id": "7hRkM2sNpL4b", "title": "Rate Limiting Design Spec", "text": "# Rate Limiting Design\n\n## Algorithm\nToken-bucket...", "folder": { "title": "Engineering Docs" } } ``` ``` -------------------------------- ### List and Filter Tasks Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Lists tasks with rich filtering options: assignee, status, dartboard, priority, date ranges, tags, parent task, completion status, and pagination. ```typescript // MCP tool call — filter high-priority in-progress tasks due this month const result = await client.callTool({ name: "list_tasks", arguments: { status: "In Progress", priority: "High", assignee: "jane@example.com", dueAtAfter: "2025-07-01T00:00:00Z", dueAtBefore: "2025-07-31T23:59:59Z", dartboard: "Backend Sprint", isCompleted: false, limit: 25, offset: 0, }, }); // Returns paginated array: // { // "results": [ // { "id": "mN8pR3sToU2v", "title": "Implement rate limiting...", "priority": "High", ... }, // ... // ], // "count": 3, // "next": null // } const { results, count } = JSON.parse(result.content[0].text); console.log(`Found ${count} matching tasks`); ``` -------------------------------- ### List Documents - Dart MCP Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Lists documents with optional filtering by folder, title, text content, and sorting/pagination. Use `folder`, `s` (search term), `o` (sort order), `limit`, and `offset` for filtering and pagination. ```typescript // MCP tool call — search for docs in a folder, sorted by latest update const result = await client.callTool({ name: "list_docs", arguments: { folder: "Engineering Docs", s: "rate limiting", // full-text search across title + text o: ["-updated_at"], // descending by updated_at limit: 10, offset: 0, }, }); // Returns: // { "results": [{ "id": "7hRkM2sNpL4b", "title": "Rate Limiting Design Spec", ... }], "count": 1 } const { results } = JSON.parse(result.content[0].text); console.log(results[0].title); ``` -------------------------------- ### get_task Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Retrieves all details for a specific task using its unique 12-character alphanumeric ID. ```APIDOC ## `get_task` — Retrieve a task by ID ### Description Fetches all details for a specific task using its 12-character alphanumeric ID. ### Method `callTool` ### Arguments `name`: "get_task" `arguments`: { `id`: "string" (required) - The unique 12-character alphanumeric ID of the task. } ### Response Example ```json { "id": "mN8pR3sToU2v", "title": "Implement rate limiting on API endpoints", "description": "## Goal\nAdd token-bucket rate limiting to all public REST endpoints.\n\n**Acceptance criteria:**\n- 100 req/min per IP\n- Returns 429 with Retry-After header", "status": { "id": "eF5vA7jHsU3q", "title": "In Progress" }, "priority": "High", "dartboard": { "id": "jK7tC9kJuW5s", "title": "Backend Sprint" }, "assignees": [{ "email": "jane@example.com" }, { "email": "bob@example.com" }], "tags": ["security", "performance"], "size": 5, "startAt": "2025-07-01T09:00:00Z", "dueAt": "2025-07-15T09:00:00Z", "customProperties": { "storyPoints": 8, "team": "Backend" }, "taskRelationships": { "blockerIds": ["aB3xY9mNpQ1z"], "relatedIds": ["cD4wZ8lKrT2v"] } } ``` ``` -------------------------------- ### Retrieve a Task by ID Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches all details for a specific task using its 12-character alphanumeric ID. ```typescript const result = await client.callTool({ name: "get_task", arguments: { id: "mN8pR3sToU2v" }, }); // Returns full task JSON including custom properties and relationships const task = JSON.parse(result.content[0].text); console.log(task.title); // "Implement rate limiting on API endpoints" console.log(task.status.title); // "In Progress" console.log(task.priority); // "High" ``` -------------------------------- ### list_task_comments Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Retrieves comments for a task, with options for filtering by author, date, text content, and pagination. ```APIDOC ## list_task_comments — List comments on a task Retrieves comments for a task with optional filtering by author, date range, text content, and pagination. ### Method GET (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **taskId** (string) - Required - The ID of the task whose comments are to be listed. - **author** (string) - Optional - Filters comments by a specific author's email. - **publishedAtAfter** (string) - Optional - Filters comments published after the specified ISO 8601 timestamp. - **limit** (integer) - Optional - The maximum number of comments to return. - **offset** (integer) - Optional - The number of comments to skip for pagination. ### Request Example ```typescript // MCP tool call — get recent comments by a specific author const result = await client.callTool({ name: "list_task_comments", arguments: { taskId: "mN8pR3sToU2v", author: "jane@example.com", publishedAtAfter: "2025-07-01T00:00:00Z", limit: 10, offset: 0, }, }); ``` ### Response #### Success Response Returns a JSON object containing a list of comments (`results`) and the total count (`count`). #### Response Example ```json { "results": [ { "id": "rS0tU5vWxY6z", "text": "## Update\n...", "author": {} } ], "count": 1 } ``` ``` -------------------------------- ### Retrieve View by ID with TypeScript Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Fetches a saved view (a filtered/sorted task perspective) by its ID. Use this to retrieve all tasks within a specific view. ```typescript // MCP tool call const result = await client.callTool({ name: "get_view", arguments: { id: "bC2dE3fGhI4j" }, }); const view = JSON.parse(result.content[0].text); console.log(view.title); // "My High Priority Tasks" console.log(view.tasks.length); // number of tasks in the view ``` -------------------------------- ### add_task_comment Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Adds a comment to a specific task. Supports markdown formatting in the comment text. ```APIDOC ## add_task_comment — Add a comment to a task Posts a comment on a task without modifying the task description. Supports markdown formatting. ### Method POST (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **taskId** (string) - Required - The ID of the task to add a comment to. - **text** (string) - Required - The content of the comment, supporting markdown. ### Request Example ```typescript // MCP tool call const result = await client.callTool({ name: "add_task_comment", arguments: { taskId: "mN8pR3sToU2v", text: "## Update\nRate limiting is now implemented using a **token-bucket** algorithm.\n\n- Tested at 150 req/min — correctly throttles at 100\n- 429 response includes `Retry-After: 60` header\n\nReady for review @alice", }, }); ``` ### Response #### Success Response Returns an object containing the ID of the newly created comment. #### Response Example ```json { "id": "rS0tU5vWxY6z" } ``` ``` -------------------------------- ### update_doc Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Modifies the title, text content, or folder of an existing document. The document ID is required. ```APIDOC ## update_doc — Update an existing document Modifies the title, text content, or folder of a document by ID. Only `id` is required. ### Method PUT or POST (implied by tool call) ### Endpoint Not explicitly defined, but part of the MCP tool call interface. ### Parameters #### Arguments - **id** (string) - Required - The ID of the document to update. - **title** (string) - Optional - The new title for the document. - **text** (string) - Optional - The new markdown text content for the document. - **folder** (string) - Optional - The new folder name for the document. ### Request Example ```typescript // MCP tool call — append a section and move to a different folder const result = await client.callTool({ name: "update_doc", arguments: { id: "7hRkM2sNpL4b", title: "Rate Limiting Design Spec (v2)", text: "# Rate Limiting Design\n\n## Algorithm\nToken-bucket...\n\n## Monitoring\nAdd Datadog metrics for throttled requests.", folder: "Approved Specs", }, }); ``` ### Response #### Success Response Returns a JSON object representing the updated document. #### Response Example ```json { "id": "7hRkM2sNpL4b", "title": "Rate Limiting Design Spec (v2)", "folder": { "title": "Approved Specs" } } ``` ``` -------------------------------- ### Read Dart Document by ID Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Use the MCP client to read a specific document by its ID using the 'dart-doc:///{docId}' URI. This retrieves the document's title, markdown text content, and parent folder. ```typescript // MCP resource read request const response = await client.readResource({ uri: "dart-doc:///7hRkM2sNpL4b", }); // Returns JSON with shape: // { // "id": "7hRkM2sNpL4b", // "title": "API Design Guidelines", // "text": "## REST Conventions\n\nAll endpoints must...", // "folder": { "id": "xZ1cV6dWqE9t", "title": "Engineering Docs" } // } console.log(JSON.parse(response.contents[0].text)); ``` -------------------------------- ### Add Task Comment - Dart MCP Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Posts a comment on a task. Supports markdown formatting in the comment text. Ensure the `taskId` is valid. ```typescript // MCP tool call const result = await client.callTool({ name: "add_task_comment", arguments: { taskId: "mN8pR3sToU2v", text: "## Update\nRate limiting is now implemented using a **token-bucket** algorithm.\n\n- Tested at 150 req/min — correctly throttles at 100\n- 429 response includes `Retry-After: 60` header\n\nReady for review @alice", }, }); const comment = JSON.parse(result.content[0].text); console.log(comment.id); // e.g. "rS0tU5vWxY6z" ``` -------------------------------- ### Read Dart Task by ID Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Use the MCP client to read a specific task by its ID using the 'dart-task:///{taskId}' URI. This retrieves full task details including title, description, status, and custom properties. ```typescript // MCP resource read request const response = await client.readResource({ uri: "dart-task:///9q5qtB8n2Qn6", }); // Returns JSON with shape: // { // "id": "9q5qtB8n2Qn6", // "title": "Implement OAuth login", // "description": "Add Google and GitHub OAuth...", // "status": { "id": "cD4wZ8lKrT2v", "title": "In Progress" }, // "priority": "High", // "assignees": [{ "email": "jane@example.com" }], // "dueAt": "2025-08-01T09:00:00Z", // "customProperties": { "storyPoints": 8 } // } console.log(JSON.parse(response.contents[0].text)); ``` -------------------------------- ### List Task Comments - Dart MCP Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Retrieves comments for a task with optional filtering by author, date range, text content, and pagination. Use `author`, `publishedAtAfter`, `limit`, and `offset` for filtering and pagination. ```typescript // MCP tool call — get recent comments by a specific author const result = await client.callTool({ name: "list_task_comments", arguments: { taskId: "mN8pR3sToU2v", author: "jane@example.com", publishedAtAfter: "2025-07-01T00:00:00Z", limit: 10, offset: 0, }, }); // Returns: // { "results": [{ "id": "rS0tU5vWxY6z", "text": "## Update\n...", "author": {...} }], "count": 1 } const { results } = JSON.parse(result.content[0].text); results.forEach((c) => console.log(c.text)); ``` -------------------------------- ### Move a Task to the Trash Source: https://context7.com/its-dart/dart-mcp-server/llms.txt Soft-deletes a task (moves to trash; recoverable from the Dart UI). ```typescript const result = await client.callTool({ name: "delete_task", arguments: { id: "mN8pR3sToU2v" }, }); // Returns the trashed task object const trashed = JSON.parse(result.content[0].text); console.log(trashed.inTrash); // true ```