The Dart AI MCP connector routes your AI agent's tool calls to Dart AI's own MCP server through Scalekit. Each user signs in to Dart AI once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 29 tools.
- Tools
- 29
- What they doRead · write · destructive
- 13 · 13 · 313 read13 write3 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet 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>Create the Dart AI MCP connection
In AgentKit > Connections, create a Dart AI MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Dart AI MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_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)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'dartaimcp_get_config',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_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)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooldartaimcp_get_agentRetrieve an existing agent by its ID, including its name and current description.Read-onlyGet Agent
Retrieve an existing agent by its ID, including its name and current description.
Inputs
idstringrequired- The ID of the agent.
conversation_idstring- Conversation 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_invocationstring- Brief 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_configGet information about the user's space, including all possible values.Read-onlyGet Config
Get information about the user's space, including all possible values.
Inputs
conversation_idstring- Conversation 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_invocationstring- Brief 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_dartboardRetrieve an existing dartboard.Read-onlyGet Dartboard
Retrieve an existing dartboard.
Inputs
idstringrequired- The ID of the dartboard.
conversation_idstring- Conversation 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_invocationstring- Brief 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_docRetrieve an existing doc.Read-onlyGet Doc
Retrieve an existing doc.
Inputs
idstringrequired- The ID of the doc.
conversation_idstring- Conversation 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_invocationstring- Brief 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_folderRetrieve an existing folder by its ID.Read-onlyGet Folder
Retrieve an existing folder by its ID.
Inputs
idstringrequired- The ID of the folder.
conversation_idstring- Conversation 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_invocationstring- Brief 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_taskRetrieve an existing task by its ID.Read-onlyGet Task
Retrieve an existing task by its ID.
Inputs
idstringrequired- The ID of the task.
conversation_idstring- Conversation 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_invocationstring- Brief 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_viewRetrieve an existing view by its ID.Read-onlyGet View
Retrieve an existing view by its ID.
Inputs
idstringrequired- The ID of the view.
conversation_idstring- Conversation 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_invocationstring- Brief 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_agentsList all agents in the workspace.Read-onlyList Agents
List all agents in the workspace.
Inputs
conversation_idstring- Conversation 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_invocationstring- Brief 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_commentsList comments for a task with filtering options.Read-onlyList Comments
List comments for a task with filtering options.
Inputs
task_idstringrequired- The ID of the task.
conversation_idstring- Conversation 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.
limitinteger- Max number of comments to return.
offsetinteger- Number of comments to skip.
reason_for_invocationstring- Brief 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_docsList docs with filtering and search capabilities.Read-onlyList Docs
List docs with filtering and search capabilities.
Inputs
conversation_idstring- Conversation 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.
dartboardDuidstring- Filter by dartboard ID.
limitinteger- Max number of docs to return.
offsetinteger- Number of docs to skip.
reason_for_invocationstring- Brief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.
textstring- Search text.
dartaimcp_list_help_center_articlesSearch for up to two help center articles by semantic similarity to a query.Read-onlyList Help Center Articles
Search for up to two help center articles by semantic similarity to a query.
Inputs
textstringrequired- The search query text.
conversation_idstring- Conversation 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_invocationstring- Brief 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_tasksList tasks with powerful filtering options.Read-onlyList Tasks
List tasks with powerful filtering options.
Inputs
assigneeDuidstring- Filter by assignee user ID.
conversation_idstring- Conversation 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.
dartboardDuidstring- Filter by dartboard ID.
limitinteger- Max number of tasks.
offsetinteger- Number of tasks to skip.
prioritystring- Filter by priority.one of
CriticalHighMediumLowNone reason_for_invocationstring- Brief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.
statusDuidstring- Filter by status ID.
textstring- Search text.
dartaimcp_retrieve_skill_by_titleRetrieve a skill by its title.Read-onlyRetrieve Skill By Title
Retrieve a skill by its title.
Inputs
titlestringrequired- The title of the skill to retrieve.
conversation_idstring- Conversation 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_invocationstring- Brief 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_attachment_from_urlAttach a file from a provided URL to a task.WriteAdd Task Attachment From Url
Attach a file from a provided URL to a task.
Inputs
idstringrequired- The ID of the task.
urlstringrequired- The URL of the file to attach.
conversation_idstring- Conversation 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.
namestring- Optional display name for the attachment.
reason_for_invocationstring- Brief 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_commentRecord a new comment that the user intends to add to a given task.WriteAdd Task Comment
Record a new comment that the user intends to add to a given task.
Inputs
itemobjectrequired- Comment details.
conversation_idstring- Conversation 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_invocationstring- Brief 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_trackingRecord an additional time tracking entry on a task.WriteAdd Task Time Tracking
Record an additional time tracking entry on a task.
Inputs
finishedAtstringrequired- ISO 8601 end datetime of the time tracking entry.
idstringrequired- The ID of the task.
startedAtstringrequired- ISO 8601 start datetime of the time tracking entry.
userstringrequired- The identifier (email) of the user logging time.
conversation_idstring- Conversation 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_invocationstring- Brief 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_agentCreate a new agent in the workspace with a name and optional description or instructions.WriteCreate Agent
Create a new agent in the workspace with a name and optional description or instructions.
Inputs
item_namestringrequired- The display name of the new agent.
conversation_idstring- Conversation 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_executionModestring- How the agent runs when triggered.one of
InstructionsForwardingLocalNone item_forwarding_bodystring- Custom request body template for the forwarding webhook.
item_forwarding_responseKeystring- Key in the webhook response to extract as the agent's output.
item_forwarding_urlstring- Webhook URL to forward tasks to (used when executionMode is Forwarding).
item_instructions_markdownstring- Markdown instructions for the agent (used when executionMode is Instructions).
item_instructions_modelstring- LLM model to use for the agent's instructions.one of
autogpt-5.2gpt-5.4-minigpt-5.5claude-haiku-4-5claude-opus-4-8claude-fable-5gemini-3.1-flash-litegemini-3.1-pro-previewgemini-3.5-flash item_instructions_thinkingLevelstring- Thinking depth level for the agent's LLM.one of
nonelowmediumhighxhigh item_instructions_webEnabledboolean- Whether the agent can browse the web.
item_local_agentstring- Local CLI agent to use when executionMode is Local.one of
claudecodexcopilotcursorgeminiopencode reason_for_invocationstring- Brief 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_docRecord a new doc that the user intends to write down.WriteCreate Doc
Record a new doc that the user intends to write down.
Inputs
item_titlestringrequired- The title of the doc.
conversation_idstring- Conversation 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_dartboardDuidstring- The ID of the dartboard to place the doc in.
item_textstring- The doc content in markdown format.
reason_for_invocationstring- Brief 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_taskRecord a new task that the user intends to do.WriteCreate Task
Record a new task that the user intends to do.
Inputs
itemobjectrequired- The task object to create.
conversation_idstring- Conversation 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_invocationstring- Brief 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_move_taskMove a task to a specific position by placing it before or after another task.WriteMove 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.
- Idempotent
Inputs
idstringrequired- The ID of the task to move.
afterTaskIdstring- Move this task immediately after the task with this ID.
beforeTaskIdstring- Move this task immediately before the task with this ID.
conversation_idstring- Conversation 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_invocationstring- Brief 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_issueCreate a concise markdown issue report for Dart Support.WriteReport Issue
Create a concise markdown issue report for Dart Support. Provide the full report as markdown text in the item.text field.
Inputs
itemobjectrequired- The issue report in markdown format.
conversation_idstring- Conversation 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_invocationstring- Brief 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_agentUpdate an agent's name and/or description.WriteUpdate Agent
Update an agent's name and/or description. Only the fields provided will be changed.
- Idempotent
Inputs
duidstringrequired- The ID of the agent to update.
conversation_idstring- Conversation 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_executionModestring- How the agent runs when triggered.one of
InstructionsForwardingLocalNone item_forwarding_bodystring- Updated custom request body for the forwarding webhook.
item_forwarding_responseKeystring- Updated key in the webhook response to extract.
item_forwarding_urlstring- Updated webhook URL for forwarding mode.
item_instructions_markdownstring- Updated markdown instructions for the agent.
item_instructions_modelstring- Updated LLM model for the agent.
item_instructions_thinkingLevelstring- Updated thinking depth level for the agent's LLM.
item_instructions_webEnabledboolean- Whether the agent can browse the web.
item_local_agentstring- Updated local CLI agent for Local execution mode.one of
claudecodexcopilotcursorgeminiopencode item_namestring- New display name for the agent.
reason_for_invocationstring- Brief 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_docUpdate certain properties of an existing doc.WriteUpdate Doc
Update certain properties of an existing doc.
- Idempotent
Inputs
idstringrequired- The ID of the doc to update.
itemobjectrequired- The doc fields to update.
conversation_idstring- Conversation 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_invocationstring- Brief 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_textApply targeted text updates to a doc's content.WriteUpdate Doc Text
Apply targeted text updates to a doc's content.
Inputs
duidstringrequired- The ID of the doc.
operationsarrayrequired- List of text update operations to apply.
conversation_idstring- Conversation 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_invocationstring- Brief 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_taskUpdate properties of an existing task.WriteUpdate Task
Update properties of an existing task.
- Idempotent
Inputs
idstringrequired- The ID of the task to update.
itemobjectrequired- The task fields to update.
conversation_idstring- Conversation 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_invocationstring- Brief 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_descriptionApply targeted text updates to a task's description.WriteUpdate Task Description
Apply targeted text updates to a task's description.
Inputs
duidstringrequired- The ID of the task.
operationsarrayrequired- List of text update operations.
conversation_idstring- Conversation 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_invocationstring- Brief 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_agentDelete an agent by its ID.DestructiveDelete Agent
Delete an agent by its ID.
- Idempotent
Inputs
duidstringrequired- The ID of the agent to delete.
conversation_idstring- Conversation 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_invocationstring- Brief 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_docMove an existing doc to the trash.DestructiveDelete Doc
Move an existing doc to the trash.
- Idempotent
Inputs
duidstringrequired- The ID of the doc to delete.
conversation_idstring- Conversation 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_invocationstring- Brief 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_taskMove an existing task to the trash.DestructiveDelete Task
Move an existing task to the trash.
Inputs
duidstringrequired- The ID of the task to delete.
conversation_idstring- Conversation 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_invocationstring- Brief explanation of why you chose this tool for the current task. Optional audit field; max 500 characters (longer values are truncated). Plain text only.
No tools match.