mindin

Official registry Search and web

Indexed search, schema-checked writes and session hooks for a markdown notes vault

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

PYPI package mindin
Claude Code
claude mcp add mindin -e 'VAULT_PATH=<VAULT_PATH>' -e 'S3_ENDPOINT=<S3_ENDPOINT>' -e 'S3_ACCESS_KEY=<your s3_access_key>' -e 'S3_SECRET_KEY=<your s3_secret_key>' -e 'S3_BUCKET=<S3_BUCKET>' -e 'S3_PREFIX=<S3_PREFIX>' -e 'S3_REGION=us-east-1' -e 'VAULT_CACHE_DIR=~/.cache/mindin' -e 'VAULT_SCHEMA=<VAULT_SCHEMA>' -e 'VAULT_STOP_HOOK=<VAULT_STOP_HOOK>' -e 'VAULT_STOP_HOOK_COMMITS=<VAULT_STOP_HOOK_COMMITS>' -e 'VAULT_STOP_HOOK_PROMPTS=<VAULT_STOP_HOOK_PROMPTS>' -- uvx mindin==0.14.2
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mindin": {
            "command": "uvx",
            "args": [
                "mindin==0.14.2"
            ],
            "env": {
                "VAULT_PATH": "<VAULT_PATH>",
                "S3_ENDPOINT": "<S3_ENDPOINT>",
                "S3_ACCESS_KEY": "<your s3_access_key>",
                "S3_SECRET_KEY": "<your s3_secret_key>",
                "S3_BUCKET": "<S3_BUCKET>",
                "S3_PREFIX": "<S3_PREFIX>",
                "S3_REGION": "us-east-1",
                "VAULT_CACHE_DIR": "~/.cache/mindin",
                "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>"
            }
        }
    }
}

Environment variables

  • VAULT_PATH Directory holding the vault. Set this or the four S3_* variables.
  • S3_ENDPOINT S3 or MinIO endpoint URL holding the vault
  • S3_ACCESS_KEY secret Access key for the vault bucket
  • S3_SECRET_KEY secret Secret key for the vault bucket
  • S3_BUCKET Bucket holding the vault
  • S3_PREFIX Key prefix inside the bucket
  • S3_REGION Region for the vault bucket
  • VAULT_CACHE_DIR Where the SQLite index lives
  • VAULT_SCHEMA Local schema file overriding the one in the vault
  • VAULT_STOP_HOOK Set to off to disable the stop hook
  • VAULT_STOP_HOOK_COMMITS Set to off to turn off the stop hook's unlogged-commit and stale-note checks alone
  • VAULT_STOP_HOOK_PROMPTS Messages the user writes after the agent's last vault write before the stop hook asks it to save them (default 3), or off

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. mindin
  2. Install
  3. Use
  4. What you get
  5. Documentation
  6. License

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://github.com/gronare/mindin/releases/latest/download/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 you@example.com

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.

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.

Frequently asked questions

What is mindin?

Indexed search, schema-checked writes and session hooks for a markdown notes vault

How do I install mindin?

It runs on your machine. In Claude Code: claude mcp add mindin -e 'VAULT_PATH=<VAULT_PATH>' -e 'S3_ENDPOINT=<S3_ENDPOINT>' -e 'S3_ACCESS_KEY=<your s3_access_key>' -e 'S3_SECRET_KEY=<your s3_secret_key>' -e 'S3_BUCKET=<S3_BUCKET>' -e 'S3_PREFIX=<S3_PREFIX>' -e 'S3_REGION=us-east-1' -e 'VAULT_CACHE_DIR=~/.cache/mindin' -e 'VAULT_SCHEMA=<VAULT_SCHEMA>' -e 'VAULT_STOP_HOOK=<VAULT_STOP_HOOK>' -e 'VAULT_STOP_HOOK_COMMITS=<VAULT_STOP_HOOK_COMMITS>' -e 'VAULT_STOP_HOOK_PROMPTS=<VAULT_STOP_HOOK_PROMPTS>' -- uvx mindin==0.14.2. For other clients, paste the JSON configuration from this page into their MCP settings.

Does mindin need an API key?

Yes. It expects S3_ACCESS_KEY, S3_SECRET_KEY, which you set in its configuration.

Is mindin open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains mindin?

It is published by gronare. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.