@augmnt-sh/mindcache 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,227 @@
1
+ <p align="center">
2
+ <h1 align="center">MindCache</h1>
3
+ <p align="center">Your Obsidian vault, connected to AI.</p>
4
+ </p>
5
+
6
+ <p align="center">
7
+ <a href="https://www.npmjs.com/package/mindcache"><img src="https://img.shields.io/npm/v/mindcache?color=8B5CF6&label=npm" alt="npm version"></a>
8
+ <a href="https://github.com/augmnt/mindcache/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-8B5CF6" alt="MIT License"></a>
9
+ <a href="https://github.com/augmnt/mindcache"><img src="https://img.shields.io/github/stars/augmnt/mindcache?color=8B5CF6" alt="GitHub stars"></a>
10
+ </p>
11
+
12
+ ---
13
+
14
+ MindCache is an open-source [MCP server](https://modelcontextprotocol.io) that bridges your Obsidian vault with AI assistants. Search, capture, and connect your personal knowledge — instantly.
15
+
16
+ **40 tools** for finding, reading, writing, and organizing notes. Your AI can recall what you know, record what you learn, and connect ideas across your vault.
17
+
18
+ ## Quick Start
19
+
20
+ ### Prerequisites
21
+
22
+ 1. An [Obsidian](https://obsidian.md) vault (a folder of markdown files)
23
+ 2. Node.js 18+
24
+
25
+ No plugins required. MindCache reads your vault directly from the filesystem.
26
+
27
+ ### Setup
28
+
29
+ ```bash
30
+ # Interactive setup
31
+ npx @augmnt-sh/mindcache init
32
+
33
+ # Add to Claude Code
34
+ claude mcp add --scope user mindcache -- npx @augmnt-sh/mindcache
35
+ ```
36
+
37
+ That's it. Claude Code now has access to your vault.
38
+
39
+ ### Manual Configuration
40
+
41
+ Create `~/.config/mindcache/config.yml`:
42
+
43
+ ```yaml
44
+ vault: ~/Documents/Obsidian Vault
45
+
46
+ daily_notes:
47
+ folder: Daily
48
+ format: YYYY-MM-DD
49
+
50
+ templates:
51
+ folder: Templates/MindCache
52
+
53
+ inbox:
54
+ folder: MindCache/Inbox
55
+ require_review: false
56
+ ```
57
+
58
+ Or use environment variables:
59
+
60
+ ```bash
61
+ export MINDCACHE_VAULT=~/Documents/Obsidian\ Vault
62
+ ```
63
+
64
+ ## Tools
65
+
66
+ ### Find (7)
67
+
68
+ | Tool | Description |
69
+ |------|-------------|
70
+ | `search` | Full-text search with Obsidian operators |
71
+ | `ask` | Natural language Q&A across your vault |
72
+ | `find_related` | Notes connected via backlinks, tags, or content |
73
+ | `find_by_tag` | Filter notes by tags |
74
+ | `find_by_date` | Notes from a date range |
75
+ | `find_recent` | Recently modified notes |
76
+ | `find_mentions` | Where a term is mentioned |
77
+
78
+ ### Read (7)
79
+
80
+ | Tool | Description |
81
+ |------|-------------|
82
+ | `read_note` | Full note content |
83
+ | `read_section` | Content under a specific heading |
84
+ | `read_summary` | Note with metadata (tags, links, word count) |
85
+ | `read_properties` | YAML frontmatter only |
86
+ | `read_today` | Today's daily note |
87
+ | `read_this_week` | Daily notes from current week |
88
+ | `get_active_note` | Currently open note in Obsidian |
89
+
90
+ ### Remember (7)
91
+
92
+ | Tool | Description |
93
+ |------|-------------|
94
+ | `remember` | Quick capture to inbox |
95
+ | `remember_meeting` | Structured meeting notes |
96
+ | `remember_decision` | ADR-format decision log |
97
+ | `remember_idea` | Capture an idea |
98
+ | `remember_learning` | Save something learned |
99
+ | `remember_person` | Person/contact note |
100
+ | `remember_reference` | Bookmark with summary |
101
+
102
+ ### Journal (3)
103
+
104
+ | Tool | Description |
105
+ |------|-------------|
106
+ | `log` | Append to daily note |
107
+ | `log_task` | Add task to daily note |
108
+ | `reflect` | Reflection prompts |
109
+
110
+ ### Write (3)
111
+
112
+ | Tool | Description |
113
+ |------|-------------|
114
+ | `create_note` | Create note with optional template |
115
+ | `append_to_note` | Append to existing note |
116
+ | `update_section` | Replace section content |
117
+
118
+ ### Connect (4)
119
+
120
+ | Tool | Description |
121
+ |------|-------------|
122
+ | `add_link` | Insert wikilink between notes |
123
+ | `suggest_connections` | AI-powered link suggestions |
124
+ | `find_gaps` | Broken links (knowledge gaps) |
125
+ | `find_orphans` | Disconnected notes |
126
+
127
+ ### Organize (4)
128
+
129
+ | Tool | Description |
130
+ |------|-------------|
131
+ | `add_tag` | Add tags to a note |
132
+ | `update_properties` | Modify frontmatter |
133
+ | `rename_note` | Rename a note |
134
+ | `move_note` | Move to different folder |
135
+
136
+ ### Understand (3)
137
+
138
+ | Tool | Description |
139
+ |------|-------------|
140
+ | `vault_overview` | Stats, folders, tags |
141
+ | `list_tags` | All tags with counts |
142
+ | `get_vault_structure` | Folder tree |
143
+
144
+ ### Tasks (2)
145
+
146
+ | Tool | Description |
147
+ |------|-------------|
148
+ | `find_tasks` | Find checkbox tasks |
149
+ | `complete_task` | Mark task as done |
150
+
151
+ ## Resources
152
+
153
+ MindCache also exposes MCP resources for automatic context:
154
+
155
+ | Resource | Description |
156
+ |----------|-------------|
157
+ | `vault://today` | Today's daily note |
158
+ | `vault://recent` | Recently modified notes |
159
+ | `vault://tags` | Tag cloud |
160
+ | `vault://context` | Project-relevant notes |
161
+
162
+ ## Templates
163
+
164
+ MindCache ships with 10 note templates: `decision`, `meeting`, `learning`, `idea`, `person`, `project`, `book`, `article`, `weekly-review`, `session`.
165
+
166
+ ## CLI
167
+
168
+ ```bash
169
+ npx @augmnt-sh/mindcache # Start MCP server
170
+ npx @augmnt-sh/mindcache init # Interactive setup
171
+ npx @augmnt-sh/mindcache doctor # Diagnose issues
172
+ npx @augmnt-sh/mindcache config # Show configuration
173
+ npx @augmnt-sh/mindcache --help # Help
174
+ npx @augmnt-sh/mindcache --version # Version
175
+ ```
176
+
177
+ ## MCP Client Configuration
178
+
179
+ ### Claude Code
180
+
181
+ ```bash
182
+ claude mcp add --scope user mindcache -- npx @augmnt-sh/mindcache
183
+ ```
184
+
185
+ ### Claude Desktop
186
+
187
+ Add to `claude_desktop_config.json`:
188
+
189
+ ```json
190
+ {
191
+ "mcpServers": {
192
+ "mindcache": {
193
+ "command": "npx",
194
+ "args": ["@augmnt-sh/mindcache"]
195
+ }
196
+ }
197
+ }
198
+ ```
199
+
200
+ ### Cursor
201
+
202
+ Add to MCP settings:
203
+
204
+ ```json
205
+ {
206
+ "mindcache": {
207
+ "command": "npx",
208
+ "args": ["@augmnt-sh/mindcache"]
209
+ }
210
+ }
211
+ ```
212
+
213
+ ## Privacy
214
+
215
+ MindCache runs entirely on your machine. Your notes never leave your computer. No cloud, no accounts, no telemetry.
216
+
217
+ ## Contributing
218
+
219
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
220
+
221
+ ## License
222
+
223
+ MIT - see [LICENSE](LICENSE) for details.
224
+
225
+ ---
226
+
227
+ Built by [augmnt](https://augmnt.sh) | [Website](https://usemindcache.com) | [npm](https://www.npmjs.com/package/mindcache)
package/dist/cli.js CHANGED
@@ -191,7 +191,7 @@ Relevant vault notes:
191
191
  ${i}`,mimeType:"text/markdown"}]}}catch{return {contents:[{uri:t.href,text:"Could not determine context.",mimeType:"text/plain"}]}}});}var z="mindcache";function k(s){process.stderr.write(`[${z}] ${s}
192
192
  `);}function P(s){process.stderr.write(`[${z}] ERROR: ${s}
193
193
  `);}function ut(s){process.stderr.write(`[${z}] WARN: ${s}
194
- `);}var F="0.1.0";function pt(s){let n=new McpServer({name:"mindcache",version:F},{instructions:["MindCache connects your Obsidian vault to AI.","Use the search and ask tools to find information in the user's personal knowledge base.","Use the remember tools to capture decisions, meetings, ideas, learnings, and references.","Use the log tool to add entries to the daily note.","Use the connect tools to build links between related notes.","Always check the vault before asking the user to repeat information they may have already documented.","When creating notes, use appropriate templates and add relevant tags."].join(" ")}),c=new M(s);return k("Registering tools..."),et(n,c),nt(n,c,s),rt(n,c,s),st(n,c,s),it(n,c),at(n,c),ct(n,c),lt(n,c),dt(n,c),k("Registering resources..."),ft(n,c,s),k("Server configured with 40 tools and 4 resources"),n}var Y={vault:"",dailyNotes:{folder:"Daily",format:"YYYY-MM-DD"},templates:{folder:"Templates/MindCache"},inbox:{folder:"MindCache/Inbox",requireReview:false}};function Ot(s){let n={},c="";for(let t of s.split(`
194
+ `);}var F="0.1.1";function pt(s){let n=new McpServer({name:"mindcache",version:F},{instructions:["MindCache connects your Obsidian vault to AI.","Use the search and ask tools to find information in the user's personal knowledge base.","Use the remember tools to capture decisions, meetings, ideas, learnings, and references.","Use the log tool to add entries to the daily note.","Use the connect tools to build links between related notes.","Always check the vault before asking the user to repeat information they may have already documented.","When creating notes, use appropriate templates and add relevant tags."].join(" ")}),c=new M(s);return k("Registering tools..."),et(n,c),nt(n,c,s),rt(n,c,s),st(n,c,s),it(n,c),at(n,c),ct(n,c),lt(n,c),dt(n,c),k("Registering resources..."),ft(n,c,s),k("Server configured with 40 tools and 4 resources"),n}var Y={vault:"",dailyNotes:{folder:"Daily",format:"YYYY-MM-DD"},templates:{folder:"Templates/MindCache"},inbox:{folder:"MindCache/Inbox",requireReview:false}};function Ot(s){let n={},c="";for(let t of s.split(`
195
195
  `)){let e=t.replace(/#.*$/,"").trimEnd();if(!e.trim())continue;let o=e.length-e.trimStart().length,r=e.trim(),i=r.indexOf(":");if(i<0)continue;let a=r.slice(0,i).trim(),d=r.slice(i+1).trim();o===0&&!d?(c=a,n[c]||(n[c]={})):o>0&&c?n[c][a]=d:n[a]=d;}return n}function _t(){let s=[resolve(process.cwd(),".mindcache.yml"),resolve(process.cwd(),".mindcache.yaml"),join(homedir(),".config","mindcache","config.yml"),join(homedir(),".config","mindcache","config.yaml"),join(homedir(),".mindcache.yml")];for(let n of s)if(existsSync(n))return n;return null}function j(){let s={vault:Y.vault,dailyNotes:{...Y.dailyNotes},templates:{...Y.templates},inbox:{...Y.inbox}};process.env.MINDCACHE_VAULT&&(s.vault=process.env.MINDCACHE_VAULT);let n=process.env.MINDCACHE_CONFIG||_t();if(n&&existsSync(n)){k(`Loading config from ${n}`);try{let c=readFileSync(n,"utf-8"),t=Ot(c);typeof t.vault=="string"&&(s.vault=t.vault);let e=t.daily_notes??t.dailyNotes;e&&(e.folder&&(s.dailyNotes.folder=e.folder),e.format&&(s.dailyNotes.format=e.format));let o=t.templates;o&&o.folder&&(s.templates.folder=o.folder);let r=t.inbox;r&&(r.folder&&(s.inbox.folder=r.folder),r.require_review&&(s.inbox.requireReview=r.require_review==="true"));}catch(c){ut(`Failed to parse config: ${c instanceof Error?c.message:String(c)}`);}}return s.vault.startsWith("~")&&(s.vault=s.vault.replace("~",homedir())),s}var Ht=`
196
196
  MindCache v${F} \u2014 Your Obsidian vault, connected to AI.
197
197