Provides BAS (Browser Automation Studio) control as tools for Claude CLI through MCP protocol using file-based IPC with hex-encoded messages
BAS MCP server has 37 tools with significant quality gaps. Most tools have descriptions (good), but schemas are inconsistent and often lack proper type definitions. Many parameters are missing descriptions or have vague ones. Tool naming is inconsistent (bas_wait_element_visible vs bas_check_element_exists use different conventions). No output schemas documented. Error handling is absent, tools return raw results with no recovery guidance. Parameter descriptions often reference BAS-specific concepts without explaining them to LLMs. Critical issue: bas_wait_element_visible has 10 parameters with overlapping/unclear purposes (Check vs Check2, Speed/Gravity/Deviation duplicated in bas_no_fail_for_next_waiter). No pagination support despite tools like bas_get_logs potentially returning large results.
Check if element exists, with option to check visibility
Check which resources from a list actually exist
Create a new BAS action in the script
Set parameters for loop continuation condition
Delete one or more BAS actions from the script
Loop with while condition or for-style iteration
Evaluate a JavaScript expression in BAS context
Execute JavaScript code on the current page context
bas_wait_element_visible has 10 parameters with overlapping semantics (Check vs Check2, Speed/Gravity/Deviation appear in multiple tools). Parameter descriptions are vague and do not explain when to use each. LLMs cannot disambiguate.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. bas_get_logs, bas_get_project, bas_list_actions return complex structures with no schema guidance.
bas_resource_string_operations, bas_if_condition, bas_cycle_parameters have vague descriptions that assume LLM knowledge of BAS internals. No explanation of when to use each or what they return.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Get detailed help for a specific BAS action type
Get current page HTML content
Get current browser URL
Save current page URL to a variable
Get BAS execution logs
Get the complete project structure with all actions
Get value of a specific resource
Get list of all resources
Get current script execution status
Get value of a specific variable
Get list of all variables in current script context
Conditional branch based on expression
List all available BAS actions
List available BAS log files
Navigate browser to specified URL
Make next wait_element not fail if element not found
Pause script execution
Start/resume script execution
Probe common resource names to find which exist
Various string operations, regex matching, resource iteration
Same as 'if' - conditional execution
Set custom timeout for the next wait_element action
Set variable value or increment existing variable
Pause execution for specified time
Stop script execution
Type text into the currently focused element (use after click)
Update parameters of an existing BAS action
Wait for element to appear in DOM (not necessarily visible)
Wait for element to become visible, then optionally click it. Most common click action!
No error handling or recovery guidance. Tools return raw results or failures with no actionable next steps for LLMs. No distinction between retryable vs fatal errors.
bas_get_logs and bas_get_browser_html lack pagination support. No limit parameter, no cursor, no total count. Large results could exhaust context window.