Mobbin Agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mobbin AgentFind trending dashboard screens and download top 20"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mobbin Agent
MCP server that gives AI agents browser-based access to Mobbin for design research, screen discovery, and screenshot collection.
Claude Code (AI reasoning + decisions)
↕ MCP Protocol (stdio)
Mobbin Agent (TypeScript MCP server)
↕ Playwright (browser automation)
Mobbin.com (authenticated session)
↕ Local filesystem
data/downloads/ (saved screenshots)The AI agent decides what to browse, search, and download. The MCP server provides deterministic browser control tools. No extra LLM cost per browser action.
Features
10 MCP tools — lifecycle, navigation, interaction, perception, collection
Session persistence — authenticate once, sessions auto-restore across runs
Structured extraction — page data returned as classified JSON (screens, flows, apps, categories)
Full-resolution downloads — batch download screen images at 1920px PNG quality
Anti-detection — realistic user agent, disabled automation flags, human-like delays
Direct script access — bypass MCP and import modules directly for batch tasks
Related MCP server: @meshbrow/mcp-server
Requirements
Node.js >= 18
A Mobbin account (free or paid)
Setup
git clone git@github.com:ismailsaleekh/mobbin-agent.git
cd mobbin-agent
npm install
npx playwright install chromium
npm run buildFirst-time authentication
Mobbin requires login. On first use, authenticate in a visible browser window — the session is saved automatically for future runs.
node -e "
import('./dist/browser.js').then(async ({ BrowserManager }) => {
const { MobbinNavigator } = await import('./dist/mobbin.js');
const browser = new BrowserManager();
await browser.launch({ headless: false });
const mobbin = new MobbinNavigator(browser);
const result = await mobbin.login();
console.log(result);
await browser.close();
process.exit(0);
});
"A Chromium window opens to mobbin.com/login. Log in manually — the server detects completion and saves cookies to data/session/storage-state.json. Sessions last ~24-48 hours.
Usage with Claude Code
Add to your Claude Code MCP configuration:
{
"mcpServers": {
"mobbin": {
"command": "node",
"args": ["/absolute/path/to/mobbin-agent/dist/index.js"]
}
}
}Then ask Claude to browse Mobbin:
"Find trending dashboard screen patterns on Mobbin and download the top 20 at full resolution"
"Browse onboarding flows on Mobbin and extract the screen URLs for e-commerce apps"
Tools
10 tools across 5 categories:
Category | Tool | Description |
Lifecycle |
| Launch browser and restore saved session |
| Navigate to login page for manual authentication | |
| Save session and close browser | |
Navigation |
| Go to any Mobbin URL, wait for load |
| Scroll page to load more content (infinite scroll) | |
Interaction |
| Click element by text, CSS selector, or coordinates |
| Type text into input field | |
Perception |
| Take viewport screenshot (returns PNG) |
| Extract structured data from current page | |
Collection |
| Download screen images by URL to local filesystem |
See Tool Reference for parameters, return formats, and examples.
Example: Batch collection script
gather.mjs collects screen images by pattern — bypasses MCP and imports modules directly:
# Collect trending dashboard screens
PATTERN=Dashboard node gather.mjs
# Collect most popular checkout screens with more scrolling
PATTERN=Checkout SORT=mostPopular MAX_SCROLLS=12 node gather.mjsImages are saved to data/downloads/{pattern}/ at full 1920px PNG resolution.
Project structure
mobbin-agent/
├── src/
│ ├── index.ts # MCP server entry point (stdio transport)
│ ├── browser.ts # Playwright browser lifecycle and interactions
│ ├── mobbin.ts # Mobbin domain logic (login, extract, classify)
│ └── tools.ts # MCP tool definitions and handlers
├── docs/ # Full documentation
│ ├── INDEX.md # Tool reference (all 10 tools)
│ ├── OPERATIONAL-GUIDE.md # Workflows, rules, recipes
│ ├── connection.md # MCP setup, session, direct usage
│ ├── tools/ # Detailed tool docs (5 files)
│ ├── reference/ # URL patterns, page types
│ └── troubleshooting/ # Known issues and solutions
├── gather.mjs # Batch collection example script
├── data/
│ ├── session/ # Saved browser session (gitignored)
│ └── downloads/ # Downloaded images (gitignored)
├── MOBBIN-INSTRUCTIONS.md # Mandatory reading for AI agents
├── package.json
└── tsconfig.jsonDocumentation
Document | Purpose |
Entry point — key rules for AI agents | |
All 10 tools with links to detailed docs | |
Rules, collection workflows, script templates, timeouts | |
MCP config, browser lifecycle, session persistence, direct script usage | |
Search templates, filter catalogs, CDN URLs | |
Page classification reference | |
Known issues and solutions |
Tech stack
Component | Technology |
MCP server |
|
Browser automation |
|
Language | TypeScript 5.8 (ESM, strict) |
Transport | stdio (JSON-RPC 2.0) |
Session storage | Playwright |
License
MIT
Available Tools
10 toolsmobbin_clickA
Click on an element in the current page. Provide one of: text (click element containing text), selector (CSS selector), or x+y coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X coordinate to click at. | |
| y | No | Y coordinate to click at. | |
| text | No | Click element containing this text. | |
| selector | No | CSS selector of the element to click. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not reveal important details such as whether coordinates are viewport-relative, whether the element is scrolled into view before clicking, or any side effects like navigation. The description only states the action and target options, lacking transparency about runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the core action and all targeting options. No unnecessary words or redundancy; every segment adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple click tool with no output schema and no annotations, the description adequately covers the essential usage and the mutually exclusive targeting methods. It could add more details about runtime behavior (e.g., coordinate system, click side effects), but the tool's low complexity and the provided parameter semantics make it sufficient for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all four parameters with individual descriptions (100% coverage). The description adds relational semantics by stating that the user must provide exactly one of: text, selector, or x+y coordinates, and that x and y are used together. This 'one of' constraint is not explicit in the schema, making the description valuable beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Click on an element in the current page.' It uses a specific verb ('click') and resource ('element on current page'), and is distinct from sibling tools like mobbin_navigate or mobbin_type, which cover other actions. The alternative targeting methods (text, selector, coordinates) further clarify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to specify the target via 'text', 'selector', or 'x+y coordinates', and notes they are alternatives ('Provide one of'). This gives clear operational context. It does not explicitly exclude other tools or mention when not to use it, but the interaction type is obvious from the action name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_connectA
Launch a browser and connect to Mobbin. Restores saved session if available. Use headless=false for first-time login (so you can see the browser window). After connecting, use mobbin_login if not authenticated.
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | Run browser in headless mode (default: true). Set false for interactive login. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that saved sessions are restored, that headless mode affects visibility, and that this tool does not handle authentication (mobbin_login is needed). This is valuable context beyond the schema, though it doesn't detail outcomes or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary purpose. Each sentence adds distinct value: operation, session behavior, and usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one optional boolean param, no output schema), the description covers the essential aspects: launch, session restore, headless usage, and the next step if unauthenticated. It could mention expected outcome or failure, but it is largely complete for an entry-point tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'headless' parameter, already stating 'Set false for interactive login'. The description adds 'so you can see the browser window' and ties it to first-time login, but this is a rationale, not new semantic meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Launch a browser and connect to Mobbin', using a specific verb and resource. It distinguishes itself from sibling mobbin_login by indicating that authentication is handled separately after connection, making the tool's unique role obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: use headless=false for first-time login, and after connecting, use mobbin_login if not authenticated. This clarifies when to use this tool versus the login alternative and sequences the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_disconnectA
Close the browser and save the current session. The session can be restored on the next mobbin_connect call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses both the destructive action (closing the browser) and the preserving action (saving the session), plus the restore capability. This is clear and transparent for a disconnect tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no filler. The action is front-loaded, and the second sentence adds valuable context about session restoration without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description fully covers the tool's purpose and its key behavioral effect (session restoration). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema fully defines the interface. The baseline of 4 applies, and the description adds no parameter information because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Close the browser and save the current session.' It uses a specific verb and resource, and it distinguishes itself from the sibling mobbin_connect by explicitly describing the save/restore behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool closes the browser while preserving the session for a future mobbin_connect call. It implies when to use it (when ending a browser session but wanting to resume later), though it does not explicitly state exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_downloadA
Download one or more images by URL to the local filesystem. Images are saved to the downloads directory: mobbin-agent/data/downloads/ Returns the list of saved file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of image URLs to download. | |
| prefix | No | Optional prefix for filenames (e.g., "airbnb-onboarding"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the destination directory ('mobbin-agent/data/downloads/') and the return type (list of saved file paths), which is valuable. It does not mention overwrite behavior or error handling, but for a simple download tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences, front-loaded with the purpose, and contains no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only 2 parameters and no output schema, it covers the essential inputs (URLs), behavior (save location), and output (file paths). It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'urls' and 'prefix' having descriptions. The description adds context about the download directory but does not add parameter-specific meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Download one or more images by URL to the local filesystem.' It uses a specific verb and resource, and is distinct from browser automation siblings like navigate, click, and extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use when you need to save images to a local directory. No explicit alternatives or exclusions are given, but none of the sibling tools offer download functionality, so this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_extractA
Extract structured data from the current Mobbin page. Returns: page type, headings, all links (with Mobbin-specific filtering for screens/flows/apps/categories), all images (with design-relevant image filtering), and a text preview. Use this to understand page content without taking a screenshot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses filtering behavior ('Mobbin-specific filtering' for links, 'design-relevant image filtering') and the text preview, giving transparency into what the tool returns. It does not mention side effects or auth requirements, but for a read-only extraction tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and entirely efficient. It front-loads the purpose, lists return content, and ends with usage context. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description fully compensates by enumerating the return categories. It gives enough detail for an agent to understand what it will receive and when to invoke the tool. The only minor gap is the vague 'Mobbin-specific filtering,' but this is not essential for selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is trivially fully covered. The description does not need to explain parameters. Per the rubric, a baseline of 4 is appropriate when there are no params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Extract structured data from the current Mobbin page.' It enumerates the exact return contents (page type, headings, links, images, text preview), which distinguishes it from sibling tools like mobbin_screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The last sentence, 'Use this to understand page content without taking a screenshot,' provides clear guidance on when to use the tool and contrasts it with the screenshot alternative. It does not explicitly list exclusion criteria or other alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_loginA
Navigate to Mobbin login page and wait for the user to authenticate manually. The browser must be launched in non-headless mode (mobbin_connect with headless=false). Waits up to 5 minutes for login completion, then saves session cookies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure. It transparently explains the tool's non-deterministic behavior (manual user authentication), the 5-minute wait, the requirement for non-headless mode, and the side effect of saving session cookies. This gives significant insight beyond simple 'login' terminology.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise yet comprehensive, packing the main action, key prerequisite, timeout, and outcome into two sentences. Every piece of information is necessary, and the structure flows logically from action to prerequisite to result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no annotations, and no output schema, the description covers the essential context: what it does, the manual step, the timeout, and the side effect. It doesn't specify what happens on timeout or the return value, but for this simple login tool with no output schema, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts no parameters, so under the rubric the baseline is 4. The description does not introduce any implicit parameters and the schema is empty, so there is nothing more to explain. The description appropriately focuses on the process rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: navigating to the Mobbin login page, waiting for manual authentication, and saving session cookies. It uses a specific verb+resource structure and distinguishes itself from sibling tools by focusing on the login workflow rather than general navigation or extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, including the critical prerequisite that the browser must be launched in non-headless mode via mobbin_connect with headless=false. While it doesn't explicitly contrast with alternatives, it gives enough guidance on the required setup, making it clearly usable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_screenshotA
Take a screenshot of the current browser viewport. Returns a PNG image. Use this to see what is currently displayed on the Mobbin page.
| Name | Required | Description | Default |
|---|---|---|---|
| fullPage | No | Capture the full scrollable page instead of just the viewport (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states the tool captures the current browser viewport and returns a PNG image, making the read-only nature and output format explicit. It does not mention any side effects, which is appropriate for a screenshot action. This is adequate for the tool's simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: 'Take a screenshot of the current browser viewport.' The subsequent sentences about output and usage add necessary value without redundancy. Every sentence earns its place, and the overall length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—one optional parameter, no output schema, and no annotations—the description is complete. It explains the action, the output format, and the intended use case. The sibling tool names provide additional context about the browser automation environment, making this description sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the fullPage parameter fully described in the schema. The description adds no additional parameter details beyond referencing 'current browser viewport,' which aligns with the default behavior. Since the schema already provides complete parameter semantics, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Take a screenshot of the current browser viewport.' It specifies the resource (browser viewport) and output (PNG image). This distinguishes it from sibling tools like mobbin_extract or mobbin_download, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: 'Use this to see what is currently displayed on the Mobbin page.' It does not explicitly mention alternatives or when not to use it, but the use case is evident. It explains the practical benefit without requiring the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_scrollA
Scroll the current page up or down. Useful for loading more content (Mobbin uses infinite scroll). Returns scroll position.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Pixels to scroll (default: 800). | |
| direction | No | Scroll direction (default: down). | down |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses the return behavior ('Returns scroll position') and implies a visual page change, but it doesn't mention potential side effects like network requests triggered by infinite scroll or whether scrolling is synchronous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action, and no unnecessary wording. Perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters, no output schema, and no annotations, the description covers the essential purpose, usage context, and return value. It could specify the return value type, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond what the schema already provides for amount and direction; it merely restates the scroll concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Scroll the current page up or down.' It specifies both the action (scroll) and the resource (current page), and is distinct from sibling tools like mobbin_navigate or mobbin_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: 'Useful for loading more content (Mobbin uses infinite scroll).' This tells the agent when to use the tool, though it doesn't explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobbin_typeA
Type text into an input field. Optionally specify a CSS selector for the target input. Can press Enter after typing.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to type. | |
| clear | No | Clear the field before typing (default: false). | |
| selector | No | CSS selector of the input field (optional — types into focused element if omitted). | |
| pressEnter | No | Press Enter after typing (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions typing, optional selector, and Enter key, but does not detail behavior when selector is omitted (though schema covers it), error handling, or side effects like field clearing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundancy. It front-loads the core action and provides key optional behaviors efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple typing tool with four well-documented parameters and no output schema, the description covers the essential usage. It lacks details on edge cases but is sufficient for basic selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to explain parameters. It adds minor context (e.g., 'Can press Enter after typing') but largely repeats what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Type' and the resource 'input field', and mentions optional selector and Enter key. This distinguishes it clearly from sibling tools like mobbin_click, mobbin_scroll, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing the action, but does not explicitly state when to use this tool over alternatives. It does not mention exclusions or compare to mobbin_click or other input methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v1.0.0- First observed
mobbin_click - First observed
mobbin_connect - First observed
mobbin_disconnect - First observed
mobbin_download - First observed
mobbin_extract - First observed
mobbin_login - First observed
mobbin_navigate - First observed
mobbin_screenshot - First observed
mobbin_scroll - First observed
mobbin_type
TDQS
Each tool targets a distinct action: connection, navigation, interaction, extraction, and download. There is no overlap between screenshot and extract, or between navigate and click, making tool selection unambiguous.
All tools follow a uniform `mobbin_` prefix with consistent lowercase snake_case verbs (connect, login, navigate, screenshot, extract, etc.). The naming pattern is predictable and uniform.
10 tools is well within the ideal range for a browser automation server. Each tool covers a necessary part of the workflow without unnecessary redundancy or bloat.
The tool set covers the full lifecycle: connection, login, navigation, interaction, data extraction, and asset download. Minor gaps exist (no explicit wait or browser history navigation), but these can be worked around with existing tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
Scrape, crawl and search the web for AI agents via MCP.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
MCP server for Mint — AI-powered QA that runs your app in a real browser on every PR.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI agents real browser capabilities including screenshotting, action execution, data extraction, and multi-persona auditing for frontend validation.746MIT

@meshbrow/mcp-serverofficial
AlicenseNot gradedqualityBmaintenanceMCP server for Meshbrow that gives AI agents full browser automation capabilities with stealth anti-detection, enabling natural language control of browser sessions, data extraction, and multi-browser fleets.MIT- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI coding tools to control a browser for automated actions, UI extraction, network interception, and screenshots.1-
- FlicenseNot gradedqualityBmaintenanceMCP server that enables AI agents to automate browser testing via Chromium, providing tools for navigation, interaction, and inspection.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ismailsaleekh/mobbin-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server