Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Shortcut

Scalekit connector
Open markdown

The Shortcut connector lets your AI agent act in each user's Shortcut account. Each user connects their own Shortcut API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 124 tools.

Tools
124
What they doRead · write · destructive
65 · 41 · 1865 read41 write18 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Shortcut connection

    In AgentKit > Connections, create a Shortcut connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. 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.actions
    const connector = 'shortcut'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Shortcut:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'shortcut_get_current_member',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Shortcut credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • shortcut_get_categoryGet one Shortcut objective category by ID.Read-only

    Get Category

    Get one Shortcut objective category by ID. Returns the category's name, color, type, and archived flag. Use this when you have a category ID. Use list_categories to browse.

    Inputs

    category_idintegerrequired
    Numeric ID of the category (from list_categories). Example: 12.
  • shortcut_get_current_memberGet the Shortcut member that owns the connected API token.Read-only

    Get Current Member

    Get the Shortcut member that owns the connected API token. Returns the member's ID, name, mention name, role, workspace, and organization. Use this to find your own member ID before filtering or assigning work. Use get_member for any other member.

    Inputs

    This tool takes no inputs.

  • shortcut_get_custom_fieldGet one Shortcut custom field by ID.Read-only

    Get Custom Field

    Get one Shortcut custom field by ID. Returns the field's name, type, enabled flag, story types, and allowed values with their IDs. Use this when you have a custom field ID. Use list_custom_fields to browse.

    Inputs

    custom_field_idstringrequired
    UUID of the custom field (from list_custom_fields). Example: 12345678-9abc-4def-8123-456789abcdef.
  • shortcut_get_docGet one Shortcut Doc with its content.Read-only

    Get Doc

    Get one Shortcut Doc with its content. Returns the doc's title, Markdown content (and HTML when requested), archived flag, timestamps, and app URL. Use this to read a doc. Use search_docs or list_docs to find doc IDs.

    Inputs

    doc_idstringrequired
    UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
    content_formatstring
    Response content format. markdown (default) returns content_markdown; html also includes content_html. Example: markdown.one of markdownhtml
  • shortcut_get_entity_templateGet one Shortcut story template by ID.Read-only

    Get Story Template

    Get one Shortcut story template by ID. Returns the template's name, author ID, last used time, and story contents. Use this to inspect a template before create_story_from_template.

    Inputs

    template_idstringrequired
    UUID of the story template (from list_entity_templates). Example: 12345678-9abc-4def-8123-456789abcdef.
  • shortcut_get_epicGet one Shortcut epic by ID with its full details.Read-only

    Get Epic

    Get one Shortcut epic by ID with its full details. Returns the epic's name, description, state, owners, teams, objectives, labels, comments, health, stats, and app URL. Use get_epic when you have an epic ID. Use list_epic_stories for the stories in it.

    Inputs

    epic_idintegerrequired
    Numeric ID of the epic (from list_epics or search_epics). Example: 56.
  • shortcut_get_epic_commentGet one comment on a Shortcut epic, with its replies.Read-only

    Get Epic Comment

    Get one comment on a Shortcut epic, with its replies. Returns the comment's ID, author ID, text, nested replies, and timestamps. Use this when you have a comment ID. Use list_epic_comments for all comments on an epic.

    Inputs

    comment_idintegerrequired
    Numeric ID of the comment. Example: 5678.
    epic_idintegerrequired
    Numeric ID of the epic (from list_epics or search_epics). Example: 56.
  • shortcut_get_epic_healthGet the current health status of a Shortcut epic.Read-only

    Get Epic Health

    Get the current health status of a Shortcut epic. Returns the health record (ID, status such as On Track or At Risk, text, author ID, timestamps). Use this for the latest status. Use list_epic_health_history for past updates.

    Inputs

    epic_idintegerrequired
    Numeric ID of the epic (from list_epics or search_epics). Example: 56.