io.github.soulfir/babelwrap-mcp
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., "@io.github.soulfir/babelwrap-mcpGo to https://news.ycombinator.com and extract the top 5 story titles"
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.
BabelWrap MCP Server
An MCP server that gives AI agents web browsing superpowers via the BabelWrap API.
Works with Claude Desktop, Cursor, Claude Code, and any MCP-compatible client.
Installation
# Using uvx (recommended -- no install required)
uvx babelwrap-mcp
# Using pip
pip install babelwrap-mcp
# Using pipx (isolated environment)
pipx install babelwrap-mcpRelated MCP server: Cloudflare Playwright MCP
Setup
1. Get an API Key
Sign up at babelwrap.com and create an API key from your dashboard.
2. Configure Your MCP Client
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"babelwrap": {
"command": "uvx",
"args": ["babelwrap-mcp"],
"env": {
"BABELWRAP_API_KEY": "bw_your_api_key_here"
}
}
}
}If you installed with pip or pipx, use the binary directly:
{
"mcpServers": {
"babelwrap": {
"command": "babelwrap-mcp",
"args": [],
"env": {
"BABELWRAP_API_KEY": "bw_your_api_key_here"
}
}
}
}Claude Code
claude mcp add babelwrap -- uvx babelwrap-mcpThen set your API key as an environment variable:
export BABELWRAP_API_KEY="bw_your_api_key_here"Available Tools
Tool | Description |
| Create a new browser session |
| Close a browser session |
| Navigate to a URL |
| Get current page state |
| Click an element |
| Fill a form field |
| Submit a form |
| Extract structured data |
| Take a screenshot |
| Press a keyboard key |
| Scroll the page |
| Hover over an element |
| Upload a file |
| Browser history |
| Wait for a condition |
| Multi-tab support |
Environment Variables
Variable | Required | Description |
| Yes | Your BabelWrap API key |
| No | API base URL (default: |
Documentation
Full documentation at babelwrap.com/docs/mcp
License
MIT
Available Tools
18 toolsbabelwrap_backC
Navigate back in the browser history.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as what happens if there is no history, whether it reloads the page, or if it is destructive. The agent has no insight into side effects or error conditions.
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 sentence, which is concise, but it omits critical information. It is front-loaded but under-specified. For such a simple action, brevity is acceptable, but the lack of detail limits its usefulness.
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 is part of a browser automation suite with many siblings, the description is incomplete. It does not explain what the return value is (despite an output schema existing), whether the navigation is instantaneous, or any side effects. An agent would need more context to use this 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 description coverage is 100%, so the schema already documents both parameters (session_id, compact). The description adds no additional parameter meaning beyond what is in the schema. Baseline is 3, and the description does not enhance understanding.
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 'Navigate back in the browser history' clearly states it performs a browser back navigation. The verb 'navigate' and resource 'browser history' are specific, and the sibling tool babelwrap_forward provides contrast. However, the description does not elaborate on what 'back' means (e.g., one step, full history).
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 this tool versus alternatives. There is no mention of prerequisites (e.g., must have a browsing session) or when not to use it (e.g., no history). The sibling tools like babelwrap_forward and babelwrap_navigate are not contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_clickC
Click an element on the page using a natural language description.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| target | Yes | Natural language description of the element to click (e.g. "the Login button", "first search result"). TIP: Pass an element ID from a previous snapshot (e.g. "btn-login", "input-email") to bypass LLM resolution entirely for instant, deterministic targeting. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose important behavioral traits such as whether the tool waits for the element, scrolls into view, or handles missing elements. With no annotations provided, the description carries the full burden, and this brief text 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?
The description is a single sentence that directly states the tool's purpose. It is front-loaded, concise, and contains no unnecessary information.
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 complexity (clicking via NL, many siblings, output schema present), the description is too terse. It does not mention return values, error handling, or prerequisites, leaving significant gaps for an agent to 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%, so the baseline is 3. The description adds no extra parameter meaning beyond the schema; the useful TIP about element IDs is already present in the schema's target description. Therefore, the description does not improve understanding beyond what the schema provides.
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 ('Click') and target ('an element on the page'), and hints at the unique feature of using natural language. However, it does not explicitly differentiate from sibling tools like babelwrap_fill or babelwrap_hover, which also take natural language targets.
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 this tool versus alternatives like babelwrap_submit or babelwrap_press. The description only tells what the tool does, not the context for its use. The TIP in the 'target' parameter about using element IDs is a usage hint but not about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_close_sessionB
Close and clean up a browser session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to close. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Clean up' implies side effects (e.g., releasing resources), but the description does not detail what cleanup entails, such as closing all pages or releasing handles. It is minimally transparent about the destructive nature but lacks specifics.
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 phrase with no wasted words. However, it could be slightly more informative without becoming verbose, e.g., specifying that it ends the session lifecycle.
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 one parameter, the description is somewhat complete, but it does not address return values (output schema exists) or error behavior (e.g., invalid session ID). Given the complexity of the sibling tools, more context on when to close would help.
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 one parameter (session_id) with description 'The session ID to close.' The tool description adds no meaning beyond that. Schema coverage is 100%, so baseline is 3; no extra value is provided.
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 'Close and clean up a browser session' uses a specific verb (close) and resource (browser session). It clearly distinguishes from sibling tools like babelwrap_new_session (creates) and babelwrap_navigate (navigates).
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 use this tool versus alternatives. It does not mention that it should be called after finishing work with a session, nor does it exclude usage scenarios or mention prerequisites. With 16 sibling tools, lifecycle context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_extractB
Extract structured data from the current page using a natural language query.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| query | Yes | Natural language description of what data to extract (e.g. "all product names and prices"). | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the action and input, but omits whether the tool is read-only, has side effects, requires specific permissions, or handles errors. This is insufficient for safe invocation.
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 conveys the core purpose. While concise, it could be slightly expanded with usage hints without sacrificing 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?
The description gives the essential purpose but lacks context about input expectations, output format (despite an output schema existing), and integration with the session paradigm. It is functional but leaves gaps for a new user.
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 tool description adds minimal value beyond the schema, only restating that the input is a natural language query. No additional context about parameter usage or relationships is provided.
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?
Description clearly states the tool extracts structured data from the current page using a natural language query. The verb 'extract' and resource 'structured data' are specific, and the phrase 'current page' distinguishes it from sibling tools that perform other actions like clicking or navigating.
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 this tool versus alternatives like babelwrap_snapshot or babelwrap_click. There is no mention of prerequisites, conditions, or exclusions, leaving the agent without context to select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_fillB
Fill an input field with a value.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| target | Yes | Natural language description of the input field (e.g. "Email address field"). TIP: Pass an element ID from a previous snapshot (e.g. "input-email") to bypass LLM resolution entirely for instant, deterministic targeting. | |
| value | Yes | The value to fill in. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose behaviors like whether input is appended or replaced, handling of special characters, or needed focus state. This is insufficient for a mutation 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?
The description is a single sentence that efficiently states the core purpose. Every word earns its place with no 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?
Given the tool's complexity, the description is too sparse. It doesn't mention required session state, error conditions, or interaction with page focus. The existence of an output schema mitigates the need to explain return values, but other gaps remain.
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%, so the baseline is 3. The tool description adds no extra meaning beyond the schema, though the schema's target parameter includes a useful tip. No credit is given for repeating schema info.
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 'Fill an input field with a value' uses a specific verb and resource, clearly distinguishing it from sibling tools like babelwrap_click or babelwrap_press. It leaves no ambiguity about the action performed.
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 use this tool versus alternatives, nor does it mention prerequisites or exclusions. Usage is only implied by the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_forwardA
Navigate forward in the browser history.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states the action without disclosing side effects, error conditions (e.g., no forward history), or any rate limits.
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, clear sentence with no extraneous information. It is appropriately sized for a simple navigation action.
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 and presence of an output schema, the description is adequate but incomplete—it does not mention error handling or return values. Slight gaps remain for a fully informative definition.
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 provides 100% coverage with descriptions for both parameters. The tool description adds no further semantic context beyond the schema, so a baseline 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 'Navigate forward in the browser history,' specifying the verb and resource. It distinguishes from the sibling tool 'babelwrap_back' which handles backward navigation.
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 use for forward navigation but lacks explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or prerequisites beyond the required session ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_hoverC
Hover over an element on the page.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| target | Yes | Natural language description of the element to hover over. TIP: Pass an element ID from a previous snapshot to bypass LLM resolution entirely for instant, deterministic targeting. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action but does not mention whether it triggers events, returns a snapshot, or changes the page state. The output schema exists but is not referenced.
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 sentence with minimal words. While concise, it could be expanded to include key details without becoming verbose. It is appropriately sized but lacks structure for important contextual information.
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 has 3 parameters, an output schema, and many sibling tools, the description is insufficient. It does not explain the return value (if any), preconditions, or how it fits into the babelwrap workflow. It feels incomplete.
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 adds no additional meaning beyond the schema. The baseline is 3, and the description does not enhance parameter understanding further.
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 action 'hover over an element', but it does not distinguish from sibling tools like babelwrap_click that also target elements. The purpose is clear but lacks differentiation.
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 explicit guidance on when to use this tool versus alternatives. The schema includes a tip about using element IDs, but the description does not provide usage context or exclude cases. The agent has no basis to decide between hover and click.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_list_pagesA
List all open pages (tabs/popups) in this browser session.
Use this to discover tabs opened by popups or target="_blank" links, then switch to them with babelwrap_switch_page.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not mention whether the operation is read-only, any side effects, or response format beyond basic listing. Minimal behavioral context.
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, front-loaded with core purpose. No wasted words. Perfectly concise.
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 list tool with an output schema, description adequately explains purpose and parameter. Could mention that it returns page identifiers for use with babelwrap_switch_page, but overall sufficient.
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% for the single parameter session_id. Description adds no additional meaning beyond what the schema provides. Baseline 3.
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?
Description clearly states 'list all open pages (tabs/popups)' and gives a specific use case ('discover tabs opened by popups'). It effectively differentiates from sibling babelwrap_switch_page.
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?
Explicitly tells when to use the tool ('to discover tabs') and provides the next step ('then switch to them with babelwrap_switch_page'). No explicit when-not, but sufficient for a simple listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_new_sessionB
Create a new browser session for web interaction.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | Optional labels or tags for this session. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only states basic creation. It omits important details like session lifecycle, authentication needs, or consequences of creating multiple sessions.
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 sentence with no waste, but its brevity may sacrifice necessary context for first-time users.
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 complexity of session management and many sibling tools, the description is too minimal; it doesn't explain prerequisites, return values, or how it fits into the tool ecosystem.
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 already describes the single parameter metadata with 100% coverage, so the description adds no extra meaning beyond what is in 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 'Create a new browser session for web interaction' uses a specific verb and resource, clearly distinguishing it from sibling tools that operate within an existing session.
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 before other browser interaction tools, but it lacks explicit guidance on when to use vs alternatives, no exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_pressA
Press a keyboard key on the current page.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| key | Yes | The key to press (e.g. "Enter", "Tab", "Escape", "ArrowDown"). | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the basic action but omits important details: whether the press triggers standard browser events, requires element focus, supports modifier keys, or handles invalid keys. This lack of transparency could lead to incorrect usage.
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 sentence with no unnecessary words. It efficiently conveys the core action and context. Every word earns its place.
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 description is minimal but covers the basic purpose. Though an output schema exists and reduces the need to explain return values, the description lacks behavioral context (e.g., page interaction details) that would aid correct usage. It is adequate but not thorough.
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%: all three parameters (session_id, key, compact) have descriptions. The tool description adds no extra meaning beyond what the schema provides, so it meets the baseline. However, it could hint at the key format or examples beyond the schema's enumeration.
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 action: 'Press a keyboard key on the current page.' It uses a specific verb and resource, making it unambiguous. Among sibling tools like babelwrap_click (mouse) and babelwrap_fill (text input), the purpose is distinct and easily understood.
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 when to use the tool (for keyboard key presses) but provides no guidance on when not to use it or alternatives. For example, it does not mention that typing text should use babelwrap_fill, or that complex key sequences might need separate actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_screenshotB
Take a screenshot of the current page (for debugging).
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It only states 'take a screenshot' with no mention of side effects, permissions, whether full-page scrolling is involved, or output format. Minimal behavioral context.
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?
Extremely concise: a single 9-word sentence that front-loads the core purpose. No unnecessary 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 tool simplicity and presence of an output schema, the description covers the basic action. However, it lacks usage differentiation and behavioral details, leading to medium completeness.
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 baseline is 3. The description adds no additional meaning beyond the schema; e.g., the 'compact' parameter's purpose is already described in 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 clearly states the action ('take a screenshot') and the target ('current page'). It adds a use-case hint ('for debugging') but does not explicitly differentiate from siblings like babelwrap_snapshot, which might also capture page state.
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 explicit guidance on when to use this tool vs. alternatives. The hint 'for debugging' implies a context but no exclusions or comparative advice are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_scrollC
Scroll the page up or down.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| direction | No | "up" or "down" (default: "down"). | down |
| amount | No | "page" (full viewport), "half" (half viewport), or pixel count as string (default: "page"). | page |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only mentions scrolling direction, not side effects like page boundary behavior or animations. Inadequate for a safe invocation.
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?
Extremely short, but could include more context without being verbose. Balanced but not exemplary.
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?
Despite simple tool and output schema, description omits how parameters affect behavior (e.g., amount types). Incomplete for a full understanding.
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 has 100% coverage with descriptions; description adds no extra meaning beyond schema. Baseline 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?
Description clearly states verb 'Scroll' and resource 'page', and implies direction. However, it doesn't distinguish from other navigation tools like back/forward.
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 on when to use this tool vs alternatives like babelwrap_back or babelwrap_navigate. Lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_snapshotA
Get the current page state as a structured snapshot without taking any action.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 clearly states the tool is read-only and does not modify state, providing adequate transparency for its main 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 concise sentence that front-loads the core purpose, with 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 tool's simplicity, full schema coverage, and existence of an output schema, the description provides all necessary context for correct usage.
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% and the description adds no additional meaning beyond the schema's parameter descriptions, so baseline score 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 gets a structured snapshot of the current page state and emphasizes it takes no action, distinguishing it from sibling tools that perform actions.
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 it is for inspection by stating 'without taking any action,' but lacks explicit guidance on when to use or not use this tool vs siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_submitC
Submit a form on the current page.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| target | No | Optional natural language description of which form to submit. If omitted, submits the most prominent form. TIP: Pass an element ID from a previous snapshot (e.g. "btn-submit") to bypass LLM resolution entirely for instant, deterministic targeting. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. The description only states 'Submit a form' without mentioning potential page navigation, loading states, or destructive actions like data submission, which are critical for an agent's decision.
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 but lacks detail. While it is front-loaded and short, the single sentence omits important context that could be added without becoming verbose, such as default behavior or return format.
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?
Although an output schema exists (not shown), the description does not explain return values or side effects of form submission. For a tool with 3 parameters and no annotations, the description is insufficiently 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 description does not need to add parameter meanings. The description does not enhance the schema's parameter explanations, meeting the baseline expectation.
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 ('Submit a form') and scope ('on the current page'), distinguishing it from sibling tools like babelwrap_click or babelwrap_fill. However, it could specify which form is submitted without the target parameter.
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 when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives or prerequisites, leaving the agent without context for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_switch_pageA
Switch to a different page (tab/popup) within this session.
Use babelwrap_list_pages first to see available pages and their indices.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| index | Yes | The page index to switch to (from babelwrap_list_pages). | |
| compact | No | If True, return a compact snapshot with reduced token usage. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action, such as side effects on current page state or reversibility.
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, with 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?
A straightforward tool, but with no annotations and minimal behavioral disclosure, it is only minimally complete; the output schema likely covers return values.
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%, and the description adds no meaning beyond the schema descriptions; it only mentions the source of the index parameter.
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 'switch' and the resource 'page (tab/popup) within this session', distinguishing it from sibling tools like babelwrap_list_pages and babelwrap_new_session.
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?
Explicitly advises using babelwrap_list_pages first to see available pages and indices, providing clear context for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_uploadB
Upload a file to a file input element on the page.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| target | Yes | Natural language description of the file input element. TIP: Pass an element ID from a previous snapshot to bypass LLM resolution entirely for instant, deterministic targeting. | |
| file_base64 | Yes | Base64-encoded file content. | |
| filename | Yes | The filename to use for the upload. | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the core action ('upload a file') but omits details such as whether the file input's value is set programmatically, whether a change event is triggered, required permissions, or error behavior (e.g., if the target element is not a file input). The lack of such information leaves the agent unaware of side effects or constraints.
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 sentence of 10 words, conveying the essential action without any extraneous information. Every word serves a purpose, and the structure is front-loaded with the key operation. It is maximally concise while remaining clear.
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?
Despite the existence of an output schema (not shown but implied by context), the description lacks several important contextual cues: it does not mention that a session is required, that the file must be base64-encoded, or that the target should be a file input. With five parameters and multiple sibling tools, a more complete description would include at least session prerequisites and a brief note on the base64 requirement.
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?
All five parameters are documented in the input schema (100% coverage), so the baseline is 3. The description does not add any additional meaning beyond what the schema already provides (e.g., it doesn't explain how the 'target' natural language description works or how 'file_base64' should be encoded). This is acceptable given the schema's completeness.
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 'Upload a file to a file input element on the page' is very specific: it states the action (upload), the resource (file input element), and the context (on the page). The verb 'upload' clearly distinguishes this tool from other babelwrap tools like 'click' or 'fill', which handle different interactions. No ambiguity exists.
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 use this tool versus its siblings (e.g., babelwrap_fill for text inputs). It does not specify prerequisites (e.g., an active session), nor does it mention any conditions under which the tool should not be used. This leaves the AI agent with no rationale for selection among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
babelwrap_wait_forA
Wait for a condition on the page before proceeding.
Useful after clicking a button that triggers async loading, SPA navigation, or any action where you need to wait for specific content to appear.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The active session ID. | |
| text | No | Wait until this text appears on the page. | |
| selector | No | Wait until this CSS selector matches a visible element. | |
| url_contains | No | Wait until the URL contains this string. | |
| timeout_ms | No | Maximum time to wait in milliseconds (default: 10000, max: 30000). | |
| compact | No | If True, return a compact snapshot with minimal whitespace. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. It correctly indicates the tool waits for a condition, but it does not disclose what happens on timeout (e.g., error thrown) or other behavioral traits. The description is adequate but lacks detail on error 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 two concise sentences that front-load the core purpose. Every sentence provides value: the first defines the action, the second gives usage context. 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 tool has 6 parameters (100% schema coverage) and an output schema exists (indicated), the description is reasonably complete. It covers the main use case and conditions. It lacks details on return values or error handling, but the output schema likely covers that. For a wait tool, this is sufficient.
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 adds little beyond the schema—it lists parameter types like text, selector, url_contains, but does not clarify nuances like matching rules. The description does not significantly add meaning over 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 clearly states the tool waits for a condition on the page before proceeding, with a specific verb 'wait' and resource 'condition on page'. It distinguishes itself from sibling tools like click, navigate, etc., by focusing solely on waiting. The examples (async loading, SPA navigation) further clarify its 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 provides clear guidance on when to use the tool: after clicking a button that triggers async loading, SPA navigation, or any action requiring waiting for content. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient for an agent to decide.
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.
18 tool updates
v0.1.0- First observed
babelwrap_back - First observed
babelwrap_click - First observed
babelwrap_close_session - First observed
babelwrap_extract - First observed
babelwrap_fill - First observed
babelwrap_forward - First observed
babelwrap_hover - First observed
babelwrap_list_pages - First observed
babelwrap_navigate - First observed
babelwrap_new_session - First observed
babelwrap_press - First observed
babelwrap_screenshot - First observed
babelwrap_scroll - First observed
babelwrap_snapshot - First observed
babelwrap_submit - First observed
babelwrap_switch_page - First observed
babelwrap_upload - First observed
babelwrap_wait_for
TDQS
Each tool has a clearly distinct purpose: navigation, interaction, session management, page state, extraction, and waiting. No two tools overlap in functionality, and descriptions effectively differentiate them.
All tools consistently use the 'babelwrap_' prefix with a verb_noun pattern in snake_case (e.g., babelwrap_click, babelwrap_new_session). The naming is uniform and predictable.
With 18 tools, the server covers a comprehensive range of browser automation tasks (navigation, interaction, session management, page analysis) without being excessive or insufficient. The count is well-scoped for the domain.
The tool set covers core browser actions like navigation, clicking, filling, submitting, waiting, screenshots, and file uploads. Minor gaps exist (e.g., no JavaScript execution, cookie management, or advanced element queries), but the existing tools enable most workflows.
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
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser for web automation tasks like navigation, typing, clicking, and taking screenshots.-
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/babelwrap/babelwrap-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server