mcpField
M
mindin

mindin

Local
github.comOther2Updated today

About mindin

mindin is an MCP server and CLI for keeping agent memory in markdown notes stored in a folder, S3 bucket, or vault server. It pairs schema-checked note updates with indexed search and Git-aware session hooks, while leaving the notes under the user's control.

Key features

  1. 01Markdown vaults in folders or S3
  2. 02Schema-checked note writes
  3. 03Indexed search with language support
  4. 04Optional local semantic search
  5. 05Lifecycle commands and linting
  6. 06Git-aware session-start hook

Use cases

  1. 01Search project notes from an agent or shell
  2. 02Reject note updates that break a schema
  3. 03Review commits newer than a related note
  4. 04Share a vault across devices through a vault server

MCP support

The vault server exposes an MCP endpoint for clients such as claude.ai to search, read, and write notes. mindin also provides a CLI for searching and managing the vault.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"gronare-mindin": {
"command": "uvx",
"args": [
"mindin"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"S3_ENDPOINT": "<S3_ENDPOINT>",
"S3_ACCESS_KEY": "<S3_ACCESS_KEY>",
"S3_SECRET_KEY": "<S3_SECRET_KEY>",
"S3_BUCKET": "<S3_BUCKET>",
"S3_PREFIX": "<S3_PREFIX>",
"S3_REGION": "<S3_REGION>",
"VAULT_CACHE_DIR": "<VAULT_CACHE_DIR>",
"VAULT_SCHEMA": "<VAULT_SCHEMA>",
"VAULT_STOP_HOOK": "<VAULT_STOP_HOOK>",
"VAULT_STOP_HOOK_COMMITS": "<VAULT_STOP_HOOK_COMMITS>",
"VAULT_STOP_HOOK_PROMPTS": "<VAULT_STOP_HOOK_PROMPTS>"
}
}
}
}
Run commanduvx mindin
Environment variables to set
VAULT_PATHDirectory holding the vault. Set this or the four S3_* variables.
S3_ENDPOINTS3 or MinIO endpoint URL holding the vault
S3_ACCESS_KEYSecretAccess key for the vault bucket
S3_SECRET_KEYSecretSecret key for the vault bucket
S3_BUCKETBucket holding the vault
S3_PREFIXKey prefix inside the bucket
S3_REGIONRegion for the vault bucket
VAULT_CACHE_DIRWhere the SQLite index lives
VAULT_SCHEMALocal schema file overriding the one in the vault
VAULT_STOP_HOOKSet to off to disable the stop hook
VAULT_STOP_HOOK_COMMITSSet to off to turn off the stop hook's unlogged-commit and stale-note checks alone
VAULT_STOP_HOOK_PROMPTSMessages the user writes after the agent's last vault write before the stop hook asks it to save them (default 3), or off

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypimindin0.14.3

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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

curl -fsSL https://mindin.dev/install.sh | sh

It installs the mindin command with 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.

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 [email protected]

Then open https://VAULT_HOST/account and sign in. Install with Docker walks through each step.

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

mindin asks before it shares anonymous usage data, and sends nothing until you say yes: then, once a day, a random install id, mindin's version, the OS and CPU type and how mindin runs (plugin, CLI or server) go to signals.mindin.dev, never notes, names, paths or your vault's address. mindin setup --signals yes|no changes the answer. The install signal has the details.

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:

$ 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/ 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.