Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Mobbin MCP server

Vendor MCP
Open markdown

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

Tools
8
What they doRead · write · destructive
5 · 3 · 05 read3 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 Mobbin MCP connection

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

    Scalekit credentials are available for Mobbin 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 = 'mobbinmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Mobbin 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: 'mobbinmcp_list_collections',
    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
  • mobbinmcp_get_collection_contentsFetch one page of the items saved in a collection, or in everything the user saved: iOS screens, iOS flows, web screens, web flows or website sections, one kind per call.Read-only

    Get Collection Contents

    Fetch one page of the items saved in a collection, or in everything the user saved: iOS screens, iOS flows, web screens, web flows or website sections, one kind per call. `id` is a collection id from list_collections, the UUID at the end of a Mobbin collection URL (https://mobbin.com/collections/<id>), or `all-saved` for everything saved for the user's Mobbin MCP connection. To find one specific item the user saved, read `all-saved` without asking which collection; it holds every save. Items come newest save first. `collection.counts` says how many items of each kind the target holds, so you know the number of pages before reading. Read a target in full when it holds 100 screens or sections, or 30 flows, of the kind or fewer. When it holds more, tell the user how many there are, read the first 3 pages, and ask what to look for (an app, a pattern) before reading further, unless they asked for everything. A page can hold fewer than `limit` items and still have a next page. You can read at most 20 pages of a kind. Older saves past that cannot be fetched here. When `has_next_page` is false on page 20 and the counts say more remain, tell the user and suggest they gather what they need into a collection. Each item carries the user's team's `comments` on it, oldest first. Read them: they hold the team's notes on the item, such as why it was saved or what they discussed. Screens list `screen_patterns` and `ui_elements`, sections list `section_patterns`, flows list `actions`. Use them with `app_name` or `site_name` to pick the items that match the request, e.g. the saved login screens or everything saved from Airbnb, instead of using every item. Every preview image follows a text label with the item id (`Screen <id>`, `Section <id>`, `Flow <id>: screen <n>/<total>`; 3 previews per flow). Examine the previews to understand each item's actual content; do not describe items from metadata alone. Inline images are low-res previews for you to read, not for the user. Each result's `image_url` is the high-resolution image. Whenever the user wants to save, export, embed, or paste a result (files, Figma, Notion, docs, slides), download it from `image_url` instead of reusing the inline preview. Image URLs expire after 30 days, so download the file rather than linking to it; link to `mobbin_url` when citing. When you present items, cite each one as a markdown link to its `mobbin_url`.

    Inputs

    content_typestringrequired
    Which kind of saved item to fetch.one of screensflowssections
    idstringrequired
    A collection id from list_collections, or "all-saved" for everything saved for the user's Mobbin MCP connection.
    image_formatstring
    Image format. Use jpg if your client does not support webp.one of webpjpgdefault webp
    limitinteger
    Items per page. Default 20 for screens and sections, 5 for flows. Flows allow at most 10, as each flow inlines 3 previews. Use the same value on every page when paging through a target. Pages are counted in units of `limit`, so changing it skips or repeats items.
    output_destinationstring
    What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.one of codedesign_tooldocreference_librarychatother
    output_toolstring
    The product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.
    pageinteger
    1-based page. `has_next_page` says whether another follows.default 1
    platformstring
    Required for screens and flows. Ignored for sections.one of iosweb
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_list_collectionsList what's saved for the user's Mobbin MCP connection: All saved, then each collection, most recently changed first.Read-only

    List Collections

    List what's saved for the user's Mobbin MCP connection: All saved, then each collection, most recently changed first. Each entry counts the iOS screens, iOS flows, web screens, web flows and website sections the user can see, and links to it on Mobbin. A count of zero means there is nothing of that kind to fetch: tell the user instead of fetching. Use it when the user refers to their saved screens, flows or sections, or to a collection by name. Collection names are not unique. Before fetching from a collection the user named, check whether more than one entry has that name; if so, stop and ask the user which one they mean, telling them apart by `updated_at` or by what each holds. A private collection's `mobbin_url` opens only for the user and their teammates; say so when you give one out.

    Inputs

    output_destinationstring
    What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.one of codedesign_tooldocreference_librarychatother
    output_toolstring
    The product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_search_flowsSearch Mobbin for multi-step user flows (e.g.Read-only

    SearchFlows

    Search Mobbin for multi-step user flows (e.g. onboarding, checkout) using natural language. Returns flow screens with inline images.

    Inputs

    platformstringrequired
    Platform to search.one of iosweb
    querystringrequired
    Describe one user journey in plain language — the steps and what you'd see along the way. Be specific; detail helps. Good: "onboarding with personalization steps", "checkout with payment method selection". Avoid: combining multiple flows (search separately), negations, vague style words, disconnected keyword lists. Name a specific app to filter results to it (e.g. "Duolingo onboarding"). Do not include platform (ios/web) — use the dedicated parameter.
    image_formatstring
    Image format. Use jpg if your client does not support webp.one of webpjpgdefault webp
    limitinteger
    Maximum number of flows to return. Lower limits are recommended to manage context size.default 5
    output_destinationstring
    What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.one of codedesign_tooldocreference_librarychatother
    output_toolstring
    The product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.
    pageinteger
    Page number for paginating through results. Maximum 20.default 1
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_search_screensSearch Mobbin for UI screens using natural language.Read-only

    SearchScreens

    Search Mobbin for UI screens using natural language. Returns matching screens with inline images and metadata.

    Inputs

    platformstringrequired
    Platform to searchone of iosweb
    querystringrequired
    Describe one screen in plain language — the UI elements you'd see and how they relate. Be specific; detail helps. Good: "login screen with biometric authentication", "checkout page with promo code field and Apple Pay button". Avoid: combining multiple screens/intents (search separately), negations ("without ads"), vague style words ("modern", "clean"), disconnected keyword lists. Name a specific app to filter results to it (e.g. "Spotify now-playing screen"). Do not include platform (ios/web) — use the dedicated parameter.
    exclude_screen_idsarray
    Screen IDs to exclude from results
    image_formatstring
    Image format. Use jpg if your client does not support webp.one of webpjpgdefault webp
    limitinteger
    Maximum number of screens to return. Higher number of screens returned causes increased context usage.default 20
    modestring
    Search mode. "standard" returns results with low latency. "deep" uses an AI-powered pipeline that interprets intent and scores each candidate for relevance, keeping the strong matches — ideal for nuanced queries. "fast" is a deprecated alias for "standard" and will be removed in a future version — use "standard" instead.one of deepstandardfastdefault deep
    output_destinationstring
    What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.one of codedesign_tooldocreference_librarychatother
    output_toolstring
    The product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_search_sectionsSearch Mobbin for website sections (e.g.Read-only

    SearchSections

    Search Mobbin for website sections (e.g. About, Pricing, Footer) using natural language. Returns section images from real websites.

    Inputs

    querystringrequired
    Describe one website section in plain language — the content and elements you'd see. Be specific; detail helps. Good: "pricing page with plan comparison table", "hero section with signup form". Avoid: combining multiple sections (search separately), negations, vague style words, disconnected keyword lists.
    image_formatstring
    Image format. Use jpg if your client does not support webp.one of webpjpgdefault webp
    limitinteger
    Maximum number of sections to return. Higher number of sections returned causes increased context usage.default 20
    output_destinationstring
    What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.one of codedesign_tooldocreference_librarychatother
    output_toolstring
    The product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.
    pageinteger
    Page number for paginating through results.default 1
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_add_commentAdd a comment to a screen, flow or website section for the user's Mobbin MCP connection, such as why the user saved it.Write

    Add Comment

    Add a comment to a screen, flow or website section for the user's Mobbin MCP connection, such as why the user saved it. The user and their teammates see it on Mobbin, and get_collection_contents returns it. Use an id from another Mobbin tool's result, like search or get_collection_contents, or the id (a UUID) in a Mobbin link the user shares. Never guess or make up an id. Use it only when the user asks to comment on or add a note to an item. An item that isn't saved yet is saved to All saved first. Mobbin adds a line saying which app posted the comment, so don't sign it. Each call posts a new comment, so send each note once. @mentions aren't supported. If the user wants to mention a teammate, tell them first that no one will be notified and the mention stays plain text.

    Inputs

    commentstringrequired
    Plain text. Line breaks are kept. @mentions don't notify anyone.
    content_idstringrequired
    A screen, flow or section id.
    content_typestringrequired
    No description.one of screensflowssections
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_create_collectionCreate a collection for the user's Mobbin MCP connection, and return its id and link.Write

    Create Collection

    Create a collection for the user's Mobbin MCP connection, and return its id and link. It starts empty: call save_content with the returned id to add screens, flows or sections. It is private: only the user and their teammates can open the link, and say so when you give it out. The user can make it public on mobbin.com. Use it when the user asks for a new collection, or wants to save into one that list_collections does not have. Collection names are not unique, so check list_collections first when the user may already have one with that name.

    Inputs

    namestringrequired
    The collection's title on Mobbin.
    descriptionstring
    What the collection is for, shown under its name on Mobbin.
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
  • mobbinmcp_save_contentSave screens, flows or website sections for the user's Mobbin MCP connection.Write

    Save Content

    Save screens, flows or website sections for the user's Mobbin MCP connection. Pass `collection_id: "all-saved"` to save to All saved, or a collection id from list_collections or create_collection to save to that collection, which also saves to All saved. Only the user and their teammates see saved items, unless that collection is public. Use ids from another Mobbin tool's result, like search or get_collection_contents, or the ids (UUIDs) in Mobbin links the user shares. Never guess or make up an id. Use it only when the user asks to save, keep or collect items, never to remember results for yourself. An item already saved there is left as it is. All or nothing: on an error nothing is saved. Fix what the error names and send the same request again, which is always safe.

    Inputs

    collection_idstringrequired
    A collection id from list_collections, or "all-saved" for everything saved for the user's Mobbin MCP connection.
    contentsarrayrequired
    The items to save.
    task_intentstring
    One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.