Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Synapse MCP server

Vendor MCP
Open markdown

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

Tools
48
What they doRead · write · destructive
48 · 0 · 048 read0 write0 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 Synapse MCP connection

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

    Scalekit credentials are available for Synapse 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 = 'synapsemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Synapse 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: 'synapsemcp_get_evaluation',
    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
  • synapsemcp_check_synapse_idUse this when the user has a string that looks like a Synapse ID (e.g.Read-only

    Validate Synapse ID

    Use this when the user has a string that looks like a Synapse ID (e.g. syn123456) and wants to check whether it exists in Synapse — verifies validity by querying the Synapse backend.

    Inputs

    syn_idstringrequired
    The Synapse ID to validate (for example syn123456).
  • synapsemcp_check_user_certifiedUse this when the user wants to know whether a Synapse user has passed the certification quiz required for uploading human data.Read-only

    Check User Certified

    Use this when the user wants to know whether a Synapse user has passed the certification quiz required for uploading human data. User ID example: '1234567'.

    Inputs

    user_idintegerrequired
    The numeric Synapse user ID.
  • synapsemcp_get_curation_taskUse this when the user wants the details of a single Synapse curation task by its numeric task ID.Read-only

    Get Curation Task

    Use this when the user wants the details of a single Synapse curation task by its numeric task ID. Task ID example: 42.

    Inputs

    task_idintegerrequired
    The numeric Synapse curation task ID.
  • synapsemcp_get_curation_task_resourcesUse this when the user wants the Synapse resources (RecordSets, Folders, EntityViews) linked to a curation task — the data the curator will act on.Read-only

    Get Curation Task Resources

    Use this when the user wants the Synapse resources (RecordSets, Folders, EntityViews) linked to a curation task — the data the curator will act on. Task ID example: 42.

    Inputs

    task_idintegerrequired
    The numeric Synapse curation task ID.
  • synapsemcp_get_entityReturn Synapse entity metadata by ID (projects, folders, files, tables, etc.).Read-only

    Fetch Entity

    Return Synapse entity metadata by ID (projects, folders, files, tables, etc.). Only retrieves metadata information - does not download file content.

    Inputs

    entity_idstringrequired
    The Synapse entity ID to fetch (for example syn123456).
  • synapsemcp_get_entity_aclUse this when the user wants the sharing settings or access control list (ACL) of one single Synapse entity — who can access it and with what permissions.Read-only

    Get Entity ACL

    Use this when the user wants the sharing settings or access control list (ACL) of one single Synapse entity — who can access it and with what permissions. Entity ID example: syn123456. Optionally filter to a single principal ID (user or team), e.g. '3379097'. Use list_entity_acl to audit ACLs across many entities under a container.

    Inputs

    entity_idstringrequired
    The Synapse entity ID (for example syn123456).
    principal_idinteger
    Optional user or team ID to filter to a single principal.
  • synapsemcp_get_entity_annotationsReturn custom annotation key/value pairs for a Synapse entity.Read-only

    Fetch Entity Annotations

    Return custom annotation key/value pairs for a Synapse entity.

    Inputs

    entity_idstringrequired
    The Synapse entity ID whose annotations to fetch (for example syn123456).
  • synapsemcp_get_entity_childrenList children for Synapse container entities (projects or folders).Read-only

    List Entity Children

    List children for Synapse container entities (projects or folders).

    Inputs

    entity_idstringrequired
    The Synapse container entity ID (project or folder) whose children to list (for example syn123456).