Vaultnotes

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 3, 2026

List, read, search, and edit markdown notes in a local vault directory.

已驗證STDIO僅桌面檔案與儲存知識與記憶

概覽

AI 產生的概覽

本機 stdio MCP 伺服器,讓助理列出、讀取、搜尋、附加、替換與刪除磁碟上筆記庫中的 markdown 筆記。

可以做什麼
  • 列出筆記庫或其中某個目錄下的所有檔案(以庫內相對路徑表示)
  • 讀取筆記的文字內容
  • 在筆記庫的 markdown 檔案中做不分大小寫的搜尋,回傳檔案路徑、行號與符合的行
  • 將內容附加到檔案,檔案或上層資料夾不存在時自動建立
  • 把檔案中第一處完全相符的目標文字替換為新內容
  • 刪除檔案(目錄會被拒絕)
適用情境
適合筆記本身就是本機資料夾裡的純 markdown 檔案,且希望助理在不依賴筆記軟體或外掛 API 的情況下查找、附加或小幅修改內容的情境。適用於收件匣式記錄、跨筆記庫檢索與定點文字替換。
執行需求
以本機程序透過 stdio 執行,可用 npx(需 Node.js)或 Docker 映像啟動。筆記庫目錄依 --vault 參數、VAULTNOTES_DIR 環境變數、目前工作目錄的順序解析;建議在用戶端設定中設定 VAULTNOTES_DIR。未宣告需要帳號或 API 金鑰。
安裝前請注意
這些工具會寫入檔案:append_content 會建立檔案與資料夾,patch_content 會改寫文字,delete_file 會刪除檔案,說明中未提及確認步驟。路徑皆為庫內相對路徑,超出筆記庫的路徑會被拒絕,但仍建議指向專用的筆記資料夾。未設定筆記庫時伺服器仍會啟動,缺少的筆記庫只會顯示為工具錯誤。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vaultnotes,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

vaultnotes

vaultnotes is a small set of tools for working with a vault of notes stored as plain files in a folder on your own disk: list what is in the vault, read a note, search across the markdown files, and append to, patch, or delete a note. It runs from the command line or as an MCP server for agents.

Local mode. vaultnotes works directly on a local directory. It does not need a running note-taking application or a plugin API: point it at the folder that holds your notes and every tool operates on the files there. Paths are always vault-relative, and anything that would resolve outside the vault — .. escapes, absolute paths elsewhere, symlinks pointing out — is refused before a file is touched.

Install

bash
npx @reneturcios/vaultnotes list --vault ~/notes

Or run the container image:

bash
docker run -i ghcr.io/cloudcorprecords/vaultnotes

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

Choosing the vault

The vault directory is resolved in this order:

  1. the --vault <dir> flag on the command line,
  2. the VAULTNOTES_DIR environment variable,
  3. the current working directory.

CLI

bash
vaultnotes list --vault ~/notes                 # every file in the vaultvaultnotes list-dir projects --vault ~/notes    # files under one directoryvaultnotes read projects/alpha.md --vault ~/notesvaultnotes search "launch checklist" --vault ~/notesvaultnotes append inbox.md "Call Sam on Tuesday." --vault ~/notesvaultnotes patch inbox.md "Tuesday" "Wednesday" --vault ~/notesvaultnotes delete drafts/old.md --vault ~/notes
vaultnotes --version

Exit codes: 0 on success, 1 when an operation fails (the error names the problem), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

bash
npx -y @reneturcios/vaultnotes mcp

MCP client configuration (set the vault with the environment):

json
{  "mcpServers": {    "vaultnotes": {      "command": "npx",      "args": ["-y", "@reneturcios/vaultnotes", "mcp"],      "env": { "VAULTNOTES_DIR": "/path/to/your/notes" }    }  }}

The server starts and lists its tools even when no vault has been configured yet; the vault is resolved per call and a missing vault produces a tool error rather than a crash.

Tools

ToolInputWhat it returns
list_files_in_vault(no arguments)Every file in the vault, as vault-relative paths.
list_files_in_dirdirpath (string, required)Every file under that vault directory, as vault-relative paths.
get_file_contentsfilepath (string, required)The file's contents as text.
searchquery (string, required)Case-insensitive substring matches across the vault's .md files: for each match, the filepath, the line number, and the matching line as a snippet.
append_contentfilepath (string, required), content (string, required)Appends the content to the file, creating the file (and parent folders) when it does not exist yet.
patch_contentfilepath (string, required), target (string, required), content (string, required)Replaces the first occurrence of the exact target text with the new content; an error when the target text is not in the file.
delete_filetarget_filepath (string, required)Deletes the file. Directories are refused.

A note on patch_content: targeting here is exact-text — the target is the literal passage to replace, not a heading name or a block reference. That keeps a patch unambiguous: it either finds the exact text once and replaces it, or it fails and changes nothing.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, real fs in temp dirs, no networknpm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

來源:README.md,提交 570a7bc

工具

7

list_files_in_vault

List all files in the vault.

無需輸入參數。

list_files_in_dir

List all files in a specific directory of the vault.

輸入參數dirpath必填

get_file_contents

Get the contents of a file in the vault.

輸入參數filepath必填

append_content

Append content to a file in the vault, creating the file if it does not exist.

輸入參數content必填filepath必填

patch_content

Replace the first occurrence of a target text in a vault file with new content.

輸入參數target必填content必填filepath必填

delete_file

Delete a file from the vault.

輸入參數target_filepath必填

版本歷史

1
  1. v0.1.0最新Oct 30, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分