ai-tools-setup
Set up, connect, validate, and repair Claude Desktop and MCP servers using Desktop Commander…
Organize Obsidian vaults with MOCs, wikilinks, frontmatter/properties, dashboards, orphan-note checks, and cleanup workflows. Use ONLY when the user explicitly refers to Obsidian — by naming "Obsidian", an Obsidian "vault", or an Obsidian-specific feature such as wikilinks ("[[
$ npx -y skills add wonderwhy-er/DesktopCommanderMCP --skill obsidian-vault --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/obsidian-vaultContext preview
The summary Claude sees to decide when to auto-load this skill.
Organize Obsidian vaults with MOCs, wikilinks, frontmatter/properties, dashboards, orphan-note checks, and cleanup workflows. Use ONLY when the user explicitly refers to Obsidian — by naming "Obsidian", an Obsidian "vault", or an Obsidian-specific feature such as wikilinks ("[[
name: obsidian-vault
version: 0.1.0
audience: agent
description: >-
Organize Obsidian vaults with MOCs, wikilinks, frontmatter/properties,
dashboards, orphan-note checks, and cleanup workflows. Use ONLY when the user
explicitly refers to Obsidian — by naming "Obsidian", an Obsidian "vault", or
an Obsidian-specific feature such as wikilinks ("[[ ]]"), the Dataview or Bases
plugins, or Obsidian Properties. Within that Obsidian context it covers
creating Maps of Content, adding/fixing wikilinks, finding orphan notes,
normalizing YAML frontmatter, generating Dataview/Bases dashboards, organizing
folders, deduplicating or renaming notes, and preparing the vault for AI use.
Do NOT use this skill for generic note-taking, Markdown, or knowledge-base
requests that don't mention Obsidian.Help the user organize and maintain an Obsidian vault: build navigation with MOCs and wikilinks, normalize metadata, generate dashboards, find and fix orphans, organize folders, deduplicate/rename, and prepare the vault for AI use.
Obsidian-specific facts that shape every rule here:
Renaming a note auto-updates links inside Obsidian, but moving files outside Obsidian breaks them — always rename via Obsidian when possible.
**Bases** (native, editable tables, fast on big vaults, properties-only).
Before acting, confirm the vault's root folder and whether the user has the Dataview plugin installed (Bases is built in since Obsidian 1.9). When a request is ambiguous (organize vs. clean up vs. dashboard), ask which task.
the vault is also published to a tool that can't parse wikilinks.
When adding links, also surface **unlinked mentions**: if a note's title appears as plain text in other notes, convert those to wikilinks.
A MOC is a note that links the related notes on a topic — the vault's navigation layer (more flexible than folders or tags, and needs no institutional knowledge).
Conventions:
every MOC is itself discoverable.
auto-generated with a Dataview/Bases query (see Dashboards).
MOC template:
--- type: moc tags: [moc] updated: 2026-06-18 --- # Auth — Map of Content Notes on authentication, sessions, and access control. ## Core - [[auth-flow]] - [[session-tokens]] ## Related MOCs - [[security-moc]]
Add a consistent property block to every note. Recommended baseline:
--- title: Session tokens aliases: [tokens, session token] tags: [auth, security] type: note # note | moc | dashboard | template | person | project created: 2026-06-18 updated: 2026-06-18 status: evergreen # seedling | growing | evergreen related: ["[[auth-flow]]"] ---
Rules:
nested tags (`auth/tokens`) are fine. Don't let tags sprawl.
Dataview both depend on this. When normalizing, pick one name per concept (e.g. `created`, not `created`/`date`/`Created`) and migrate the rest.
Pick the engine based on the user's setup:
**Bases** (native, editable, fast — best for operational boards):
properties. Each cell edits the underlying note's frontmatter.
**Dataview** (plugin, read-only, most flexible — best for reports/auto-MOCs):
TABLE status, updated, tags FROM #auth WHERE type = "note" SORT updated DESC
Auto-MOC of everything in a topic:
LIST FROM #auth WHERE type != "moc" SORT file.name ASC
Recently updated:
TABLE updated FROM "" WHERE updated >= date(today) - dur(7 days) SORT updated DESC
Note: large vaults can lag with heavy Dataview queries — prefer Bases there.
An orphan is a note with no inbound or outbound links. To find and fix: 1. **From Desktop Commander** (no app needed, scales to big vaults): `start_search` the vault for `[[ ]]` links to each note's title — zero hits means no inbound links (an *unlinked* note); to confirm a true orphan (no inbound **and** no outbound), also scan the note's own body for `[[...]]`. The same searches surface **unlinked mentions** (the title as plain text, not wrapped in `[[ ]]`) and **broken links** (a `[[target]]` whose file is missing). 2. **Graph view** (Cmd/Ctrl+G): orphans float as isolated dots at the edges. 3. **Dataview** query for notes with no links:
LIST WHERE length(file.inlinks) = 0 AND length(file.outlinks) = 0
4. For each orphan: link it from a relevant MOC/note (`edit_block` to insert the wikilink), tag it `#needs-link` for a batch pass, or archive if obsolete. 5. Convert unlinked mentions into real wikilinks and fix broke
This is MCP server for Claude that gives it terminal control, file system search and diff file editing capabilities
Repo: wonderwhy-er/DesktopCommanderMCP
Set up, connect, validate, and repair Claude Desktop and MCP servers using Desktop Commander…
Run a comprehensive, read-only health check on the user's computer and return a scored chat…
Use for Desktop Commander MCP capabilities — persistent shells and REPLs, long-running…
Create and maintain a Markdown knowledge base that any AI agent can read, search, and update.…
Use Desktop Commander for terminal and command-line work, especially anything that needs a…