Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Sleekplan MCP server

Vendor MCP
Open markdown

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

Tools
60
What they doRead · write · destructive
36 · 7 · 1736 read7 write17 destructive
Users sign in with
OAuth app
Scalekit's or your own

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

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

    Scalekit credentials are available for Sleekplan 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 = 'sleekplanmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Sleekplan 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: 'sleekplanmcp_list_admins',
    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
  • sleekplanmcp_compare_document_versionsShow what changed between two versions of a document.Read-only

    CompareDocumentVersions

    Show what changed between two versions of a document. Returns {from, to, diff}. The diff is block-level over the Markdown source: `hunks` are {op: 'equal'|'insert'|'delete', text} entries and `summary` counts blocks added/removed/equal. Very large documents come back with `truncated: true` and no hunks — fall back to reading both versions in that case.

    Inputs

    document_idintegerrequired
    ID of the document.
    from_versionintegerrequired
    One version number to compare, 1 or higher. Get from list_document_versions.
    to_versionintegerrequired
    The other version number, 1 or higher. Order does not matter — the server sorts the pair.
  • sleekplanmcp_get_category_templateGet the title/description preset template for a feedback type.Read-only

    GetCategoryTemplate

    Get the title/description preset template for a feedback type. Mirrors the sleekplan://category-template/{type_key} resource — use this tool when your MCP client doesn't auto-read resource templates. Returns `{title, description}` or an empty response when no template is configured. Read before create_feedback so posts of this category follow the workspace's preferred structure.

    Inputs

    type_keystringrequired
    Feedback type key from list_feedback_types / sleekplan://feedback-types (e.g. 'bug', 'feature'). Strings only — not numeric IDs.
  • sleekplanmcp_get_changelogGet a single changelog entry by ID.Read-only

    GetChangelog

    Get a single changelog entry by ID.

    Inputs

    changelog_idintegerrequired
    ID of the changelog entry
  • sleekplanmcp_get_documentGet one document, including its full Markdown `content` and `current_version` number.Read-only

    GetDocument

    Get one document, including its full Markdown `content` and `current_version` number.

    Inputs

    document_idintegerrequired
    Document ID. Get from list_documents or list_feedback_documents results.
  • sleekplanmcp_get_document_versionRead what a document said at one specific version, body included.Read-only

    GetDocumentVersion

    Read what a document said at one specific version, body included.

    Inputs

    document_idintegerrequired
    ID of the document.
    versionintegerrequired
    Version number (1 or higher). Get from list_document_versions.
  • sleekplanmcp_get_feedbackGet a single feedback post by ID.Read-only

    GetFeedback

    Get a single feedback post by ID.

    Inputs

    feedback_idintegerrequired
    ID of the feedback post
  • sleekplanmcp_get_feedback_metaRead the custom meta key/value pairs attached to a feedback post.Read-only

    GetFeedbackMeta

    Read the custom meta key/value pairs attached to a feedback post. Meta is free-form attribution (reporter, source channel, account id, campaign …) that list_feedback can filter on via its `advanced` `meta` filter. Read this before set_feedback_meta or delete_feedback_meta so you know which keys already exist. Returns `{"meta": {...}}`, or `{"meta": false}` when the post has no meta at all.

    Inputs

    feedback_idintegerrequired
    ID of the feedback post
  • sleekplanmcp_get_feedback_statsGet vote and engagement statistics for a feedback post.Read-only

    GetFeedbackStats

    Get vote and engagement statistics for a feedback post.

    Inputs

    feedback_idintegerrequired
    ID of the feedback post