Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Circleback MCP server

Vendor MCP
Open markdown

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

Tools
11
What they doRead · write · destructive
11 · 0 · 011 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 Circleback MCP connection

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

    Scalekit credentials are available for Circleback 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 = 'circlebackmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Circleback 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: 'circlebackmcp_findcompanies',
    toolInput: { searchTerms: [] },
    })
    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
  • circlebackmcp_findcompaniesFind companies matching the given search terms.Read-only

    FindCompanies

    Find companies matching the given search terms. Searches match company names and company domains. The data returned will be an array of objects with each company's domain and name when available.

    Inputs

    searchTermsarrayrequired
    Array of search terms to find matching company names or domains.
  • circlebackmcp_findprofilesFind profiles matching the given names.Read-only

    Find Profiles

    Find profiles matching the given names. The data returned will be an array of objects representing each of the matching profiles.

    Inputs

    searchTermsarrayrequired
    Array of people's names to find matching profiles.
  • circlebackmcp_gettranscriptsformeetingsGet the full transcripts for given meeting IDs.Read-only

    Get Transcripts For Meetings

    Get the full transcripts for given meeting IDs. Use string IDs like Vd6Pz_kWqLm3xY-c8RhTn. The data returned will be an array of objects, each representing a full transcript for a meeting. Each transcript object will contain the meetingId, meetingName, and an array of transcript segments. Each segment is formatted with timestamps like: {startTimestamp: 123.45, endTimestamp: 128.00, speaker: 'John Doe', words: 'This is a test.'} This should be used to get detailed transcript information for one or many meetings at once.

    Inputs

    intentstringrequired
    The reason why this tool call is being done. This intent is likely to be either the user's original question or the reason to investigate further based on their question.
    meetingIdsarrayrequired
    Array of meeting IDs to fetch, like aB3dEf6hIj9kLm2pQr5tV.
  • circlebackmcp_listtagsList all tags available in the user's workspace.Read-only

    List Tags

    List all tags available in the user's workspace. Returns an array of tag objects with their IDs and names. Use this to discover available tags before filtering meetings, transcripts, or action items by tag.

    Inputs

    intentstringrequired
    The reason why this tool call is being done. This intent is likely to be either the user's original question or the reason to investigate further based on their question.
  • circlebackmcp_readmeetingsGiven up to 50 meeting IDs, fetch detailed information for each meeting.Read-only

    Read Meetings

    Given up to 50 meeting IDs, fetch detailed information for each meeting. Use string IDs like Vd6Pz_kWqLm3xY-c8RhTn. The data returned will be an array of objects, with each containing the meeting ID, name, notes, attendees, action items, AI-generated insights, creator, tags, status, duration, and creation date.

    Inputs

    intentstringrequired
    The reason why this tool call is being done. This intent is likely to be either the user's original question or the reason to investigate further based on their question.
    meetingIdsarrayrequired
    Array of meeting IDs to fetch, like aB3dEf6hIj9kLm2pQr5tV.
  • circlebackmcp_searchactionitemsFind action items that match a given search term or filter.Read-only

    Search Action Items

    Find action items that match a given search term or filter. Returns action items with their title, description, status, assignee, and related meeting details. By default, only action items assigned to the user are returned. To find action items assigned to someone else, use FindProfiles to resolve their name to a profile ID and pass it as assigneeProfileId. Action items can be filtered by search terms, status (PENDING or DONE), tags, and meeting date range (startDate/endDate). Only 25 action items are returned per page, so this function may need to be called multiple times if there are more than that many results. If 25 action items are returned, call this function again with the next pageIndex to ensure you get all results.

    Inputs

    intentstringrequired
    The reason why this tool call is being done. This intent is likely to be either the user's original question or the reason to investigate further based on their question.
    pageIndexnumberrequired
    The page index to fetch. Always start with page 0.
    assigneeProfileIdnumber
    Optional profile ID to filter action items by assignee. Use FindProfiles to resolve a name to a profile ID. Always set this when the user mentions a specific person, including themselves. When omitted, only action items assigned to the user are returned.
    endDatestring
    Optional ISO date string (yyyy-MM-dd) for latest date to include results from.
    searchTermsarray
    Optional array of search terms to find action items by title or description.
    startDatestring
    Optional ISO date string (yyyy-MM-dd) for earliest date to include results from.
    statusstring
    Optional filter by action item status.one of PENDINGDONE
    tagsarray
    Optional array of tag IDs to filter by. When included, only results with at least one of the tags will be returned.
  • circlebackmcp_searchcalendareventsGet calendar events from the user's connected calendars.Read-only

    Search Calendar Events

    Get calendar events from the user's connected calendars. When searching for calendar events, the tool will extract relevant excerpts based on the intent instead of returning the entire data. Each calendar event excerpt includes comprehensive details: event title, date (in the user's timezone), organizer email, attendees (with names, emails, and status), calendar description (if present), meeting platform (Zoom, Google Meet, Microsoft Teams, etc.), meeting platform link, whether it's a recurring event, Circleback join status, and any associated meeting data from the Circleback (meeting ID, status, tag IDs, user notes). You can filter events by providing a date range using startDate and endDate parameters. This is useful for finding upcoming meetings, scheduled calls, or calendar events that the user has. Note: This should be primarily used for searching calendar events happening in the future. Past calendar events have a meeting record if they were captured with Circleback. The only reason to use this to search past calendar events is if searching for the meeting with SearchMeetings yielded no relevant results. Only 50 calendar events are returned per page, so this function may need to be called multiple times if there are more than that many results. If 50 events are returned, call this function again with the next pageIndex to ensure you get all results.

    Inputs

    intentstringrequired
    The reason why this tool call is being done. This intent is likely to be either the user's original question or the reason to investigate further based on their question.
    pageIndexnumberrequired
    The page index to fetch. Always start with page 0.
    endDatestring
    Optional ISO date string (yyyy-MM-dd) for latest date to include results from.
    startDatestring
    Optional ISO date string (yyyy-MM-dd) for earliest date to include results from.
  • circlebackmcp_searchemailsSearch the user's connected email accounts for email threads matching a query.Read-only

    Search Emails

    Search the user's connected email accounts for email threads matching a query. This should be used when the user asks questions about their emails or needs to find specific email conversations. This function queries across all connected email services and retrieves up to 20 matching email threads per service per page. The data returned will be an array of objects, with each containing the email thread ID, subject line, and relevant excerpts. Each email thread object includes metadata such as the sender email, received date, and the fromEmailAddress of the connected account the thread belongs to (if available). Only 20 email threads are returned per page, so this function may need to be called multiple times if there are more than that many results.

    Inputs

    intentstringrequired
    The reason why this tool call is being done. This intent is likely to be either the user's original question or the reason to investigate further based on their question.
    searchTermstringrequired
    A query string to find relevant email threads. Supports search terms and the following filters: - from:email (sender address) or from:me (will search for emails sent by the user) - to:email (recipient address) - participant:email (matches from OR to, prefer using participant for broader search) - before:date (latest date to include results from, in yyyy-MM-dd format) - after:date (earliest date to include results from, in yyyy-MM-dd format) Examples: "Meeting participant:ali@gmail.com", "Q4 report participant:team@company.com", "project update to:sarah@company.com after:2025-04-19", "participant:company.com"
    pageIndexnumber
    The page index to fetch. Always start with page 0.