Dart AI MCP connector
OAuth2.1/DCRProject ManagementAIProductivityAI-native project management tool for task and document management with deep AI integration.
Dart AI MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'dartaimcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Dart AI MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'dartaimcp_get_config',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "dartaimcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Dart AI MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="dartaimcp_get_config",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Update task description, task, doc text — Apply targeted text updates to a task’s description
- Title retrieve skill by — Retrieve a skill by its title
- Issue report — Create a concise markdown issue report for Dart Support
- Task move — Move a task to a specific position by placing it before or after another task
- List tasks, help center articles, docs — List tasks with powerful filtering options
- Get view, task, folder — Retrieve an existing view by its ID
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
dartaimcp_add_task_attachment_from_url#Attach a file from a provided URL to a task.5 params
Attach a file from a provided URL to a task.
idstringrequiredThe ID of the task.urlstringrequiredThe URL of the file to attach.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.namestringoptionalOptional display name for the attachment.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_add_task_comment#Record a new comment that the user intends to add to a given task.3 params
Record a new comment that the user intends to add to a given task.
itemobjectrequiredComment details.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_add_task_time_tracking#Record an additional time tracking entry on a task.6 params
Record an additional time tracking entry on a task.
finishedAtstringrequiredISO 8601 end datetime of the time tracking entry.idstringrequiredThe ID of the task.startedAtstringrequiredISO 8601 start datetime of the time tracking entry.userstringrequiredThe identifier (email) of the user logging time.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_create_agent#Create a new agent in the workspace with a name and optional description or instructions.12 params
Create a new agent in the workspace with a name and optional description or instructions.
item_namestringrequiredThe display name of the new agent.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.item_executionModestringoptionalHow the agent runs when triggered.item_forwarding_bodystringoptionalCustom request body template for the forwarding webhook.item_forwarding_responseKeystringoptionalKey in the webhook response to extract as the agent's output.item_forwarding_urlstringoptionalWebhook URL to forward tasks to (used when executionMode is Forwarding).item_instructions_markdownstringoptionalMarkdown instructions for the agent (used when executionMode is Instructions).item_instructions_modelstringoptionalLLM model to use for the agent's instructions.item_instructions_thinkingLevelstringoptionalThinking depth level for the agent's LLM.item_instructions_webEnabledbooleanoptionalWhether the agent can browse the web.item_local_agentstringoptionalLocal CLI agent to use when executionMode is Local.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_create_doc#Record a new doc that the user intends to write down.5 params
Record a new doc that the user intends to write down.
item_titlestringrequiredThe title of the doc.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.item_dartboardDuidstringoptionalThe ID of the dartboard to place the doc in.item_textstringoptionalThe doc content in markdown format.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_create_task#Record a new task that the user intends to do.3 params
Record a new task that the user intends to do.
itemobjectrequiredThe task object to create.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_delete_agent#Delete an agent by its ID.3 params
Delete an agent by its ID.
duidstringrequiredThe ID of the agent to delete.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_delete_doc#Move an existing doc to the trash.3 params
Move an existing doc to the trash.
duidstringrequiredThe ID of the doc to delete.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_delete_task#Move an existing task to the trash.3 params
Move an existing task to the trash.
duidstringrequiredThe ID of the task to delete.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_agent#Retrieve an existing agent by its ID, including its name and current description.3 params
Retrieve an existing agent by its ID, including its name and current description.
idstringrequiredThe ID of the agent.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_config#Get information about the user's space, including all possible values.2 params
Get information about the user's space, including all possible values.
conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_dartboard#Retrieve an existing dartboard.3 params
Retrieve an existing dartboard.
idstringrequiredThe ID of the dartboard.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_doc#Retrieve an existing doc.3 params
Retrieve an existing doc.
idstringrequiredThe ID of the doc.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_folder#Retrieve an existing folder by its ID.3 params
Retrieve an existing folder by its ID.
idstringrequiredThe ID of the folder.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_task#Retrieve an existing task by its ID.3 params
Retrieve an existing task by its ID.
idstringrequiredThe ID of the task.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_get_view#Retrieve an existing view by its ID.3 params
Retrieve an existing view by its ID.
idstringrequiredThe ID of the view.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_list_agents#List all agents in the workspace.2 params
List all agents in the workspace.
conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_list_comments#List comments for a task with filtering options.5 params
List comments for a task with filtering options.
task_idstringrequiredThe ID of the task.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.limitintegeroptionalMax number of comments to return.offsetintegeroptionalNumber of comments to skip.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_list_docs#List docs with filtering and search capabilities.6 params
List docs with filtering and search capabilities.
conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.dartboardDuidstringoptionalFilter by dartboard ID.limitintegeroptionalMax number of docs to return.offsetintegeroptionalNumber of docs to skip.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.textstringoptionalSearch text.dartaimcp_list_help_center_articles#Search for up to two help center articles by semantic similarity to a query.3 params
Search for up to two help center articles by semantic similarity to a query.
textstringrequiredThe search query text.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_list_tasks#List tasks with powerful filtering options.9 params
List tasks with powerful filtering options.
assigneeDuidstringoptionalFilter by assignee user ID.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.dartboardDuidstringoptionalFilter by dartboard ID.limitintegeroptionalMax number of tasks.offsetintegeroptionalNumber of tasks to skip.prioritystringoptionalFilter by priority.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.statusDuidstringoptionalFilter by status ID.textstringoptionalSearch text.dartaimcp_move_task#Move a task to a specific position by placing it before or after another task. Exactly one of beforeTaskId or afterTaskId must be provided.5 params
Move a task to a specific position by placing it before or after another task. Exactly one of beforeTaskId or afterTaskId must be provided.
idstringrequiredThe ID of the task to move.afterTaskIdstringoptionalMove this task immediately after the task with this ID.beforeTaskIdstringoptionalMove this task immediately before the task with this ID.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_report_issue#Create a concise markdown issue report for Dart Support. Provide the full report as markdown text in the item.text field.3 params
Create a concise markdown issue report for Dart Support. Provide the full report as markdown text in the item.text field.
itemobjectrequiredThe issue report in markdown format.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_retrieve_skill_by_title#Retrieve a skill by its title.3 params
Retrieve a skill by its title.
titlestringrequiredThe title of the skill to retrieve.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_update_agent#Update an agent's name and/or description. Only the fields provided will be changed.13 params
Update an agent's name and/or description. Only the fields provided will be changed.
duidstringrequiredThe ID of the agent to update.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.item_executionModestringoptionalHow the agent runs when triggered.item_forwarding_bodystringoptionalUpdated custom request body for the forwarding webhook.item_forwarding_responseKeystringoptionalUpdated key in the webhook response to extract.item_forwarding_urlstringoptionalUpdated webhook URL for forwarding mode.item_instructions_markdownstringoptionalUpdated markdown instructions for the agent.item_instructions_modelstringoptionalUpdated LLM model for the agent.item_instructions_thinkingLevelstringoptionalUpdated thinking depth level for the agent's LLM.item_instructions_webEnabledbooleanoptionalWhether the agent can browse the web.item_local_agentstringoptionalUpdated local CLI agent for Local execution mode.item_namestringoptionalNew display name for the agent.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_update_doc#Update certain properties of an existing doc.4 params
Update certain properties of an existing doc.
idstringrequiredThe ID of the doc to update.itemobjectrequiredThe doc fields to update.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_update_doc_text#Apply targeted text updates to a doc's content.4 params
Apply targeted text updates to a doc's content.
duidstringrequiredThe ID of the doc.operationsarrayrequiredList of text update operations to apply.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_update_task#Update properties of an existing task.4 params
Update properties of an existing task.
idstringrequiredThe ID of the task to update.itemobjectrequiredThe task fields to update.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.dartaimcp_update_task_description#Apply targeted text updates to a task's description.4 params
Apply targeted text updates to a task's description.
duidstringrequiredThe ID of the task.operationsarrayrequiredList of text update operations.conversation_idstringoptionalConversation correlation ID. Present only when an earlier tool response in this conversation returned one; that value is carried unchanged on subsequent calls. Omitted on the first call.reason_for_invocationstringoptionalBrief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.