Vaultnotes

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 3, 2026

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

VerifiedSTDIODesktop onlyFiles & StorageKnowledge & Memory

Overview

AI-generated overview

Local stdio MCP server that lets an assistant list, read, search, append to, patch and delete markdown notes in a vault folder on your disk.

What you can do
  • List every file in the vault or under one vault directory, as vault-relative paths
  • Read the text contents of a note
  • Search case-insensitively across the vault's markdown files, returning filepath, line number and matching line
  • Append content to a file, creating the file and parent folders if missing
  • Replace the first exact occurrence of a target passage in a file
  • Delete a file (directories are refused)
When to use it
Useful when your notes are plain markdown files in a local folder and you want an assistant to look things up, add entries or make small edits without a note-taking app or plugin API. Good for inbox-style capture, searching across a note vault, and targeted text replacements.
Requirements
Runs as a local process over stdio, via npx (Node.js) or the Docker image. The vault directory is resolved from the --vault flag, the VAULTNOTES_DIR environment variable, or the current working directory; set VAULTNOTES_DIR in the client config. No accounts or API keys are declared.
Before you install
Tools write to your files: append_content creates files and folders, patch_content rewrites text, and delete_file removes files, with no confirmation step described. Point it at a dedicated notes folder, since paths are vault-relative and escapes outside the vault are refused. The server starts even without a configured vault, so a missing vault surfaces as a tool error.

Installation

In SourceWeft

  1. Open Vaultnotes in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: README.md at commit 570a7bc

Tools

7

list_files_in_vault

List all files in the vault.

Takes no parameters.

list_files_in_dir

List all files in a specific directory of the vault.

Parametersdirpathrequired

get_file_contents

Get the contents of a file in the vault.

Parametersfilepathrequired

append_content

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

Parameterscontentrequiredfilepathrequired

patch_content

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

Parameterstargetrequiredcontentrequiredfilepathrequired

delete_file

Delete a file from the vault.

Parameterstarget_filepathrequired

Version history

1
  1. v0.1.0LatestOct 30, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts