Skip to main content
Glama

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 build

First-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

mobbin_connect

Launch browser and restore saved session

mobbin_login

Navigate to login page for manual authentication

mobbin_disconnect

Save session and close browser

Navigation

mobbin_navigate

Go to any Mobbin URL, wait for load

mobbin_scroll

Scroll page to load more content (infinite scroll)

Interaction

mobbin_click

Click element by text, CSS selector, or coordinates

mobbin_type

Type text into input field

Perception

mobbin_screenshot

Take viewport screenshot (returns PNG)

mobbin_extract

Extract structured data from current page

Collection

mobbin_download

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.mjs

Images 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.json

Documentation

Document

Purpose

MOBBIN-INSTRUCTIONS.md

Entry point — key rules for AI agents

Tool Reference

All 10 tools with links to detailed docs

Operational Guide

Rules, collection workflows, script templates, timeouts

Connection Guide

MCP config, browser lifecycle, session persistence, direct script usage

URL Patterns

Search templates, filter catalogs, CDN URLs

Page Types

Page classification reference

Troubleshooting

Known issues and solutions

Tech stack

Component

Technology

MCP server

@modelcontextprotocol/sdk 1.12

Browser automation

playwright 1.52 (Chromium)

Language

TypeScript 5.8 (ESM, strict)

Transport

stdio (JSON-RPC 2.0)

Session storage

Playwright storageState (JSON cookies)

License

MIT

Available Tools

10 tools
mobbin_clickA

Click on an element in the current page. Provide one of: text (click element containing text), selector (CSS selector), or x+y coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoX coordinate to click at.
yNoY coordinate to click at.
textNoClick element containing this text.
selectorNoCSS selector of the element to click.

TDQS

A4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoRun browser in headless mode (default: true). Set false for interactive login.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesArray of image URLs to download.
prefixNoOptional prefix for filenames (e.g., "airbnb-onboarding").

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_navigateA

Navigate to a Mobbin URL and wait for the page to load. Returns page title and final URL. Known URL patterns: {"home":"https://mobbin.com","login":"https://mobbin.com/login","exploreWeb":"https://mobbin.com/explore/web","exploreMobile":"https://mobbin.com/explore/mobile","browseWebScreens":"https://mobbin.com/browse/web/screens","browseMobileScreens":"https://mobbin.com/browse/mobile/screens","browseWebFlows":"https://mobbin.com/browse/web/flows","browseMobileFlows":"https://mobbin.com/browse/mobile/flows"} Screen categories: home, dashboard, login, signup, onboarding, checkout, product-detail, browse-discover, search, settings-preferences, profile, chat-detail, notifications, loading, success, error, empty-state, pricing, payments, orders Flow categories: logging-in, signing-up, onboarding, adding-to-cart-bag, editing-profile, searching, filtering-sorting, subscribing-upgrading, chatting-sending-messages, sharing, uploading, booking Screen category URL: /explore/{mobile|web}/screens/{category} Flow category URL: /explore/{mobile|web}/flows/{category} Screen detail URL: /explore/screens/{UUID}

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull Mobbin URL to navigate to.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It discloses the wait-for-load behavior, return values, and final URL (implying redirects). It does not mention session/auth requirements, but for a navigation tool this is a reasonable level of disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First sentence is front-loaded and covers core purpose. The remainder is a verbose reference of URL patterns, but each section is labeled and useful; it is long yet not redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description explicitly states return values (page title and final URL). It also gives complete URL-construction guidance, making the tool usable with the parameter alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema only says 'Full Mobbin URL'. Description adds extensive URL patterns, category-specific endpoints, and detail URL format, greatly enriching parameter meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Navigate to a Mobbin URL'. It clearly states the action and what it returns, distinguishing it from sibling tools like mobbin_click or mobbin_scroll.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context by listing known valid URL patterns and screen/flow categories, implicitly guiding when navigation is appropriate. However, it does not explicitly name alternatives or exclusion criteria.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageNoCapture the full scrollable page instead of just the viewport (default: false).

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoPixels to scroll (default: 800).
directionNoScroll direction (default: down).down

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to type.
clearNoClear the field before typing (default: false).
selectorNoCSS selector of the input field (optional — types into focused element if omitted).
pressEnterNoPress Enter after typing (default: false).

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 10 tool updatesv1.0.0
    • First observedmobbin_click
    • First observedmobbin_connect
    • First observedmobbin_disconnect
    • First observedmobbin_download
    • First observedmobbin_extract
    • First observedmobbin_login
    • First observedmobbin_navigate
    • First observedmobbin_screenshot
    • First observedmobbin_scroll
    • First observedmobbin_type

TDQS

A4.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI coding tools to control a browser for automated actions, UI extraction, network interception, and screenshots.
    1
    -

Latest Blog Posts

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