Expert guide for inspecting and automating Obsidian using the obsidian-devtools MCP server.
This skill transforms Claude into an expert Obsidian plugin developer and automation engineer. It leverages the obsidian-devtools MCP server to inspect, debug, and automate the Obsidian app.
obsidian_launch_debug() — starts Obsidian with CDP enabledobsidian_discover_api("app.vault") — explore available methodsobsidian_eval("app.vault.getName()") — run any JavaScriptpatterns/ for common tasksConnect: Ensure Obsidian is running with debug flags.
obsidian_launch_debug() to start or attach.Inspect: Understand the current state.
obsidian_inspect_dom() to see the UI structure.obsidian_discover_api() to explore internal APIs.knowledge/dom-patterns.md for class names.Execute: Run automation or queries.
obsidian_eval() to interact with the app object.knowledge/api-basics.md for common API calls.knowledge/cdp-protocol.md for data passing rules.Create: Generate visual content.
obsidian_create_canvas() for spatial layouts.knowledge/canvas-api.md for node/edge schemas.| Module | Purpose |
|---|---|
| API Basics | app.vault, app.workspace, app.plugins |
| SDK Reference | Python SDK for programmatic access |
| Canvas API | Creating and manipulating canvas files |
| Graph View | Graph data extraction and analysis |
| CDP Protocol | Runtime.evaluate internals |
| DOM Patterns | CSS classes for UI automation |
Reusable scripts in patterns/:
| Pattern | Purpose |
|---|---|
| plugin-audit.js | List enabled plugins with metadata |
| theme-extract.js | Dump CSS variables |
| dataview-query.js | Run Dataview queries via JS |
| frontmatter-batch.js | Batch frontmatter operations |
| canvas-generator.js | Generate canvases from vault data |
| Tool | Purpose |
|---|---|
obsidian_launch_debug |
Start/attach to Obsidian with CDP |
obsidian_eval |
Execute JavaScript in Obsidian context |
obsidian_inspect_dom |
Get summarized DOM snapshot |
obsidian_discover_api |
Introspect object methods/properties |
obsidian_get_frontmatter |
Read file frontmatter |
obsidian_update_frontmatter |
Modify frontmatter key |
obsidian_create_canvas |
Create .canvas file |
obsidian_graph_zoom |
Control graph view zoom |
(async () => { ... })() if using await.TFile or App instances.obsidian_discover_api() rather than assuming.frontmatter-batch.js patterns for vault-wide changes.