Asklear Browser MCP
OfficialThis server provides local browser automation tools for MCP-compatible agents, driving Chrome through the Asklear extension while keeping page data on your machine.
navigate: Open a URL in a Chrome tab, with options for silent, visible, or foreground display.observe: Snapshot the current page's accessibility tree.click: Click a page element referenced from a prior snapshot.fill: Type a value into an input element referenced from a snapshot.scroll: Scroll the page by a specified pixel amount.extract: Pull structured text/markdown from the current page.Sessions are isolated per
session_id, and multiple agents can reuse a shared local connector.Browser operations run locally; cookies, credentials, and page data are not sent to the Asklear service.
Provides tools to control a Chrome browser via the Asklear extension, enabling navigation, clicking, filling forms, scrolling, and extracting page content.
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., "@Asklear Browser MCPOpen example.com and extract the main page content"
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.
Asklear Browser MCP
Local browser collection gateway for Asklear — a stdio MCP server that drives your Chrome browser via the Asklear extension.
Page content and login state never leave your computer. All browser operations run locally; the Asklear service never sees your cookies, credentials, or page data.
What you get
Six browser tools, usable from any MCP-compatible agent (Claude Code, Codex, WorkBuddy, Trae, …):
Tool | Purpose |
| Open a URL in a background tab |
| Snapshot the current page's accessibility tree |
| Click an element |
| Type into an input |
| Scroll the page |
| Extract structured text/markdown from the page |
Related MCP server: Browser Jet Pilot
Install
uv tool install git+https://github.com/Asklear/asklear-browser-mcp.gitOr, if you prefer pip:
pip install git+https://github.com/Asklear/asklear-browser-mcp.gitConfigure
Add this to your MCP client configuration:
{
"mcpServers": {
"asklear-local": {
"command": "asklear-browser-agent",
"args": []
}
}
}Prerequisites
Google Chrome installed
macOS, Windows, and Linux are supported
Asklear Chrome extension installed and bound to your account
Verify:
curl http://127.0.0.1:8765/health→{"extension_connected": true}
How it works
Agent (Claude Code / Codex / …)
│ stdio JSON-RPC
▼
asklear-browser-agent (this package)
│ probe / call over loopback HTTP (127.0.0.1:8765)
▼
asklear-browser-connector (independent background daemon)
│ WebSocket
▼
Asklear Chrome extension → your Chrome tabThe first browser tool call starts the Connector in the background when it is
not already running. A second Agent reuses the same loopback daemon; its
session is isolated by session_id. When an Agent exits, the Connector stays
running for the next Agent.
The daemon keeps only local runtime state under
~/.asklear/browser-connector/:
connector.pid— current process IDconnector.log— daemon outputprocess-token-*— a private local process token
You normally do not need to manage it. For troubleshooting, the same package provides:
asklear-browser-connector start
asklear-browser-connector status
asklear-browser-connector stop
asklear-browser-connector restartstart and the automatic start path do not need an API key or OAuth. The
token is read from the private local state file and is never put in the
command line.
Two connections, one Asklear
This package provides browser collection only. For data queries (JD/Tmall/PDD/Douyin market data), use the hosted Asklear MCP:
Connection | Purpose | Transport |
| Data queries, market research | Remote HTTP (OAuth) |
| Browser collection, page extraction | Local stdio |
Both can coexist. Your agent picks the right tool automatically.
License
Apache-2.0. See LICENSE.
Available Tools
6 toolsclickC
Run the local Chrome browser click operation. Page results stay local to the Agent.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| session_id | Yes | ||
| element_ref | Yes | ||
| snapshot_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations provided, the description carries the full burden of behavioral disclosure. It mentions that 'page results stay local to the Agent,' which hints at scope isolation, but doesn't disclose whether the click navigates the page, triggers async events, requires snapshot freshness, or can fail (e.g., stale element). The non-empty sentence adds one useful behavior detail but is insufficient.
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 short sentences with the operation front-loaded. The phrasing 'Run the...operation' is slightly indirect but efficient. The second sentence is a single behavioral note. No wasted words, though the 'local' repetition ('local Chrome' and 'local to the Agent') is redundant.
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?
With no output schema, no annotations, and four parameters with 0% schema coverage, the description should compensate significantly but doesn't. Missing details: what the click does (navigation? form submission?), return values, error behavior, prerequisites like valid session/snapshot, and whether clicking may trigger side effects. The description is too thin for real-world invocation safety.
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 0%, so the description must compensate, but it explains none of the four parameters. The names session_id, snapshot_id, and element_ref suggest their roles, but request_id is entirely unexplained among three required params. The description adds zero parameter meaning beyond the schema.
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 states the tool performs a click operation in a local Chrome browser, which is a clear verb+resource combination. However, it doesn't differentiate from siblings like fill, scroll, or navigate beyond the generic notion of clicking — the scope (what element, what outcome) is implied rather than specified.
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 no guidance on when to invoke this tool versus alternatives like navigate, fill, or scroll. It mentions the local browser context but offers no exclusions, prerequisites, or selection criteria to help an agent choose it over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extractC
Run the local Chrome browser extract operation. Page results stay local to the Agent.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that 'Page results stay local to the Agent.' It does not disclose whether extraction mutates browser state, requires authentication, how failures surface, or what the output shape is — a significant gap for a tool with zero annotation coverage.
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 sentences with no filler; the purpose statement is front-loaded and the locality caveat is a useful second beat. Efficient prose overall, though the brevity edges toward under-specification, which is penalized in other dimensions rather than here.
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 no output schema, no annotations, and 2 params at 0% coverage, the description must compensate for all missing context but does not. An agent cannot determine what the tool returns, how to format the required session_id, or what side effects (if any) extraction has on the browser session — leaving it incomplete for a mutating browser operation.
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 0% and the description references neither parameter. session_id is required but its meaning (how to obtain it, what session it refers to) is completely unexplained, and request_id is equally opaque. The description adds zero value over the bare schema, which itself provides no 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?
'Run the local Chrome browser extract operation' clearly ties the verb (extract) to a resource (local Chrome browser), and the sibling set (navigate, observe, click, fill, scroll) makes it distinct as the data-pulling tool. However, it stops short of specifying what kind of extraction happens (DOM text, attributes, structured data?), so it's clear but not fully precise.
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?
No guidance is given on when to use extract versus observe (which could also retrieve page data), nor are prerequisites stated — e.g., whether the agent must first call navigate to establish a session. The lone phrase about results staying local hints at context but provides no when/when-not direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fillD
Run the local Chrome browser fill operation. Page results stay local to the Agent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| request_id | No | ||
| session_id | Yes | ||
| element_ref | Yes | ||
| snapshot_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry all behavioral disclosure. The only hint is 'Page results stay local to the Agent,' which is vague and could be interpreted in multiple ways (e.g., no server submission, local state only?). It fails to disclose common aspects like whether the fill triggers events, overwrites existing values, or requires focus.
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 (two sentences) but not effective. The first sentence is redundant with the tool name, and the second adds little actionable information. It is under-specified rather than efficiently written.
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 5 parameters, no schema descriptions, no output schema, and no annotations, the description is severely incomplete. It omits return values, error conditions, side effects, and any usage context, making it impossible to invoke correctly without additional external knowledge.
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?
With schema description coverage at 0%, the description must clarify meaning for parameters like element_ref, snapshot_id, and value. The description does not mention any parameters or how they relate to the operation. This is a critical gap.
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 says 'Run the local Chrome browser fill operation,' which largely restates the tool name ('fill'). It does not clearly specify that this tool populates a form field or input element with a given value. The phrase 'Page results stay local to the Agent' hints at some scope behavior but does not clarify the core 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?
There is no guidance on when to use this tool versus sibling tools like click, navigate, or extract. No prerequisites, when-to-use, or alternatives are mentioned, leaving the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
observeC
Run the local Chrome browser observe operation. Page results stay local to the Agent.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one useful behavioral note that page results stay local to the Agent, which is valuable privacy-related context. However, it does not disclose whether the operation is read-only, any side effects, or the nature of the results, so the core behavior remains largely opaque.
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, non-redundant sentence, but it is so terse that it under-specifies the tool. It is concise but not appropriately sized for the information needed, bordering on under-specification rather than efficient clarity.
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 browser automation tool with siblings and no output schema, the description should clarify what output 'observe' produces and when to use it. It offers no detail on return values, side effects, or session requirements, making it difficult to invoke correctly in practice.
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 has two parameters (request_id and session_id) with zero description coverage, and the tool description does not explain either. Session_id is required but its meaning must be inferred from the name; request_id is entirely unexplained. The description fails to compensate for the lack of schema detail.
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 identifies the action as running an 'observe operation' on the local Chrome browser, but does not specify what observing entails (e.g., snapshot, accessibility tree, page state). It distinguishes itself from siblings only by the name 'observe', not by the description's content.
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?
No guidance is provided on when to use observe versus alternatives like extract or click. There are no prerequisites, exclusions, or typical use cases, leaving the agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrollB
Run the local Chrome browser scroll operation. Page results stay local to the Agent.
| Name | Required | Description | Default |
|---|---|---|---|
| pixels | Yes | ||
| request_id | No | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions 'results stay local' which is a useful behavioral note (probably indicating side effects or data handling). However, it does not describe the return value, error behavior, or how scrolling works (e.g., it might scroll a specific element or the whole page). The description also doesn't mention any prerequisites or side effects, which is a gap for a tool that likely mutates the browser state.
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 concise sentence that conveys the essential purpose. It is front-loaded with the verb and resource. It includes a unique detail about locality. No fluff, but it could include a bit more detail without becoming verbose. The structure is effective for a simple tool.
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?
The tool is relatively simple (scroll operation) with a small schema. The output schema is absent, so the description should ideally mention what the tool returns (e.g., a confirmation, the new scroll position) and provide usage context. Given the complexity, the description is adequate but misses details about the return value and how the scrolling is applied (e.g., vertical vs horizontal). Since there are no annotations and no output schema, the description could be more 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 schema has 0% description coverage, so the description must compensate for the undocumented parameters. However, the description does not mention any parameters. It only says 'scroll operation', which implies the 'pixels' parameter controls the scroll amount, but that is not explicit. The description adds almost no semantic meaning beyond the schema names, so it fails to help the agent understand the meaning of 'pixels' or 'session_id' in context. Since it doesn't compensate, the score is low, but the schema itself is relatively clear (e.g., pixels has min/max), so a 3 is given because the tool is simple.
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 performs a 'scroll' operation in the local Chrome browser session, which is a specific verb+resource. It also adds a key detail that results stay local to the Agent, which is unique and distinguishes it from other browser actions like navigate or click. However, it does not explicitly contrast with siblings, but the purpose is still very clear.
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 the tool is used to scroll within the current browser session, based on the phrase 'local Chrome browser scroll operation'. It does not explicitly state when to use it versus alternatives (e.g., when you need to scroll vs. observe or click). No exclusion or alternative is mentioned, so it provides basic context but lacks explicit guidance.
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.
6 tool updates
v0.1.0- First observed
click - First observed
extract - First observed
fill - First observed
navigate - First observed
observe - First observed
scroll
TDQS
Each tool maps to a distinct browser action (navigate, observe, extract, click, fill, scroll), but 'observe' and 'extract' could overlap in purpose—observe might imply page state while extract implies data retrieval. The identical description phrasing doesn't help clarify boundaries.
All tool names are single lowercase verbs with no prefixes or suffixes, creating a perfectly uniform naming pattern. This is internally consistent even though it doesn't follow a verb_noun structure.
Six tools is a well-scoped set for a browser automation server, covering the essential actions without being overwhelming. Each tool earns its place in the minimal set.
The core browsing lifecycle (navigate, interact, fill, scroll, extract, observe) is covered, but common operations like wait, reload, or go_back are missing, which agents may need for robust workflows. Still, the current surface is functional for basic tasks.
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
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn extension-based MCP server that enables AI assistants to control your existing Chrome browser, leveraging your active login states and settings for automation. It provides over 20 tools for tasks like semantic tab search, screen capture, network monitoring, and direct element interaction.-
- AlicenseAqualityDmaintenanceSelf-hosted MCP server for AI browser automation. Connects to your own Chromium instance via CDP, providing tools for browser control, navigation, interaction, and content extraction.191MIT
- FlicenseNot gradedqualityBmaintenanceStandalone browser automation MCP server supporting both BrowserOS and standard Chrome. Enables 16 MCP tools for browser control including navigation, interaction, and content extraction.27-
- AlicenseNot gradedqualityCmaintenanceLocal browser automation MCP server for Claude Code, enabling navigation, clicking, typing, and inspecting real web pages via Google Chrome.151MIT
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/Asklear/asklear-browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server