npm analyzed 3.2.7

cyanheads/obsidian-mcp-server

v3.2.7
npm

MCP server for Obsidian vaults — read, write, search, and surgically edit notes, tags, and frontmatter via the Local REST API plugin. STDIO or Streamable HTTP.

maintainer
cyanheads
license
Apache-2.0
first seen
2026-05-22
last seen
2026-06-17
releases · 30d
11
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 22 tools
transport stdio · streamable-http · http counts 22 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • caseSensitive

    when false, match case-insensitively

  • flexibleWhitespace

    substitute any run of whitespace in search with \s+. Literal mode only — has no effect when useRegex: true (express it directly).

  • jsonlogic

    JSONLogic tree evaluated against path, content, frontmatter.<key>, tags, and stat.{ctime,mtime,size}; custom glob and regexp operators

  • obsidian_append_to_note

    Append content to a note. Without section, creates the file if missing. With section, appends to a specific heading, block, or frontmatter field (file must exist).

  • obsidian_delete_note

    Permanently delete a note. Elicits human confirmation when the client supports it.

  • obsidian_execute_command

    Execute an Obsidian command-palette command by ID. Opt-in via OBSIDIAN_ENABLE_COMMANDS=true.

  • obsidian_get_note

    Read a note as raw content, full structured form (content + frontmatter + tags + stat, with optional outgoing links), structural document map, or a single section.

  • obsidian_list_commands

    List Obsidian command-palette commands, optionally filtered by nameRegex on display name. Opt-in via OBSIDIAN_ENABLE_COMMANDS=true (paired with obsidian_execute_command).

  • obsidian_list_notes

    List notes and subdirectories under a vault path. Recursive walk (default depth 2, max depth 20; 1000-entry cap) with optional extension and nameRegex filters.

  • obsidian_list_tags

    List every tag found across the vault with usage counts, including hierarchical parents. Optional nameRegex post-filters the result set.

  • obsidian_manage_frontmatter

    Atomic get / set / delete on a single frontmatter key.

  • obsidian_manage_tags

    Add, remove, or list tags. Defaults to the frontmatter tags: array; location: 'inline' or 'both' opts into mutating the note body.

  • obsidian_open_in_ui

    Open a file in the Obsidian app UI, with failIfMissing and newLeaf toggles.

  • obsidian_patch_note

    Surgical append / prepend / replace against a heading, block reference, or frontmatter field.

  • obsidian_replace_in_note

    Body-wide search-replace inside a single note. Literal or regex matching with whole-word, whitespace-flexible, and case-sensitivity options; supports capture-group replacement.

  • obsidian_search_notes

    Search the vault by text, JSONLogic, or BM25-ranked Omnisearch (when the plugin is reachable). Results paginate via opaque cursors.

  • obsidian_write_note

    Create a note, replace a single section in place, or — with overwrite: true — clobber an existing file. Refuses whole-file writes against an existing path by default.

  • omnisearch

    BM25-ranked search via the community [Omnisearch](https://github.com/scambier/obsidian-omnisearch) plugin. Supports quoted phrases, -exclusion, path: / ext: filters, typo tolerance, and PDF + OCR cove

  • replaceAll

    when false, only the first match is replaced

  • text

    substring match with surrounding context windows. contextLength controls characters of context per side of each match (default 100; bump it for more context per hit). Optional pathPrefix filter (text

  • useRegex

    treat search as an ECMAScript regex. With useRegex: true, the replacement honors $1 / $& capture-group references.

  • wholeWord

    wrap the pattern in \b…\b; works in both literal and regex modes

skills & danger signals npm-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed v3.2.7 · analyzer v18 · 8h ago

skills & prompt files 2

code evidence v3.2.7 · npm-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

shell / exec 1

  • shell package/dist/services/obsidian/obsidian-service.js :477 return exec();

network 1

  • net package/dist/services/obsidian/obsidian-service.js :9 import { Agent, fetch as undiciFetch } from 'undici';

declared dependencies 13

  • @cyanheads/mcp-ts-core@^0.10.6
  • @types/js-yaml@^4.0.9
  • js-yaml@^4.2.0
  • pino-pretty@^13.1.3
  • undici@^8.4.1
  • zod@^4.4.3
  • @biomejs/biome@^2.4.16
  • @types/node@^25.9.3
  • depcheck@^1.4.7
  • ignore@^7.0.5
  • tsc-alias@^1.8.17
  • typescript@^6.0.3
  • vitest@^4.1.8