Server data from the Official MCP Registry
List, read, search, and edit markdown notes in a local vault directory.
About
List, read, search, and edit markdown notes in a local vault directory.
Security Report
vaultnotes is a local, stdio-only notes tool with no network calls, no shell execution, and no hardcoded secrets, and its permissions match its purpose. The main concern is a path-scoping gap: resolveInVault does not handle dangling symlinks inside the vault, so append_content can write through such a link to a location outside the vault. The vault also defaults to the current working directory, which widens the set of files that delete_file and the write tools can reach. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.
8 files analyzed · 10 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-cloudcorprecords-vaultnotes": {
"args": [
"-y",
"@reneturcios/vaultnotes"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub 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
npx @reneturcios/vaultnotes list --vault ~/notes
Or run the container image:
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:
- the
--vault <dir>flag on the command line, - the
VAULTNOTES_DIRenvironment variable, - the current working directory.
CLI
vaultnotes list --vault ~/notes # every file in the vault
vaultnotes list-dir projects --vault ~/notes # files under one directory
vaultnotes read projects/alpha.md --vault ~/notes
vaultnotes search "launch checklist" --vault ~/notes
vaultnotes append inbox.md "Call Sam on Tuesday." --vault ~/notes
vaultnotes patch inbox.md "Tuesday" "Wednesday" --vault ~/notes
vaultnotes 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:
npx -y @reneturcios/vaultnotes mcp
MCP client configuration (set the vault with the environment):
{
"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
| Tool | Input | What it returns |
|---|---|---|
list_files_in_vault | (no arguments) | Every file in the vault, as vault-relative paths. |
list_files_in_dir | dirpath (string, required) | Every file under that vault directory, as vault-relative paths. |
get_file_contents | filepath (string, required) | The file's contents as text. |
search | query (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_content | filepath (string, required), content (string, required) | Appends the content to the file, creating the file (and parent folders) when it does not exist yet. |
patch_content | filepath (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_file | target_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
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, real fs in temp dirs, no network
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
