MCP server that drives Obsidian's built-in Web viewer via Chrome DevTools Protocol. Pairs with the claude-browser-bridge Obsidian plugin. Isolated from chrome-devtools / playwright MCPs — operates only on port 9222.
13 tools with consistent verb_noun naming (obsidian_list_tabs, obsidian_new_tab, etc.). All tools have descriptions (avg ~80 chars, baseline 194). Input schemas present for all tools with proper type definitions. However, descriptions are terse and lack context on WHEN to use each tool, prerequisites, or recovery guidance. Parameter descriptions are minimal (e.g., 'Tab index (number), URL fragment (string), or null for first tab' repeated 11 times). No output schemas documented. Error handling is absent, no guidance on what to do if a tab is not found or a navigation fails. Security concerns: obsidian_evaluate exposes arbitrary JavaScript execution without sandboxing or permission gates.
Click an element in a Web viewer tab by CSS selector
Close a Web viewer tab by index or URL fragment
Evaluate JavaScript code in a Web viewer tab and return the result
Find elements in a Web viewer tab by CSS selector and return their properties
Press a key or key combination in a Web viewer tab
List all open Web viewer tabs in Obsidian
Navigate a Web viewer tab to a URL
No output schemas documented. LLMs cannot plan downstream calls or extract structured data from tool responses. Every tool lacks a documented return type.
obsidian_evaluate exposes arbitrary JavaScript execution without sandboxing, permission gates, or confirmation. High security risk, agents can exfiltrate data or modify page state irreversibly.
No error recovery guidance. Tool descriptions do not explain what to do if a tab is not found, navigation fails, or a selector does not match. Agents have no path forward on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Open a new Web viewer tab in Obsidian with the given URL
Read the current state of a Web viewer tab (URL, title, content length, ready state)
Read the visible text content of a Web viewer tab
Capture a screenshot of a Web viewer tab
Scroll a Web viewer tab by a specified amount
Type text into a focused element or a selector-targeted element in a Web viewer tab
Repetitive parameter descriptions. 'Tab index (number), URL fragment (string), or null for first tab' appears verbatim in 11 tools. Descriptions lack context on WHEN to use each tool or what distinguishes it from similar tools.
No idempotency guarantees. Tools like obsidian_click, obsidian_type, and obsidian_key modify page state. If an agent retries on ambiguous failure, duplicate side effects (double-clicks, repeated text) may occur.