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
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the Mobbin MCP connection
In AgentKit > Connections, create a Mobbin MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Mobbin MCP server, so you don't need to register an OAuth app.
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.actionsconst connector = 'mobbinmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'mobbinmcp_list_collections',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "mobbinmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Mobbin MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="mobbinmcp_list_collections",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmobbinmcp_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-onlyGet 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
webpjpgdefaultwebp 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-onlyList 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-onlySearchFlows
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
webpjpgdefaultwebp 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-onlySearchScreens
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
webpjpgdefaultwebp 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
deepstandardfastdefaultdeep 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-onlySearchSections
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
webpjpgdefaultwebp 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.WriteAdd 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.WriteCreate 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.WriteSave 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.
No tools match.