Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the HappyScribe MCP server

Vendor MCP
Open markdown

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

Tools
39
What they doRead · write · destructive
21 · 14 · 421 read14 write4 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 HappyScribe MCP connection

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

    Scalekit credentials are available for HappyScribe 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 = 'happyscribemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize HappyScribe 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: 'happyscribemcp_get_folder_hierarchy',
    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
  • happyscribemcp_get_conversationGet the full content of an AI conversation, including all messages and responses.Read-only

    Get Conversation

    Get the full content of an AI conversation, including all messages and responses.

    Inputs

    idintegerrequired
    Conversation ID (from list_conversations)
  • happyscribemcp_get_folder_hierarchyGet the folder hierarchy with transcription counts.Read-only

    Get Folder Hierarchy

    Get the folder hierarchy with transcription counts. Shows accessible folders organized by location (Team, Private, Shared with me). USE THIS when list_transcriptions returns more results than you can effectively browse and you need to understand how transcriptions are organized. Then use list_transcriptions with folder_path to browse specific folders.

    Inputs

    locationstring
    Optional. Filter by location: workspace (team folders), private (your personal folders), or shared (folders shared with you by others).one of workspaceprivateshared
    max_depthinteger
    Optional. Maximum folder depth to return (default: unlimited). Depth 1 = immediate children only, 2 = children and grandchildren, etc.
    root_pathstring
    Optional. Start from this folder path instead of root (e.g., "/Projects/2024"). Only returns folders under this path. When set, output is flat (not grouped by location).
  • happyscribemcp_get_glossaryGet the full contents of a glossary, including all custom terms and their definitions.Read-only

    Get Glossary

    Get the full contents of a glossary, including all custom terms and their definitions.

    Inputs

    idintegerrequired
    Glossary ID (from list_glossaries)
  • happyscribemcp_get_helpdesk_articleGet the full content of a HappyScribe help article by ID.Read-only

    Get Helpdesk Article

    Get the full content of a HappyScribe help article by ID. Use search_helpdesk first to find relevant article IDs.

    Inputs

    idstringrequired
    Help article ID (from search_helpdesk results)
  • happyscribemcp_get_meeting_diagnosticsGet technical diagnostics for a meeting recording: Notetaker join status, recording state, processing errors, and timeline events.Read-only

    Get Meeting Diagnostics

    Get technical diagnostics for a meeting recording: Notetaker join status, recording state, processing errors, and timeline events. Use this when a meeting recording is missing or has issues.

    Inputs

    calendar_event_idintegerrequired
    Calendar event ID (from list_calendar_events)
  • happyscribemcp_get_projectGet details of a specific project: name, instructions, notes, files, and members.Read-only

    Get Project

    Get details of a specific project: name, instructions, notes, files, and members. Use list_projects first to find the project ID.

    Inputs

    idintegerrequired
    The project ID (from list_projects)
  • happyscribemcp_get_summary_templateGet the full details of a summary template by ID (for user/workspace templates) or slug (for system templates).Read-only

    Get Summary Template

    Get the full details of a summary template by ID (for user/workspace templates) or slug (for system templates). Returns the name, markdown body, sections, meeting context, and visibility.

    Inputs

    idinteger
    Template ID (for user or workspace templates)
    slugstring
    Template slug (for system templates, e.g. "general_meeting_notes")
  • happyscribemcp_get_transcriptionGet detailed information about a specific transcriptionRead-only

    Get Transcription

    Get detailed information about a specific transcription

    Inputs

    idstringrequired
    The transcription ID (hashed_id)
    display_modestring
    Display mode: full_text (default, complete transcription), summary (AI-generated summary, typically <500 words), or metadata_only (no content)one of metadata_onlysummaryfull_text