Skip to main content
Glama
notes-vault-mcp

notes-vault-mcp

by gronare
README.md
<!-- mcp-name: io.github.gronare/mindin -->

# mindin

Memory for Claude and coding agents, kept as markdown notes you own, with a schema that holds and a tie to your git history.

## Install

```sh
curl -fsSL https://github.com/gronare/mindin/releases/latest/download/install.sh | sh
```

It installs the `mindin` command with [uv](https://docs.astral.sh/uv/), asks where your vault lives (a folder, an S3 bucket or a vault server), and offers to add the vault to Claude Code, Codex and Cursor; it changes nothing in them without a yes. mindin was called notes-vault-mcp: the `notes-vault-mcp` package and command still work, and install and run mindin.

### A vault server

A vault server with Docker Compose, for claude.ai, Claude Desktop, mobile and every machine you work on. You need a domain pointing at the machine, ports 80 and 443 open, and an SMTP account for sign-in links.

```sh
mkdir notes-vault && cd notes-vault
curl -fsSL -O https://github.com/gronare/mindin/releases/latest/download/compose.yml -O https://github.com/gronare/mindin/releases/latest/download/Caddyfile
curl -fsSL -o .env https://github.com/gronare/mindin/releases/latest/download/example.env
docker compose run --rm --no-deps vault master-key generate   # paste into .env, with VAULT_HOST and SMTP
docker compose up -d
docker compose exec vault mindin accounts invite you@example.com
```

Then open `https://VAULT_HOST/account` and sign in. [Install with Docker](https://github.com/gronare/mindin/blob/main/docs/install/docker.md) walks through each step.

Without the script, on one machine: `uv tool install mindin`, then `mindin setup`.

## Use

Add the server's address, `https://VAULT_HOST/mcp`, as a custom connector in claude.ai. Claude searches, reads and writes your notes. The same search from a shell on a [signed-in machine](https://github.com/gronare/mindin/blob/main/docs/how-to/sign-in-a-machine.md):

```console
$ mindin search "signing in"
1 note · archive and superseded hidden

myapp  system  3 days
Areas/myapp.md
  ## Sign-in Users sign in with passkeys; email links are the fallback.
```

## What you get

- **Notes you own.** Plain markdown in a folder or an S3 bucket; open them in Obsidian, keep them in git.
- **A schema with teeth.** Required fields, legal statuses and kinds, a tag vocabulary; a write that breaks the contract is refused. Start from PARA, a simple vault, a journal or your own layout.
- **A lifecycle.** `close` archives finished work, `backlog_add` files what was deferred, `log_append` writes one line per repo per session, `lint` reports drift.
- **Memory tied to code.** A note names the paths it describes; the session-start hook prints the commits newer than the note.
- **Search that reads your languages.** Stemming, folded diacritics, synonyms, and optional search by meaning that runs on your machine.
- **Your own vault server.** Accounts with passkeys, email links, GitHub or your identity provider, several vaults each, shared vaults, sealed in storage.

## Documentation

[docs/](https://github.com/gronare/mindin/blob/main/docs/README.md) has the install guides, the how-tos for each client, the reference for every tool, command and setting, and how it works.

## License

MIT. See [LICENSE](LICENSE).

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation5/5

Each tool owns a clearly distinct operation: search/list_files/context/lint cover different discovery and integrity concerns, while read_file/write_file/append_file/move_file/delete_file/close/log_append cover separate mutation or lifecycle actions. Even the pair write_file/append_file is well separated by full-file conditional write versus append-and-create behavior.

Naming Consistency3/5

Most file operations follow a clean verb_noun pattern (read_file, write_file, append_file, move_file, delete_file, list_files), but search, close, context, and lint are single words and log_append reverses the pattern. The naming is readable and grouped by function, but it is not consistently predictable across the whole surface.

Tool Count5/5

Eleven tools is well within the ideal scope for a notes vault server: discovery, read/write, move/delete, archive, session context, logging, and lint each have a dedicated tool. No tool feels redundant or like filler.

Completeness4/5

The surface covers the core lifecycle thoroughly: search/read/create/update/append/move/delete/archive, plus session context, logging, and lint. The main gap is the lack of an explicit restore/reopen operation for archived notes, though move_file combined with write_file can work around it.

Maintenance

ActivityActive
ResponsivenessSyncing