Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Plane MCP server

Vendor MCP
Open markdown

The Plane MCP connector routes your AI agent's tool calls to Plane's own MCP server through Scalekit. Each user signs in to Plane once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 109 tools.

Tools
109
What they doRead · write · destructive
0 · 109 · 00 read109 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • Manage work items: create, update, search, and delete work items, and add comments, links, and relations
  • Plan cycles and modules: create and update cycles, modules, and milestones, and add or remove work items from them
  • Track epics and initiatives: create, update, and delete epics and workspace initiatives
  • Manage projects: create and update projects and configure their labels, workflow states, and custom work item types
  • Write pages: create and read project and workspace pages
  • Log time: record, update, and delete time spent on work items and view project work log summaries

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 Plane MCP connection

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

    Scalekit credentials are available for Plane MCP server, so you don't need to register an OAuth app.

  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 = 'planemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Plane MCP:', 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: 'planemcp_get_me',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • planemcp_add_work_items_to_cycleAdd one or more work items to a cycle by their UUIDs.Write

    Add Work Items To Cycle

    Add one or more work items to a cycle by their UUIDs.

    Inputs

    cycle_idstringrequired
    UUID of the cycle. Get it from List Cycles.
    issue_idsarrayrequired
    List of work item UUIDs to add.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
  • planemcp_add_work_items_to_milestoneAdd one or more work items to a milestone.Write

    Add Work Items To Milestone

    Add one or more work items to a milestone.

    Inputs

    issue_idsarrayrequired
    List of work item UUIDs to add.
    milestone_idstringrequired
    UUID of the milestone. Get it from List Milestones.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
  • planemcp_add_work_items_to_moduleAdd one or more work items to a module.Write

    Add Work Items To Module

    Add one or more work items to a module.

    Inputs

    issue_idsarrayrequired
    List of work item UUIDs to add.
    module_idstringrequired
    UUID of the module. Get it from List Modules.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
  • planemcp_archive_cycleArchive a cycle so it no longer appears in active views.Write

    Archive Cycle

    Archive a cycle so it no longer appears in active views.

    Inputs

    cycle_idstringrequired
    UUID of the cycle. Get it from List Cycles.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
  • planemcp_archive_moduleArchive a module so it no longer appears in active views.Write

    Archive Module

    Archive a module so it no longer appears in active views.

    Inputs

    module_idstringrequired
    UUID of the module. Get it from List Modules.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
  • planemcp_create_cycleCreate a new cycle (sprint) in a project with a name and date range.Write

    Create Cycle

    Create a new cycle (sprint) in a project with a name and date range.

    Inputs

    namestringrequired
    Name or title of the item.
    owned_bystringrequired
    UUID of the member who owns this item.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
    descriptionstring
    Optional description.
    end_datestring
    End date in ISO 8601 format (YYYY-MM-DD).
    external_idstring
    Identifier in an external system.
    external_sourcestring
    Name of the external system (e.g. github).
    start_datestring
    Start date in ISO 8601 format (YYYY-MM-DD).
    timezonestring
    IANA timezone name (e.g. America/New_York).
  • planemcp_create_epicCreate a new epic in a project.Write

    Create Epic

    Create a new epic in a project.

    Inputs

    namestringrequired
    Name or title of the item.
    project_idstringrequired
    UUID of the project. Get it from List Projects.
    assigneesstring
    List of user UUIDs to assign to the work item.
    description_htmlstring
    HTML-formatted description of the work item.
    description_strippedstring
    Plain text description with HTML tags removed.
    estimate_pointstring
    Estimation point value.
    external_idstring
    Identifier in an external system.
    external_sourcestring
    Name of the external system (e.g. github).
    is_draftstring
    If true, saves the item as a draft.
    labelsstring
    List of label UUIDs to attach to the work item.
    parentstring
    UUID of the parent work item.
    pointstring
    Story point value for the work item.
    prioritystring
    Priority level. Accepted values: urgent, high, medium, low, none.
    sort_orderstring
    Float value for manual sort ordering.
    start_datestring
    Start date in ISO 8601 format (YYYY-MM-DD).
    statestring
    UUID of the workflow state to assign.
    target_datestring
    Target completion date in ISO 8601 format (YYYY-MM-DD).
  • planemcp_create_initiativeCreate a new initiative in the workspace.Write

    Create Initiative

    Create a new initiative in the workspace.

    Inputs

    namestringrequired
    Name or title of the item.
    description_htmlstring
    HTML-formatted description of the work item.
    end_datestring
    End date in ISO 8601 format (YYYY-MM-DD).
    leadstring
    UUID of the lead member.
    logo_propsstring
    No description.
    start_datestring
    Start date in ISO 8601 format (YYYY-MM-DD).
    statestring
    UUID of the workflow state to assign.