ocean-brain 0.8.0 → 0.8.2

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.
Files changed (279) hide show
  1. package/README.md +113 -0
  2. package/dist/mcp.js +230 -291
  3. package/package.json +6 -5
  4. package/server/client/dist/assets/ArrowRight.es-g2YZTklZ.js +1 -0
  5. package/server/client/dist/assets/Calendar-BP6HTuSn.js +25 -0
  6. package/server/client/dist/assets/Callout-B_IPSF_5.js +1 -0
  7. package/server/client/dist/assets/Copy.es-CNxe4ujr.js +1 -0
  8. package/server/client/dist/assets/Graph-D9GeO71k.js +1 -0
  9. package/server/client/dist/assets/Graph-Xha3fwhp.js +46 -0
  10. package/server/client/dist/assets/Image-BLEjLUqd.js +1 -0
  11. package/server/client/dist/assets/Image.es-DnON8cv2.js +1 -0
  12. package/server/client/dist/assets/Note-DjrCYtat.js +24 -0
  13. package/server/client/dist/assets/NotePropertiesPanel-2DgXEM4B.js +2 -0
  14. package/server/client/dist/assets/Plus.es-CQ8wn2is.js +1 -0
  15. package/server/client/dist/assets/Reminders-B4l3KdlK.js +1 -0
  16. package/server/client/dist/assets/Search-BN5sf7bE.js +1 -0
  17. package/server/client/dist/assets/SurfaceCard-BZm73nyS.js +1 -0
  18. package/server/client/dist/assets/Tag-oSnmViVp.js +1 -0
  19. package/server/client/dist/assets/TagNotes-BDTCcJcL.js +1 -0
  20. package/server/client/dist/assets/Trash.es-0aPpA-3S.js +1 -0
  21. package/server/client/dist/assets/ViewNotes-CiZtGJNE.js +1 -0
  22. package/server/client/dist/assets/{ViewSectionDialog-CzskgmMF.js → ViewSectionDialog-Ctl_694Y.js} +17 -17
  23. package/server/client/dist/assets/Views-D-zlatYD.js +1 -0
  24. package/server/client/dist/assets/app-DmqIOMWF.css +1 -0
  25. package/server/client/dist/assets/app-cTRcKMGc.js +26 -0
  26. package/server/client/dist/assets/floating-ui.react-dom-wWLZ1CdM.js +1 -0
  27. package/server/client/dist/assets/{image.api-8dlMwzMd.js → image.api-CVuuvTBk.js} +1 -1
  28. package/server/client/dist/assets/index-DKJChPr4.js +1 -0
  29. package/server/client/dist/assets/manage-image-BZjaxp-f.js +1 -0
  30. package/server/client/dist/assets/manage-image-detail-DPv0FQ2m.js +1 -0
  31. package/server/client/dist/assets/{mcp-EDurbggR.js → mcp-CT_9IV2c.js} +2 -2
  32. package/server/client/dist/assets/mcp-admin-adapter-xAuyZc_M.js +1 -0
  33. package/server/client/dist/assets/note-core-Buwzyxi7.js +13 -0
  34. package/server/client/dist/assets/note-runtime-CPDVOFEo.js +168 -0
  35. package/server/client/dist/assets/note-ui-CHI-tzj-.js +2 -0
  36. package/server/client/dist/assets/{index-BEUqDuAZ.css → note-ui-DL8owV-U.css} +1 -1
  37. package/server/client/dist/assets/note.api-D_00ZzJC.js +356 -0
  38. package/server/client/dist/assets/{placeholder-DeKgSBnC.js → placeholder-DbdGiYGL.js} +4 -4
  39. package/server/client/dist/assets/preload-helper-BXl3LOEh.js +1 -0
  40. package/server/client/dist/assets/properties-D447wsWk.js +1 -0
  41. package/server/client/dist/assets/route-preload.js +2 -0
  42. package/server/client/dist/assets/{tag.api-Dl8DQd0m.js → tag.api-CX0SE06J.js} +1 -1
  43. package/server/client/dist/assets/time-B3pt8vt4.js +9 -0
  44. package/server/client/dist/assets/trash-8sH7EZgc.js +1 -0
  45. package/server/client/dist/assets/url-BSnWpmJx.js +1 -0
  46. package/server/client/dist/assets/{useReminderMutate-CoXXqJY2.js → useReminderMutate-CLK1tHvT.js} +4 -4
  47. package/server/client/dist/index.html +10 -5
  48. package/server/dist/app.js +1 -2
  49. package/server/dist/features/auth/http/api.js +0 -1
  50. package/server/dist/features/auth/http/login-page.js +272 -5
  51. package/server/dist/features/auth/http/pages.js +20 -3
  52. package/server/dist/features/auth/service.js +3 -2
  53. package/server/dist/features/cache/graphql/cache.field.resolver.js +0 -1
  54. package/server/dist/features/cache/graphql/cache.mutation.resolver.js +0 -1
  55. package/server/dist/features/cache/graphql/cache.query.resolver.js +0 -1
  56. package/server/dist/features/cache/graphql/cache.resolver.js +0 -1
  57. package/server/dist/features/cache/graphql/cache.type-defs.js +0 -1
  58. package/server/dist/features/cache/graphql/index.js +0 -1
  59. package/server/dist/features/image/graphql/image.field.resolver.js +0 -1
  60. package/server/dist/features/image/graphql/image.mutation.resolver.js +0 -1
  61. package/server/dist/features/image/graphql/image.query.resolver.js +0 -1
  62. package/server/dist/features/image/graphql/image.resolver.js +0 -1
  63. package/server/dist/features/image/graphql/image.type-defs.js +0 -1
  64. package/server/dist/features/image/graphql/index.js +0 -1
  65. package/server/dist/features/image/http/upload.js +0 -1
  66. package/server/dist/features/image/services/delete.js +0 -1
  67. package/server/dist/features/image/services/upload.js +0 -1
  68. package/server/dist/features/image/services/validation.js +0 -1
  69. package/server/dist/features/mcp-admin/http/handlers.js +0 -1
  70. package/server/dist/features/mcp-admin/service.js +0 -1
  71. package/server/dist/features/note/graphql/index.js +0 -1
  72. package/server/dist/features/note/graphql/note.field.resolver.js +0 -1
  73. package/server/dist/features/note/graphql/note.mutation.resolver.js +0 -1
  74. package/server/dist/features/note/graphql/note.query.resolver.js +0 -1
  75. package/server/dist/features/note/graphql/note.resolver.js +0 -1
  76. package/server/dist/features/note/graphql/note.type-defs.js +0 -1
  77. package/server/dist/features/note/http/mcp.js +0 -1
  78. package/server/dist/features/note/services/authoring.js +0 -1
  79. package/server/dist/features/note/services/cleanup.js +0 -1
  80. package/server/dist/features/note/services/content-blocks.js +0 -1
  81. package/server/dist/features/note/services/markdown-intent-write.js +0 -1
  82. package/server/dist/features/note/services/markdown-patch.js +0 -1
  83. package/server/dist/features/note/services/properties.js +0 -1
  84. package/server/dist/features/note/services/search-backfill.js +0 -1
  85. package/server/dist/features/note/services/search.js +0 -1
  86. package/server/dist/features/note/services/snapshot.js +0 -1
  87. package/server/dist/features/note/services/tag-filter.js +0 -1
  88. package/server/dist/features/note/services/trash.js +0 -1
  89. package/server/dist/features/note/services/write-conflict.js +0 -1
  90. package/server/dist/features/note/services/write.js +0 -1
  91. package/server/dist/features/placeholder/graphql/index.js +0 -1
  92. package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js +0 -1
  93. package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +0 -1
  94. package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +0 -1
  95. package/server/dist/features/placeholder/graphql/placeholder.resolver.js +0 -1
  96. package/server/dist/features/placeholder/graphql/placeholder.type-defs.js +0 -1
  97. package/server/dist/features/reminder/graphql/index.js +0 -1
  98. package/server/dist/features/reminder/graphql/reminder.field.resolver.js +0 -1
  99. package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js +0 -1
  100. package/server/dist/features/reminder/graphql/reminder.query.resolver.js +0 -1
  101. package/server/dist/features/reminder/graphql/reminder.resolver.js +0 -1
  102. package/server/dist/features/reminder/graphql/reminder.type-defs.js +0 -1
  103. package/server/dist/features/tag/graphql/index.js +0 -1
  104. package/server/dist/features/tag/graphql/tag.field.resolver.js +0 -1
  105. package/server/dist/features/tag/graphql/tag.mutation.resolver.js +0 -1
  106. package/server/dist/features/tag/graphql/tag.query.resolver.js +0 -1
  107. package/server/dist/features/tag/graphql/tag.resolver.js +0 -1
  108. package/server/dist/features/tag/graphql/tag.type-defs.js +0 -1
  109. package/server/dist/features/tag/http/mcp.js +0 -1
  110. package/server/dist/features/tag/services/organization.js +0 -1
  111. package/server/dist/features/view/graphql/index.js +0 -1
  112. package/server/dist/features/view/graphql/view.mutation.resolver.js +0 -1
  113. package/server/dist/features/view/graphql/view.query.resolver.js +0 -1
  114. package/server/dist/features/view/graphql/view.resolver.js +0 -1
  115. package/server/dist/features/view/graphql/view.type-defs.js +0 -1
  116. package/server/dist/features/view/services/workspace.js +0 -1
  117. package/server/dist/main.js +0 -1
  118. package/server/dist/models.js +0 -1
  119. package/server/dist/modules/app-version.js +0 -1
  120. package/server/dist/modules/auth-guard.js +0 -1
  121. package/server/dist/modules/auth-mode.js +0 -1
  122. package/server/dist/modules/auth-redirect.js +0 -1
  123. package/server/dist/modules/blocknote-markdown-editor.js +53 -0
  124. package/server/dist/modules/blocknote-tree.js +0 -1
  125. package/server/dist/modules/blocknote.js +272 -79
  126. package/server/dist/modules/data-maintenance.js +0 -1
  127. package/server/dist/modules/error-handler.js +8 -1
  128. package/server/dist/modules/graphql.js +0 -1
  129. package/server/dist/modules/logger.js +0 -1
  130. package/server/dist/modules/mcp-auth.js +0 -1
  131. package/server/dist/modules/mcp-token.js +0 -1
  132. package/server/dist/modules/prisma-runtime.js +0 -1
  133. package/server/dist/modules/rate-limit.js +0 -1
  134. package/server/dist/modules/recovery-retention.js +0 -1
  135. package/server/dist/modules/server-events-handler.js +0 -1
  136. package/server/dist/modules/server-events.js +0 -1
  137. package/server/dist/modules/session-store.js +0 -1
  138. package/server/dist/modules/use-async.js +0 -1
  139. package/server/dist/paths.js +0 -1
  140. package/server/dist/routes/api.js +0 -1
  141. package/server/dist/routes/auth-pages.js +0 -1
  142. package/server/dist/routes/client.js +0 -1
  143. package/server/dist/routes/graphql.js +0 -1
  144. package/server/dist/routes/index.js +0 -1
  145. package/server/dist/routes/mcp.js +0 -1
  146. package/server/dist/schema/index.js +0 -1
  147. package/server/dist/start.js +0 -1
  148. package/server/dist/types/index.js +0 -1
  149. package/server/dist/types/input.js +0 -1
  150. package/server/client/dist/assets/ArrowRight.es-C4zlc54Z.js +0 -1
  151. package/server/client/dist/assets/Calendar-COrN6Hjv.js +0 -25
  152. package/server/client/dist/assets/Callout-BK0K9E74.js +0 -1
  153. package/server/client/dist/assets/Copy.es-zm8f_XXX.js +0 -1
  154. package/server/client/dist/assets/Graph-BH1fzhue.js +0 -1
  155. package/server/client/dist/assets/Image-KXuHOG4b.js +0 -1
  156. package/server/client/dist/assets/Image.es-BKahRbIm.js +0 -1
  157. package/server/client/dist/assets/Note-C143cKKw.js +0 -12
  158. package/server/client/dist/assets/Plus.es-BqeC8T8h.js +0 -1
  159. package/server/client/dist/assets/Reminders-BYG5rz1M.js +0 -1
  160. package/server/client/dist/assets/Search-DBWsIMDP.js +0 -1
  161. package/server/client/dist/assets/SurfaceCard-CNSQfYfM.js +0 -1
  162. package/server/client/dist/assets/Tag-5aCfSO8Y.js +0 -1
  163. package/server/client/dist/assets/TagNotes-BPZjN-6l.js +0 -1
  164. package/server/client/dist/assets/Trash.es-CRQkTnXZ.js +0 -1
  165. package/server/client/dist/assets/ViewNotes-DGLNF96x.js +0 -1
  166. package/server/client/dist/assets/Views-DR5jT23G.js +0 -1
  167. package/server/client/dist/assets/graph-vendor-UTvF2NS_.js +0 -46
  168. package/server/client/dist/assets/index-DGIAh3ZY.js +0 -1
  169. package/server/client/dist/assets/index-VHp17GQX.js +0 -342
  170. package/server/client/dist/assets/manage-image-RqtWKas2.js +0 -1
  171. package/server/client/dist/assets/manage-image-detail-BTSIbLlQ.js +0 -1
  172. package/server/client/dist/assets/mcp-admin-adapter-DmGUo5G8.js +0 -1
  173. package/server/client/dist/assets/note-core-BklwyZHk.js +0 -180
  174. package/server/client/dist/assets/note-vendor-DkYKUmLo.js +0 -54
  175. package/server/client/dist/assets/properties-BjrZvOYn.js +0 -1
  176. package/server/client/dist/assets/trash-C5ntddLu.js +0 -1
  177. package/server/client/dist/fonts/Pretendard-Bold.woff +0 -0
  178. package/server/client/dist/fonts/Pretendard-Regular.woff +0 -0
  179. package/server/dist/app.js.map +0 -1
  180. package/server/dist/features/auth/http/api.js.map +0 -1
  181. package/server/dist/features/auth/http/login-page.js.map +0 -1
  182. package/server/dist/features/auth/http/pages.js.map +0 -1
  183. package/server/dist/features/auth/service.js.map +0 -1
  184. package/server/dist/features/cache/graphql/cache.field.resolver.js.map +0 -1
  185. package/server/dist/features/cache/graphql/cache.mutation.resolver.js.map +0 -1
  186. package/server/dist/features/cache/graphql/cache.query.resolver.js.map +0 -1
  187. package/server/dist/features/cache/graphql/cache.resolver.js.map +0 -1
  188. package/server/dist/features/cache/graphql/cache.type-defs.js.map +0 -1
  189. package/server/dist/features/cache/graphql/index.js.map +0 -1
  190. package/server/dist/features/image/graphql/image.field.resolver.js.map +0 -1
  191. package/server/dist/features/image/graphql/image.mutation.resolver.js.map +0 -1
  192. package/server/dist/features/image/graphql/image.query.resolver.js.map +0 -1
  193. package/server/dist/features/image/graphql/image.resolver.js.map +0 -1
  194. package/server/dist/features/image/graphql/image.type-defs.js.map +0 -1
  195. package/server/dist/features/image/graphql/index.js.map +0 -1
  196. package/server/dist/features/image/http/upload.js.map +0 -1
  197. package/server/dist/features/image/services/delete.js.map +0 -1
  198. package/server/dist/features/image/services/upload.js.map +0 -1
  199. package/server/dist/features/image/services/validation.js.map +0 -1
  200. package/server/dist/features/mcp-admin/http/handlers.js.map +0 -1
  201. package/server/dist/features/mcp-admin/service.js.map +0 -1
  202. package/server/dist/features/note/graphql/index.js.map +0 -1
  203. package/server/dist/features/note/graphql/note.field.resolver.js.map +0 -1
  204. package/server/dist/features/note/graphql/note.mutation.resolver.js.map +0 -1
  205. package/server/dist/features/note/graphql/note.query.resolver.js.map +0 -1
  206. package/server/dist/features/note/graphql/note.resolver.js.map +0 -1
  207. package/server/dist/features/note/graphql/note.type-defs.js.map +0 -1
  208. package/server/dist/features/note/http/mcp.js.map +0 -1
  209. package/server/dist/features/note/services/authoring.js.map +0 -1
  210. package/server/dist/features/note/services/cleanup.js.map +0 -1
  211. package/server/dist/features/note/services/content-blocks.js.map +0 -1
  212. package/server/dist/features/note/services/markdown-intent-write.js.map +0 -1
  213. package/server/dist/features/note/services/markdown-patch.js.map +0 -1
  214. package/server/dist/features/note/services/properties.js.map +0 -1
  215. package/server/dist/features/note/services/search-backfill.js.map +0 -1
  216. package/server/dist/features/note/services/search.js.map +0 -1
  217. package/server/dist/features/note/services/snapshot.js.map +0 -1
  218. package/server/dist/features/note/services/tag-filter.js.map +0 -1
  219. package/server/dist/features/note/services/trash.js.map +0 -1
  220. package/server/dist/features/note/services/write-conflict.js.map +0 -1
  221. package/server/dist/features/note/services/write.js.map +0 -1
  222. package/server/dist/features/placeholder/graphql/index.js.map +0 -1
  223. package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js.map +0 -1
  224. package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js.map +0 -1
  225. package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js.map +0 -1
  226. package/server/dist/features/placeholder/graphql/placeholder.resolver.js.map +0 -1
  227. package/server/dist/features/placeholder/graphql/placeholder.type-defs.js.map +0 -1
  228. package/server/dist/features/reminder/graphql/index.js.map +0 -1
  229. package/server/dist/features/reminder/graphql/reminder.field.resolver.js.map +0 -1
  230. package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js.map +0 -1
  231. package/server/dist/features/reminder/graphql/reminder.query.resolver.js.map +0 -1
  232. package/server/dist/features/reminder/graphql/reminder.resolver.js.map +0 -1
  233. package/server/dist/features/reminder/graphql/reminder.type-defs.js.map +0 -1
  234. package/server/dist/features/tag/graphql/index.js.map +0 -1
  235. package/server/dist/features/tag/graphql/tag.field.resolver.js.map +0 -1
  236. package/server/dist/features/tag/graphql/tag.mutation.resolver.js.map +0 -1
  237. package/server/dist/features/tag/graphql/tag.query.resolver.js.map +0 -1
  238. package/server/dist/features/tag/graphql/tag.resolver.js.map +0 -1
  239. package/server/dist/features/tag/graphql/tag.type-defs.js.map +0 -1
  240. package/server/dist/features/tag/http/mcp.js.map +0 -1
  241. package/server/dist/features/tag/services/organization.js.map +0 -1
  242. package/server/dist/features/view/graphql/index.js.map +0 -1
  243. package/server/dist/features/view/graphql/view.mutation.resolver.js.map +0 -1
  244. package/server/dist/features/view/graphql/view.query.resolver.js.map +0 -1
  245. package/server/dist/features/view/graphql/view.resolver.js.map +0 -1
  246. package/server/dist/features/view/graphql/view.type-defs.js.map +0 -1
  247. package/server/dist/features/view/services/workspace.js.map +0 -1
  248. package/server/dist/main.js.map +0 -1
  249. package/server/dist/models.js.map +0 -1
  250. package/server/dist/modules/app-version.js.map +0 -1
  251. package/server/dist/modules/auth-guard.js.map +0 -1
  252. package/server/dist/modules/auth-mode.js.map +0 -1
  253. package/server/dist/modules/auth-redirect.js.map +0 -1
  254. package/server/dist/modules/blocknote-tree.js.map +0 -1
  255. package/server/dist/modules/blocknote.js.map +0 -1
  256. package/server/dist/modules/data-maintenance.js.map +0 -1
  257. package/server/dist/modules/error-handler.js.map +0 -1
  258. package/server/dist/modules/graphql.js.map +0 -1
  259. package/server/dist/modules/logger.js.map +0 -1
  260. package/server/dist/modules/mcp-auth.js.map +0 -1
  261. package/server/dist/modules/mcp-token.js.map +0 -1
  262. package/server/dist/modules/prisma-runtime.js.map +0 -1
  263. package/server/dist/modules/rate-limit.js.map +0 -1
  264. package/server/dist/modules/recovery-retention.js.map +0 -1
  265. package/server/dist/modules/server-events-handler.js.map +0 -1
  266. package/server/dist/modules/server-events.js.map +0 -1
  267. package/server/dist/modules/session-store.js.map +0 -1
  268. package/server/dist/modules/use-async.js.map +0 -1
  269. package/server/dist/paths.js.map +0 -1
  270. package/server/dist/routes/api.js.map +0 -1
  271. package/server/dist/routes/auth-pages.js.map +0 -1
  272. package/server/dist/routes/client.js.map +0 -1
  273. package/server/dist/routes/graphql.js.map +0 -1
  274. package/server/dist/routes/index.js.map +0 -1
  275. package/server/dist/routes/mcp.js.map +0 -1
  276. package/server/dist/schema/index.js.map +0 -1
  277. package/server/dist/start.js.map +0 -1
  278. package/server/dist/types/index.js.map +0 -1
  279. package/server/dist/types/input.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,113 @@
1
+ <!--
2
+ npm package README for the public ocean-brain CLI.
3
+
4
+ Keep the product overview in the repository README. This file owns the public
5
+ `serve` and `mcp` command interface, including npx auth and storage behavior.
6
+ -->
7
+
8
+ # ocean-brain CLI
9
+
10
+ The npm distribution for [Ocean Brain](https://github.com/baealex/ocean-brain). It provides two commands:
11
+
12
+ - `ocean-brain serve` runs the packaged Ocean Brain web app and server.
13
+ - `ocean-brain mcp` connects an MCP client to a running Ocean Brain instance over stdio.
14
+
15
+ For the product overview and screenshots, see the [Ocean Brain project](https://github.com/baealex/ocean-brain#readme).
16
+
17
+ ## Requirements
18
+
19
+ Use Node.js 22. A global installation is not required; the examples below use `npx`.
20
+
21
+ ## `serve`
22
+
23
+ `serve` is the default command, so `npx ocean-brain` and `npx ocean-brain serve` are equivalent.
24
+
25
+ For a password-protected workspace, set both the shared workspace password and a separate session secret:
26
+
27
+ ```bash
28
+ OCEAN_BRAIN_PASSWORD='choose-a-strong-password' \
29
+ OCEAN_BRAIN_SESSION_SECRET='paste-a-long-random-secret-here' \
30
+ npx -y ocean-brain serve --host 127.0.0.1
31
+ ```
32
+
33
+ Open <http://localhost:6683>. Generate the session secret once—for example with `openssl rand -hex 32`—keep it private, and reuse it across restarts. Startup fails unless password mode or open mode is selected explicitly; do not enable both.
34
+
35
+ One running instance is one shared workspace. Password mode protects the entire instance with one shared password; it does not provide individual accounts, roles, or per-note permissions. If you bind beyond localhost, keep password mode enabled and place Ocean Brain behind HTTPS.
36
+
37
+ ### Local-only open mode
38
+
39
+ Open mode has no login. Use it only on your own machine and keep the loopback binding:
40
+
41
+ ```bash
42
+ npx -y ocean-brain serve \
43
+ --host 127.0.0.1 \
44
+ --allow-insecure-no-auth
45
+ ```
46
+
47
+ ### Options and environment
48
+
49
+ | Setting | Behavior |
50
+ |---|---|
51
+ | `-H, --host <host>` | Bind address; defaults to `0.0.0.0` |
52
+ | `-p, --port <port>` | Listen port; defaults to `6683` |
53
+ | `--allow-insecure-no-auth` | Explicitly enable open mode |
54
+ | `HOST`, `PORT` | Override their corresponding CLI options |
55
+ | `OCEAN_BRAIN_PASSWORD` | Shared password for password mode |
56
+ | `OCEAN_BRAIN_SESSION_SECRET` | Session secret required in password mode |
57
+ | `OCEAN_BRAIN_ALLOW_INSECURE_NO_AUTH=true` | Environment equivalent of the open-mode flag |
58
+ | `OCEAN_BRAIN_DATA_DIR` | Data directory; defaults to `~/.ocean-brain/data` |
59
+ | `OCEAN_BRAIN_IMAGE_DIR` | Uploaded-image directory; defaults to `~/.ocean-brain/assets/images` |
60
+ | `DATABASE_URL` | SQLite file URL; takes precedence over the database path derived from the data directory |
61
+
62
+ By default, notes are stored in `~/.ocean-brain/data/db.sqlite3` and uploaded images in `~/.ocean-brain/assets/images`. The CLI creates the directories and applies bundled database migrations at startup. Stop Ocean Brain and back up both paths together; restore them while the server remains stopped.
63
+
64
+ Deleted notes remain in Trash for 30 days. Note snapshots are retained for up to 7 days, with at most 10 snapshots per note. These recovery tools and individual exports do not replace a full backup.
65
+
66
+ For a long-lived installation, replace `ocean-brain` in the commands with an exact version such as `ocean-brain@X.Y.Z`.
67
+
68
+ ## `mcp`
69
+
70
+ The `mcp` command starts a stdio MCP server that forwards tool calls to an existing Ocean Brain instance. It does not start the web app.
71
+
72
+ The MCP tools can search and read notes, query tags and properties, create notes, make targeted Markdown or metadata edits, and move notes to Trash.
73
+
74
+ First enable MCP access under `Settings > MCP`, issue a token, and save it to a local file. Then configure the MCP client, for example:
75
+
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "ocean-brain": {
80
+ "command": "npx",
81
+ "args": [
82
+ "-y",
83
+ "ocean-brain",
84
+ "mcp",
85
+ "--server",
86
+ "http://localhost:6683",
87
+ "--token-file",
88
+ "/absolute/path/to/ocean-brain-mcp-token.txt"
89
+ ]
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ Set `--server` to the Ocean Brain URL reachable from the machine running the MCP client. Replace `localhost` when the instance is remote or behind a proxy.
96
+
97
+ ### Options
98
+
99
+ | Option | Behavior |
100
+ |---|---|
101
+ | `-s, --server <url>` | Ocean Brain server URL; defaults to `http://localhost:6683` |
102
+ | `--token-file <path>` | Read the bearer token from a file; takes precedence over `--token` |
103
+ | `--token <token>` | Direct bearer-token fallback |
104
+
105
+ Prefer `--token-file` so the token is not stored directly in client configuration. Ocean Brain keeps one active MCP token; rotating or revoking it immediately invalidates the previous token. For a long-lived MCP setup, pin an npm package version compatible with the requirement shown in `Settings > MCP`.
106
+
107
+ ## Links
108
+
109
+ - [Product documentation](https://github.com/baealex/ocean-brain#readme)
110
+ - [Releases](https://github.com/baealex/ocean-brain/releases)
111
+ - [Source code](https://github.com/baealex/ocean-brain)
112
+ - [Issues](https://github.com/baealex/ocean-brain/issues)
113
+ - [MIT License](https://github.com/baealex/ocean-brain/blob/main/LICENSE)