MCP server that connects to Chrome and dynamically exposes per-tab tools
Single tool 'executeTool' acts as a generic proxy/dispatcher rather than exposing discrete, well-defined operations. The tool name violates verb_noun convention (should be 'execute_page_tool' or similar). Description is vague about what each action does and when to use them. Input schema lacks proper typing for the 'action' parameter (free-form string instead of enum), making it impossible for LLMs to know valid actions without trial-and-error. No output schema documented. Parameters lack descriptions for what each action expects/returns. The design conflates multiple concerns (tab management, tool discovery, tool execution) into one tool, violating single-responsibility principle.
Control the browser and execute page tools. Actions: - list_tabs: List all open tabs with their available tools - open_tab: Open a new tab (params: url) - close_tab: Close a tab (params: tabId) - <tool_name>: Call a page-specific tool (params: tabId, plus tool-specific args)
Tool name 'executeTool' violates verb_noun convention and is ambiguous. Should be 'execute_page_tool', 'call_browser_action', or split into discrete tools (list_tabs, open_tab, close_tab, execute_page_tool).
Action parameter is free-form string with no enum constraint. LLMs cannot discover valid actions (connect, list_tabs, open_tab, close_tab, or arbitrary page-tool names) without documentation or trial. Should be enum for known actions or require separate discovery tool.
No output schema documented. LLMs cannot plan downstream calls or extract required fields (e.g., tab IDs, tool names, results). Each action likely returns different structure but this is invisible.
Single tool combines tab management (list_tabs, open_tab, close_tab) with tool execution. Violates single-responsibility principle. Should split into: list_tabs, open_tab, close_tab, execute_page_tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Description lacks actionable guidance. Does not explain when to call each action, what parameters each expects, or what each returns. LLMs must guess or fail.