Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Devin MCP server

Vendor MCP
Open markdown

The Devin MCP connector routes your AI agent's tool calls to Devin's own MCP server through Scalekit. Each user connects their own Devin access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 19 tools.

Tools
19
What they doRead · write · destructive
0 · 19 · 00 read19 write0 destructive
Users sign in with

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

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

    Console steps with screenshots

    Register your Devin API key with Scalekit so it stores it securely and injects it into every request. Devin uses API key authentication.

    1. Get your Devin API key

      • Sign in to Devin and go to Settings → Devin API.
      • Click the API keys (legacy) tab.
      • Under Personal API key, click View key to reveal your key, or expand the dropdown to regenerate it.

      Devin Settings → Devin API page showing the Personal API key with a View key button

    2. Create a connection in Scalekit

      • In Scalekit dashboard, go to AgentKit → Connections → Create Connection. Find Devin MCP and click Create.
      • Note the Connection name — you will use this as connection_name in your code (e.g., devinmcp).
      • Click Save.
    3. Add a connected account

      Connected accounts link a specific user identifier in your system to their Devin API key. Add one in the dashboard to test. In production, each user adds their own through the authorization link: they enter their credentials on the page it opens.

      In the dashboard, to test

      • Open the connection you created and click the Connected Accounts tab → Add account.
      • Fill in:
        • Your User’s ID — a unique identifier for this user in your system (e.g., user_123)
        • API Key — the Devin API key from step 1
      • Click Create Account.

      From your backend, if your app already has the credentials

      For example, when users enter them on a settings page in your app:

      import { Scalekit, ConnectorStatus } from '@scalekit-sdk/node';
      const scalekit = new Scalekit(
      process.env.SCALEKIT_ENVIRONMENT_URL,
      process.env.SCALEKIT_CLIENT_ID,
      process.env.SCALEKIT_CLIENT_SECRET,
      );
      // Never hard-code credentials — read from secure storage or user input
      const devinApiKey = getUserDevinApiKey(); // retrieve from your secure store
      const authorizationDetails = {
      details: {
      case: 'staticAuth',
      value: {
      details: {
      token: devinApiKey,
      },
      },
      },
      };
      let { connectedAccount } = await scalekit.actions.upsertConnectedAccount({
      connectionName: 'devinmcp',
      identifier: 'user_123',
      authorizationDetails,
      });
      // Make sure the account is ACTIVE before the first tool call.
      if (connectedAccount?.status !== ConnectorStatus.ACTIVE) {
      ({ connectedAccount } = await scalekit.actions.upsertConnectedAccount({
      connectionName: 'devinmcp',
      identifier: 'user_123',
      authorizationDetails,
      }));
      }
  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 = 'devinmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Devin 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: 'devinmcp_devin_session_search',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Devin MCP server credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • devinmcp_ask_questionAsk any question about a GitHub repository and get an AI-powered, context-grounded response.Write

    Ask Question

    Ask any question about a GitHub repository and get an AI-powered, context-grounded response.

    Inputs

    questionstringrequired
    No description.
    repoNamestringrequired
    No description.
  • devinmcp_devin_automation_manageManage Devin automations that run Devin in response to events (GitHub, Slack, Linear, schedules, webhooks) — list, get, create, update, delete, or run them.Write

    Devin Automation Manage

    Manage Devin automations that run Devin in response to events (GitHub, Slack, Linear, schedules, webhooks) — list, get, create, update, delete, or run them.

    Inputs

    actionstringrequired
    No description.one of listgetschemastemplatescreatevalidate_createupdatevalidate_updatedeleterun
    actionsstring
    No description.
    afterstring
    No description.
    agent_typesstring
    No description.
    automation_idstring
    No description.
    concurrencystring
    No description.
    creator_idstring
    No description.
    enabledstring
    No description.
    event_datastring
    No description.
    event_typestring
    No description.
    firststring
    No description.
    limitsstring
    No description.
    metadatastring
    No description.
    namestring
    No description.
    notificationsstring
    No description.
    promptstring
    No description.
    run_asstring
    No description.
    searchstring
    No description.
    security_profilestring
    No description.
    session_settingsstring
    No description.
    template_idstring
    No description.
    toolsstring
    No description.
    triggersstring
    No description.
  • devinmcp_devin_code_scan_manageManage Devin code scans and scan profiles — list scans and findings, manage profiles, create scans, or remediate findings.Write

    Devin Code Scan Manage

    Manage Devin code scans and scan profiles — list scans and findings, manage profiles, create scans, or remediate findings.

    Inputs

    actionstringrequired
    No description.one of list_scanslist_findingslist_profilesget_profilecreate_profileupdate_profilecreate_scanremediate_finding
    afterstring
    No description.
    communication_guidancestring
    No description.
    descriptionstring
    No description.
    exclude_globsstring
    No description.
    finding_idstring
    No description.
    firststring
    No description.
    hoststring
    No description.
    include_globsstring
    No description.
    ingestion_source_guidancestring
    No description.
    investigation_guidancestring
    No description.
    modestring
    No description.
    post_ingestion_guidancestring
    No description.
    profile_idstring
    No description.
    profile_namestring
    No description.
    remediation_guidancestring
    No description.
    repo_namestring
    No description.
    report_guidancestring
    No description.
    scan_idstring
    No description.
    scan_typestring
    No description.
    severitystring
    No description.
    statusstring
    No description.
    threat_model_guidancestring
    No description.
    time_afterstring
    No description.
    time_beforestring
    No description.
    triage_guidancestring
    No description.
    validation_guidancestring
    No description.
  • devinmcp_devin_knowledge_manageManage Devin knowledge notes and suggestions — list, get, create, or update entries.Write

    Devin Knowledge Manage

    Manage Devin knowledge notes and suggestions — list, get, create, or update entries.

    Inputs

    actionstringrequired
    No description.one of listgetcreateupdatedeletefolderslist_suggestionsview_suggestiondismiss_suggestions
    afterstring
    No description.
    bodystring
    No description.
    contentstring
    No description.
    event_idstring
    No description.
    event_idsstring
    No description.
    firststring
    No description.
    folder_pathstring
    No description.
    limitstring
    No description.
    namestring
    No description.
    note_idstring
    No description.
    offsetstring
    No description.
    pinned_repostring
    No description.
    querystring
    No description.
    searchstring
    No description.
    since_daysstring
    No description.
    statusstring
    No description.
    triggerstring
    No description.
  • devinmcp_devin_oncall_manageView a Devin Oncall report's current responder membership, or a responder's open issues.Write

    Devin Oncall Manage

    View a Devin Oncall report's current responder membership, or a responder's open issues.

    Inputs

    actionstringrequired
    No description.one of report_contextresponder_issues
    afterstring
    No description.
    firststring
    No description.
    order_bystring
    No description.
    report_idstring
    No description.
    responder_idstring
    No description.
  • devinmcp_devin_playbook_manageManage Devin playbooks — list, get, create, or update playbook entries.Write

    Devin Playbook Manage

    Manage Devin playbooks — list, get, create, or update playbook entries.

    Inputs

    actionstringrequired
    No description.one of listgetcreateupdatedelete
    afterstring
    No description.
    bodystring
    No description.
    contentstring
    No description.
    firststring
    No description.
    macrostring
    No description.
    playbook_idstring
    No description.
    structured_output_schemastring
    No description.
    titlestring
    No description.
  • devinmcp_devin_review_manageTrigger a Devin Review for a pull/merge request, or fetch its latest review status.Write

    Devin Review Manage

    Trigger a Devin Review for a pull/merge request, or fetch its latest review status.

    Inputs

    actionstringrequired
    No description.one of triggerget_status
    pr_urlstringrequired
    No description.
    commit_shastring
    No description.
  • devinmcp_devin_schedule_manageManage scheduled Devin sessions — list, get, create, update, or delete schedules.Write

    Devin Schedule Manage

    Manage scheduled Devin sessions — list, get, create, update, or delete schedules.

    Inputs

    actionstringrequired
    No description.one of listgetcreateupdatedelete
    agentstring
    No description.
    bypass_approvalstring
    No description.
    enabledstring
    No description.
    frequencystring
    No description.
    limitstring
    No description.
    namestring
    No description.
    notify_onstring
    No description.
    offsetstring
    No description.
    platformstring
    No description.
    playbook_idstring
    No description.
    promptstring
    No description.
    schedule_idstring
    No description.
    schedule_typestring
    No description.
    scheduled_atstring
    No description.
    target_devin_idstring
    No description.