Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Slite MCP server

Vendor MCP
Open markdown

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

Tools
41
What they doRead · write · destructive
18 · 13 · 1018 read13 write10 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 Slite MCP connection

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

    Scalekit credentials are available for Slite 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 = 'slitemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Slite 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: 'slitemcp_list-channels',
    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
  • slitemcp_ask-sliteAsk a question and get an AI-generated answer with source citations from your workspace.Read-only

    Ask Slite

    Ask a question and get an AI-generated answer with source citations from your workspace.

    Inputs

    questionstringrequired
    The question to ask Slite.
    parentNoteIdstring
    Optional filter to only search within notes under this parent note id.
  • slitemcp_get-comment-thread-on-noteRetrieve a single comment thread by its note and thread IDs.Read-only

    Get Comment Thread On Note

    Retrieve a single comment thread by its note and thread IDs.

    Inputs

    noteIdstringrequired
    The ID of the note the thread belongs to.
    threadIdstringrequired
    The ID of the comment thread to retrieve.
  • slitemcp_get-noteRetrieve a note's content by ID, returning sliteml with block IDs or plain Markdown.Read-only

    Get Note

    Retrieve a note's content by ID, returning sliteml with block IDs or plain Markdown.

    Inputs

    noteIdstringrequired
    The ID of the note to retrieve.
    cursorstring
    Block ID to resume from. Pass the `nextCursor` returned by a previous partial call to continue reading. Only applies when fullContent=false.
    endBlockIdstring
    Optional: return only blocks up to and including this one (inclusive). Combine with startBlockId. Only applies to format=sliteml.
    formatstring
    Format of the content to return. Default: sliteml (the rich-text format with block IDs — required before any editing operation). Options: md (markdown export, no block IDs), html (HTML export, no block IDs), collection (column definitions and records — collection notes only; archived rows are excluded unless includeArchivedRows is set).one of mdhtmlslitemlcollection
    fullContentboolean
    Return the full document content. Default true. Set to false to fetch only a preview (about the first 2000 chars, ending on a block boundary) — useful when iterating on a long doc; pair with `cursor` to continue. Ignored when startBlockId/endBlockId are provided.
    includeArchivedRowsboolean
    Only applies to format=collection. Archived rows are excluded by default. Set to true to also return archived rows, each marked with `archived: true`.
    startBlockIdstring
    Optional: return only the slice of the doc from this block onward (inclusive). Combine with endBlockId to fetch a specific range. Only applies to format=sliteml.
  • slitemcp_get-note-childrenList child notes under a parent note (paginated).Read-only

    Get Note Children

    List child notes under a parent note (paginated).

    Inputs

    noteIdstringrequired
    The ID of the parent note.
    cursorstring
    Cursor to use to continue fetching the note children (for pagination when there are more than 50 children).
  • slitemcp_get-userRetrieve a user by ID, including their name, email, and role.Read-only

    Get User

    Retrieve a user by ID, including their name, email, and role.

    Inputs

    userIdstringrequired
    The ID of the user to retrieve.
  • slitemcp_get-user-groupRetrieve a user group by ID, including its name, description, and members.Read-only

    Get User Group

    Retrieve a user group by ID, including its name, description, and members.

    Inputs

    userGroupIdstringrequired
    The ID of the user group to retrieve.
  • slitemcp_list-channelsList channels accessible to the current user (paginated).Read-only

    List Channels

    List channels accessible to the current user (paginated).

    Inputs

    cursorstring
    Cursor for pagination when there are more results.
  • slitemcp_list-comment-threadsList all non-archived comment threads on a note, oldest-first, with full content.Read-only

    List Comment Threads

    List all non-archived comment threads on a note, oldest-first, with full content.

    Inputs

    noteIdstringrequired
    The ID of the note to list threads on.