Skip to content
Agentmart
Submit a tool

Seekstone

Filesystem-direct Obsidian MCP server — search and edit your vault with low context-tax.

Connector by shaqmughal · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 34
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/shaqmughal-seekstone

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Filesystem-direct Obsidian MCP server — search and edit your vault with low context-tax.

Use cases: note-taking, knowledge-base

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
13 read · 3 write · 9 delete
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 25

Read from the source code; the running server may list different tools.

Read 13 · Look things up without changing anything.

  • context_pack
  • get_backlinks
  • get_links
  • list_notes
  • list_tags
  • list_tasks
  • list_writes
  • outline_note
  • query_notes
  • read_note
  • read_notes
  • resolve_note
Show 1 more tools
  • search

Write 3 · Create, change, send or run things.

  • append_note
  • append_periodic_note
  • get_periodic_note

Delete 9 · Delete, drop, revoke or wipe things.

  • create_note
  • delete_note
  • move_note
  • patch_frontmatter
  • patch_note
  • rename_heading
  • replace_in_note
  • undo_write
  • update_task

Secrets and settings it asks for

Other settings (environment variables or headers).

  • SEEKSTONE_VAULT

Network hosts it talks to 3

  • biomejs.dev · found in code
  • glama.ai · found in code
  • unpkg.com · found in code

Files it touches

  • Any path the agent passes to its tools

Tools (25)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • append_note

    Append text to a note body without touching the frontmatter. Safe for meeting notes, daily logs, and append-only workflows.

  • append_periodic_note

    Append text to a periodic note (daily, weekly, monthly, quarterly, or yearly). Preserves existing frontmatter exactly. Creates the note first (from template if configured) when createIfMissing is true (default).

  • context_packread-only

    Assemble everything needed to ANSWER a natural-language question in one call, under a strict byte budget (default 2048): ranked excerpts, linked neighbor notes (backlinks/outlinks) with one-line summaries, and follow-up source paths. Retrieval is lexical by default: for a question phrased in words the note itself may not use, pass mode "hybrid" or "semantic", and scope with folder/tag exactly as in search. Use search to locate notes and query_notes for metadata filters; use context_pack when you want answer-ready context without multiple round-trips. Empty excerpts with confidence "none" or "l…

  • create_notecan change or delete data

    Create a new note at a vault-relative path. Optionally sets frontmatter and body content. Parent directories are created automatically. Fails if the note already exists unless overwrite is true (prevHash may guard the overwrite).

  • delete_notecan change or delete data

    Delete a note. By default it is moved to the vault .trash/ folder (recoverable by moving it back); pass permanent: true to remove it outright.

  • get_backlinksread-only

    Return every note that links to the target note, with the source line and an optional excerpt. Results come from the pre-built reverse-link index so this is a fast, pure index lookup. Sort order: source path ascending.

  • get_linksread-only

    Return all outgoing wikilinks and embeds from a note. Each link is marked resolved (with target path) or unresolved. Duplicate targets are de-duplicated; results sorted by line number.

  • get_periodic_note

    Get the path and existence status of a periodic note (daily, weekly, monthly, quarterly, or yearly) for a given date. Reads folder/format config from .obsidian/daily-notes.json (daily) or the periodic-notes plugin data.json. Optionally creates the note from the configured template if it is missing.

  • list_notesread-only

    List notes, optionally filtered by folder prefix or tag.

  • list_tagsread-only

    List all tags in the vault with usage counts. Supports substring filtering, minimum count threshold, and sort order. Nested tags (e.g. area/work) include a parent field.

  • list_tasksread-only

    List Markdown checkbox tasks as compact structured rows (path, line, state, text, nearest heading) — vault-wide or scoped by note, folder, tag, or modified time. Defaults to open tasks. Custom markers like "/" are single-char states. Rows feed straight into update_task; use this instead of searching for "- [ ]" or reading whole notes.

  • list_writesread-only

    List recent writes from the journal — every write tool records the pre-image of each file it touches, so any of them can be reverted with undo_write. Returns compact metadata rows (seq, timestamp, tool, paths, undoable), never note content.

  • move_notecan change or delete data

    Move or rename a note to a new vault-relative path, rewriting wikilinks and markdown links in other notes that point at it so nothing breaks (links inside fenced code blocks are left alone). Parent directories at the destination are created automatically. Fails if the destination already exists unless overwrite is true.

  • outline_noteread-only

    Return a note's structure — heading tree with offsets, block-reference anchors, and frontmatter key list — without returning any prose. Use this before section reads or patches to discover what sections exist at a fraction of the cost of reading the full note.

  • patch_frontmattercan change or delete data

    Set, update, or delete frontmatter keys without reordering existing keys or changing quote style. Pass null as a value to delete a key.

Show 10 more tools
  • patch_notecan change or delete data

    Surgically edit a section of a note — targeted by heading or block reference — without rewriting the whole file. Operations: append (add after section), prepend (add after heading line), replace (swap section content). Frontmatter is never touched.

  • query_notesread-only

    Structured metadata query — filter notes by frontmatter key/value predicates, tag, folder, modified time, and size. Returns compact rows (path + title by default; opt into more via select), not note content. Use this instead of search when filtering by properties rather than text.

  • read_noteread-only

    Read a note or a span of it — by heading section, block reference, or line range. Returns structured JSON with the content, bytes returned, total note size, and a contentHash to pass as prevHash to edit tools for compare-and-swap. Use search or outline_note first to find the right path and section names.

  • read_notesread-only

    Read up to 20 notes (or spans of them) in one call instead of repeated read_note calls, e.g. the top hits from search, query_notes, list_notes, or get_backlinks. Each item takes the same options as read_note and returns the same fields, in request order. budgetBytes (default 16384) caps the total note text: when the notes exceed it, each is cut to a fair share, marked truncated: true, and keeps noteBytes, so read the rest with read_note. A failing item (missing path, unknown section) returns its own error without failing the batch. contentHash is always the whole file's hash, usable as prevHas…

  • rename_headingcan change or delete data

    Rename a heading in a note and rewrite every [[note#heading]] wikilink and embed across the vault so references keep working — aliases preserved, fenced code blocks left alone. Served from the warm backlink index, no vault scan. Heading matching is case-insensitive; with duplicate headings the first match wins, mirroring Obsidian link resolution.

  • replace_in_notecan change or delete data

    Find and replace text within a note body. Supports literal and regex search, case sensitivity, whole-word matching, and a replacement limit. Frontmatter is never touched. Use dryRun to preview matches before writing.

  • resolve_noteread-only

    Resolve a note reference — a wikilink target, bare note name, path without extension, or frontmatter alias — to canonical vault-relative path(s). Each match carries provenance (path | basename | relpath | alias); matches[0] is exactly what a wikilink with that target resolves to, and ambiguous: true means more than one note matched. Empty matches means the reference resolves to nothing (didYouMean then lists close names). Returns paths only — resolve first, then read_notes. Pure index lookup.

  • searchread-only

    Full-text search across the vault. Returns ranked excerpts (~120 chars, tunable) — not full notes — to minimise context usage. Supports fuzzy matching and prefix search; with SEEKSTONE_SEMANTIC=1, mode "semantic"/"hybrid" searches by meaning via a local embedding model.

  • undo_writecan change or delete data

    Revert a journaled write: restores every file it touched to its byte-identical pre-write state (a multi-file move or heading rename is restored whole; a delete is restored even if it was permanent). Defaults to the most recent undoable write. Refuses with undo_conflict if a file changed since that write, unless force: true. The undo is itself journaled — undo it to redo.

  • update_taskcan change or delete data

    Set the state of one Markdown checkbox identified by path + line (from list_tasks), rewriting exactly one character — the rest of the file, frontmatter included, stays byte-identical. Pass expectText to guard against the line having changed, and prevHash for full compare-and-swap. Setting the current state again is a success no-op.

Compare and alternatives

    Featured in

    Signals

    Stars
    34
    Forks
    4
    Open issues
    0
    Contributors
    6
    Last commit
    Oct 13, 2026 (15 days ago)
    Last release
    Oct 12, 2026 (16 days ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    Registry name
    io.github.shaqmughal/seekstone
    Version
    0.22.1
    Auth
    No auth
    Packages
    npm seekstone
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    Seekstone MCP server. Agent Mart. https://agentmart.dev/connectors/shaqmughal-seekstone (last updated 2026-10-24)