obsidian-accomplishments-mcp 0.1.10 → 0.1.12

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 (269) hide show
  1. package/README.md +156 -184
  2. package/dist/index.js +207 -38
  3. package/dist/index.js.map +1 -1
  4. package/dist/integration.test.d.ts +8 -0
  5. package/dist/integration.test.d.ts.map +1 -0
  6. package/dist/integration.test.js +979 -0
  7. package/dist/integration.test.js.map +1 -0
  8. package/dist/models/types.d.ts +1 -2
  9. package/dist/models/types.d.ts.map +1 -1
  10. package/dist/models/types.js.map +1 -1
  11. package/dist/models/v2-types.d.ts +460 -0
  12. package/dist/models/v2-types.d.ts.map +1 -0
  13. package/dist/models/v2-types.js +137 -0
  14. package/dist/models/v2-types.js.map +1 -0
  15. package/dist/models/v2-types.test.d.ts +5 -0
  16. package/dist/models/v2-types.test.d.ts.map +1 -0
  17. package/dist/models/v2-types.test.js +133 -0
  18. package/dist/models/v2-types.test.js.map +1 -0
  19. package/dist/parsers/canvas-parser.d.ts +1 -1
  20. package/dist/parsers/canvas-parser.d.ts.map +1 -1
  21. package/dist/parsers/canvas-parser.js +1 -1
  22. package/dist/parsers/canvas-parser.js.map +1 -1
  23. package/dist/parsers/markdown-parser.js +9 -9
  24. package/dist/parsers/markdown-parser.js.map +1 -1
  25. package/dist/services/v2/archive-manager.d.ts +96 -0
  26. package/dist/services/v2/archive-manager.d.ts.map +1 -0
  27. package/dist/services/v2/archive-manager.js +281 -0
  28. package/dist/services/v2/archive-manager.js.map +1 -0
  29. package/dist/services/v2/canvas-manager.d.ts +155 -0
  30. package/dist/services/v2/canvas-manager.d.ts.map +1 -0
  31. package/dist/services/v2/canvas-manager.js +540 -0
  32. package/dist/services/v2/canvas-manager.js.map +1 -0
  33. package/dist/services/v2/canvas-manager.test.d.ts +5 -0
  34. package/dist/services/v2/canvas-manager.test.d.ts.map +1 -0
  35. package/dist/services/v2/canvas-manager.test.js +327 -0
  36. package/dist/services/v2/canvas-manager.test.js.map +1 -0
  37. package/dist/services/v2/cascade-manager.d.ts +54 -0
  38. package/dist/services/v2/cascade-manager.d.ts.map +1 -0
  39. package/dist/services/v2/cascade-manager.js +220 -0
  40. package/dist/services/v2/cascade-manager.js.map +1 -0
  41. package/dist/services/v2/cycle-detector.d.ts +76 -0
  42. package/dist/services/v2/cycle-detector.d.ts.map +1 -0
  43. package/dist/services/v2/cycle-detector.js +183 -0
  44. package/dist/services/v2/cycle-detector.js.map +1 -0
  45. package/dist/services/v2/cycle-detector.test.d.ts +7 -0
  46. package/dist/services/v2/cycle-detector.test.d.ts.map +1 -0
  47. package/dist/services/v2/cycle-detector.test.js +125 -0
  48. package/dist/services/v2/cycle-detector.test.js.map +1 -0
  49. package/dist/services/v2/entity-parser.d.ts +54 -0
  50. package/dist/services/v2/entity-parser.d.ts.map +1 -0
  51. package/dist/services/v2/entity-parser.js +418 -0
  52. package/dist/services/v2/entity-parser.js.map +1 -0
  53. package/dist/services/v2/entity-parser.test.d.ts +5 -0
  54. package/dist/services/v2/entity-parser.test.d.ts.map +1 -0
  55. package/dist/services/v2/entity-parser.test.js +637 -0
  56. package/dist/services/v2/entity-parser.test.js.map +1 -0
  57. package/dist/services/v2/entity-serializer.d.ts +94 -0
  58. package/dist/services/v2/entity-serializer.d.ts.map +1 -0
  59. package/dist/services/v2/entity-serializer.js +583 -0
  60. package/dist/services/v2/entity-serializer.js.map +1 -0
  61. package/dist/services/v2/entity-serializer.test.d.ts +5 -0
  62. package/dist/services/v2/entity-serializer.test.d.ts.map +1 -0
  63. package/dist/services/v2/entity-serializer.test.js +241 -0
  64. package/dist/services/v2/entity-serializer.test.js.map +1 -0
  65. package/dist/services/v2/entity-validator.d.ts +65 -0
  66. package/dist/services/v2/entity-validator.d.ts.map +1 -0
  67. package/dist/services/v2/entity-validator.js +573 -0
  68. package/dist/services/v2/entity-validator.js.map +1 -0
  69. package/dist/services/v2/entity-validator.test.d.ts +5 -0
  70. package/dist/services/v2/entity-validator.test.d.ts.map +1 -0
  71. package/dist/services/v2/entity-validator.test.js +519 -0
  72. package/dist/services/v2/entity-validator.test.js.map +1 -0
  73. package/dist/services/v2/file-manager.d.ts +73 -0
  74. package/dist/services/v2/file-manager.d.ts.map +1 -0
  75. package/dist/services/v2/file-manager.js +310 -0
  76. package/dist/services/v2/file-manager.js.map +1 -0
  77. package/dist/services/v2/file-manager.test.d.ts +5 -0
  78. package/dist/services/v2/file-manager.test.d.ts.map +1 -0
  79. package/dist/services/v2/file-manager.test.js +339 -0
  80. package/dist/services/v2/file-manager.test.js.map +1 -0
  81. package/dist/services/v2/index-manager.d.ts +68 -0
  82. package/dist/services/v2/index-manager.d.ts.map +1 -0
  83. package/dist/services/v2/index-manager.js +228 -0
  84. package/dist/services/v2/index-manager.js.map +1 -0
  85. package/dist/services/v2/index-manager.test.d.ts +5 -0
  86. package/dist/services/v2/index-manager.test.d.ts.map +1 -0
  87. package/dist/services/v2/index-manager.test.js +386 -0
  88. package/dist/services/v2/index-manager.test.js.map +1 -0
  89. package/dist/services/v2/index-service.d.ts +82 -0
  90. package/dist/services/v2/index-service.d.ts.map +1 -0
  91. package/dist/services/v2/index-service.js +274 -0
  92. package/dist/services/v2/index-service.js.map +1 -0
  93. package/dist/services/v2/index-service.test.d.ts +5 -0
  94. package/dist/services/v2/index-service.test.d.ts.map +1 -0
  95. package/dist/services/v2/index-service.test.js +117 -0
  96. package/dist/services/v2/index-service.test.js.map +1 -0
  97. package/dist/services/v2/lifecycle-manager.d.ts +59 -0
  98. package/dist/services/v2/lifecycle-manager.d.ts.map +1 -0
  99. package/dist/services/v2/lifecycle-manager.js +310 -0
  100. package/dist/services/v2/lifecycle-manager.js.map +1 -0
  101. package/dist/services/v2/lifecycle-manager.test.d.ts +5 -0
  102. package/dist/services/v2/lifecycle-manager.test.d.ts.map +1 -0
  103. package/dist/services/v2/lifecycle-manager.test.js +141 -0
  104. package/dist/services/v2/lifecycle-manager.test.js.map +1 -0
  105. package/dist/services/v2/path-resolver.d.ts +64 -0
  106. package/dist/services/v2/path-resolver.d.ts.map +1 -0
  107. package/dist/services/v2/path-resolver.js +174 -0
  108. package/dist/services/v2/path-resolver.js.map +1 -0
  109. package/dist/services/v2/progress-computer.d.ts +46 -0
  110. package/dist/services/v2/progress-computer.d.ts.map +1 -0
  111. package/dist/services/v2/progress-computer.js +200 -0
  112. package/dist/services/v2/progress-computer.js.map +1 -0
  113. package/dist/services/v2/search-service.d.ts +68 -0
  114. package/dist/services/v2/search-service.d.ts.map +1 -0
  115. package/dist/services/v2/search-service.js +194 -0
  116. package/dist/services/v2/search-service.js.map +1 -0
  117. package/dist/services/v2/transitive-dependency-remover.d.ts +54 -0
  118. package/dist/services/v2/transitive-dependency-remover.d.ts.map +1 -0
  119. package/dist/services/v2/transitive-dependency-remover.js +156 -0
  120. package/dist/services/v2/transitive-dependency-remover.js.map +1 -0
  121. package/dist/services/v2/transitive-dependency-remover.test.d.ts +7 -0
  122. package/dist/services/v2/transitive-dependency-remover.test.d.ts.map +1 -0
  123. package/dist/services/v2/transitive-dependency-remover.test.js +119 -0
  124. package/dist/services/v2/transitive-dependency-remover.test.js.map +1 -0
  125. package/dist/services/v2/v2-runtime.d.ts +374 -0
  126. package/dist/services/v2/v2-runtime.d.ts.map +1 -0
  127. package/dist/services/v2/v2-runtime.js +1908 -0
  128. package/dist/services/v2/v2-runtime.js.map +1 -0
  129. package/dist/services/v2/v2-runtime.test.d.ts +5 -0
  130. package/dist/services/v2/v2-runtime.test.d.ts.map +1 -0
  131. package/dist/services/v2/v2-runtime.test.js +658 -0
  132. package/dist/services/v2/v2-runtime.test.js.map +1 -0
  133. package/dist/services/v2/workstream-normalizer.d.ts +59 -0
  134. package/dist/services/v2/workstream-normalizer.d.ts.map +1 -0
  135. package/dist/services/v2/workstream-normalizer.js +137 -0
  136. package/dist/services/v2/workstream-normalizer.js.map +1 -0
  137. package/dist/services/v2/workstream-normalizer.test.d.ts +7 -0
  138. package/dist/services/v2/workstream-normalizer.test.d.ts.map +1 -0
  139. package/dist/services/v2/workstream-normalizer.test.js +130 -0
  140. package/dist/services/v2/workstream-normalizer.test.js.map +1 -0
  141. package/dist/test-runner.d.ts +4 -1
  142. package/dist/test-runner.d.ts.map +1 -1
  143. package/dist/test-runner.js +44 -249
  144. package/dist/test-runner.js.map +1 -1
  145. package/dist/tools/batch-operations-tools.d.ts +54 -0
  146. package/dist/tools/batch-operations-tools.d.ts.map +1 -0
  147. package/dist/tools/batch-operations-tools.js +370 -0
  148. package/dist/tools/batch-operations-tools.js.map +1 -0
  149. package/dist/tools/decision-document-tools.d.ts +78 -0
  150. package/dist/tools/decision-document-tools.d.ts.map +1 -0
  151. package/dist/tools/decision-document-tools.js +260 -0
  152. package/dist/tools/decision-document-tools.js.map +1 -0
  153. package/dist/tools/entity-management-tools.d.ts +79 -0
  154. package/dist/tools/entity-management-tools.d.ts.map +1 -0
  155. package/dist/tools/entity-management-tools.js +851 -0
  156. package/dist/tools/entity-management-tools.js.map +1 -0
  157. package/dist/tools/entity-management-tools.test.d.ts +5 -0
  158. package/dist/tools/entity-management-tools.test.d.ts.map +1 -0
  159. package/dist/tools/entity-management-tools.test.js +530 -0
  160. package/dist/tools/entity-management-tools.test.js.map +1 -0
  161. package/dist/tools/index.d.ts +15 -331
  162. package/dist/tools/index.d.ts.map +1 -1
  163. package/dist/tools/index.js +510 -47
  164. package/dist/tools/index.js.map +1 -1
  165. package/dist/tools/index.test.d.ts +8 -0
  166. package/dist/tools/index.test.d.ts.map +1 -0
  167. package/dist/tools/index.test.js +429 -0
  168. package/dist/tools/index.test.js.map +1 -0
  169. package/dist/tools/project-understanding-tools.d.ts +75 -0
  170. package/dist/tools/project-understanding-tools.d.ts.map +1 -0
  171. package/dist/tools/project-understanding-tools.js +751 -0
  172. package/dist/tools/project-understanding-tools.js.map +1 -0
  173. package/dist/tools/search-navigation-tools.d.ts +77 -0
  174. package/dist/tools/search-navigation-tools.d.ts.map +1 -0
  175. package/dist/tools/search-navigation-tools.js +379 -0
  176. package/dist/tools/search-navigation-tools.js.map +1 -0
  177. package/dist/tools/tool-types.d.ts +703 -0
  178. package/dist/tools/tool-types.d.ts.map +1 -0
  179. package/dist/tools/tool-types.js +7 -0
  180. package/dist/tools/tool-types.js.map +1 -0
  181. package/dist/utils/config.d.ts +0 -4
  182. package/dist/utils/config.d.ts.map +1 -1
  183. package/dist/utils/config.js +2 -19
  184. package/dist/utils/config.js.map +1 -1
  185. package/package.json +16 -1
  186. package/dist/services/accomplishment-service.d.ts +0 -33
  187. package/dist/services/accomplishment-service.d.ts.map +0 -1
  188. package/dist/services/accomplishment-service.js +0 -296
  189. package/dist/services/accomplishment-service.js.map +0 -1
  190. package/dist/services/canvas-service.d.ts +0 -96
  191. package/dist/services/canvas-service.d.ts.map +0 -1
  192. package/dist/services/canvas-service.js +0 -231
  193. package/dist/services/canvas-service.js.map +0 -1
  194. package/dist/services/context-doc-service.d.ts +0 -70
  195. package/dist/services/context-doc-service.d.ts.map +0 -1
  196. package/dist/services/context-doc-service.js +0 -229
  197. package/dist/services/context-doc-service.js.map +0 -1
  198. package/dist/services/dependency-service.d.ts +0 -22
  199. package/dist/services/dependency-service.d.ts.map +0 -1
  200. package/dist/services/dependency-service.js +0 -99
  201. package/dist/services/dependency-service.js.map +0 -1
  202. package/dist/services/status-indicator-service.d.ts +0 -40
  203. package/dist/services/status-indicator-service.d.ts.map +0 -1
  204. package/dist/services/status-indicator-service.js +0 -173
  205. package/dist/services/status-indicator-service.js.map +0 -1
  206. package/dist/services/task-service.d.ts +0 -32
  207. package/dist/services/task-service.d.ts.map +0 -1
  208. package/dist/services/task-service.js +0 -152
  209. package/dist/services/task-service.js.map +0 -1
  210. package/dist/test-real-vault.d.ts +0 -6
  211. package/dist/test-real-vault.d.ts.map +0 -1
  212. package/dist/test-real-vault.js +0 -30
  213. package/dist/test-real-vault.js.map +0 -1
  214. package/dist/tools/batch-operations.d.ts +0 -246
  215. package/dist/tools/batch-operations.d.ts.map +0 -1
  216. package/dist/tools/batch-operations.js +0 -235
  217. package/dist/tools/batch-operations.js.map +0 -1
  218. package/dist/tools/get-accomplishment.d.ts +0 -42
  219. package/dist/tools/get-accomplishment.d.ts.map +0 -1
  220. package/dist/tools/get-accomplishment.js +0 -93
  221. package/dist/tools/get-accomplishment.js.map +0 -1
  222. package/dist/tools/get-accomplishments-graph.d.ts +0 -26
  223. package/dist/tools/get-accomplishments-graph.d.ts.map +0 -1
  224. package/dist/tools/get-accomplishments-graph.js +0 -137
  225. package/dist/tools/get-accomplishments-graph.js.map +0 -1
  226. package/dist/tools/get-blocked-items.d.ts +0 -15
  227. package/dist/tools/get-blocked-items.d.ts.map +0 -1
  228. package/dist/tools/get-blocked-items.js +0 -73
  229. package/dist/tools/get-blocked-items.js.map +0 -1
  230. package/dist/tools/get-current-work.d.ts +0 -15
  231. package/dist/tools/get-current-work.d.ts.map +0 -1
  232. package/dist/tools/get-current-work.js +0 -68
  233. package/dist/tools/get-current-work.js.map +0 -1
  234. package/dist/tools/get-project-status.d.ts +0 -26
  235. package/dist/tools/get-project-status.d.ts.map +0 -1
  236. package/dist/tools/get-project-status.js +0 -98
  237. package/dist/tools/get-project-status.js.map +0 -1
  238. package/dist/tools/get-ready-to-start.d.ts +0 -15
  239. package/dist/tools/get-ready-to-start.d.ts.map +0 -1
  240. package/dist/tools/get-ready-to-start.js +0 -47
  241. package/dist/tools/get-ready-to-start.js.map +0 -1
  242. package/dist/tools/list-accomplishments.d.ts +0 -42
  243. package/dist/tools/list-accomplishments.d.ts.map +0 -1
  244. package/dist/tools/list-accomplishments.js +0 -40
  245. package/dist/tools/list-accomplishments.js.map +0 -1
  246. package/dist/tools/manage-accomplishment.d.ts +0 -147
  247. package/dist/tools/manage-accomplishment.d.ts.map +0 -1
  248. package/dist/tools/manage-accomplishment.js +0 -153
  249. package/dist/tools/manage-accomplishment.js.map +0 -1
  250. package/dist/tools/manage-dependency.d.ts +0 -41
  251. package/dist/tools/manage-dependency.d.ts.map +0 -1
  252. package/dist/tools/manage-dependency.js +0 -66
  253. package/dist/tools/manage-dependency.js.map +0 -1
  254. package/dist/tools/manage-task.d.ts +0 -119
  255. package/dist/tools/manage-task.d.ts.map +0 -1
  256. package/dist/tools/manage-task.js +0 -126
  257. package/dist/tools/manage-task.js.map +0 -1
  258. package/dist/tools/reconcile-canvas.d.ts +0 -33
  259. package/dist/tools/reconcile-canvas.d.ts.map +0 -1
  260. package/dist/tools/reconcile-canvas.js +0 -41
  261. package/dist/tools/reconcile-canvas.js.map +0 -1
  262. package/dist/tools/set-work-focus.d.ts +0 -48
  263. package/dist/tools/set-work-focus.d.ts.map +0 -1
  264. package/dist/tools/set-work-focus.js +0 -78
  265. package/dist/tools/set-work-focus.js.map +0 -1
  266. package/dist/tools/sync-dependencies.d.ts +0 -33
  267. package/dist/tools/sync-dependencies.d.ts.map +0 -1
  268. package/dist/tools/sync-dependencies.js +0 -144
  269. package/dist/tools/sync-dependencies.js.map +0 -1
package/README.md CHANGED
@@ -1,29 +1,25 @@
1
- # Obsidian MCP Server
1
+ # Obsidian Project Management MCP Server
2
2
 
3
- An MCP (Model Context Protocol) server that enables AI assistants to manage structured project accomplishments in Obsidian. Works alongside the [Canvas Structured Items Plugin](https://bitbucket.org/ostanmarc/obsidian-canvas-structured-items/src/master/) for visual project management.
3
+ An MCP (Model Context Protocol) server for AI-native project management in Obsidian. Enables AI assistants to create, update, search, and manage project entities stored as markdown files with automatic relationship tracking.
4
4
 
5
5
  ## What This Does
6
6
 
7
7
  This MCP server lets AI assistants:
8
- - **Manage accomplishments** — create, update, and track work items with outcomes, acceptance criteria, and tasks
9
- - **Handle dependencies** — define what blocks what, find blocked items, and identify what's ready to start
10
- - **Track progress** — see project status, current work, and completion statistics
11
- - **Read and write documents** — access reference materials organized in workspaces
8
+ - **Manage project entities** — create, update, and track milestones, stories, tasks, decisions, documents, and features
9
+ - **Handle dependencies** — define relationships between entities with automatic bidirectional sync
10
+ - **Track progress** — see project status, workstream health, and feature coverage
11
+ - **Navigate hierarchies** — traverse parent-child relationships and dependency graphs
12
+ - **Batch operations** — efficient bulk create/update/archive with dry-run preview
12
13
 
13
14
  ```
14
15
  ┌─────────────────────────────────────────────────────────────────────┐
15
16
  │ Your Workflow │
16
17
  ├─────────────────────────────────────────────────────────────────────┤
17
18
  │ │
18
- │ ┌──────────┐ ┌──────────────┐ ┌──────────┐
19
- │ │ Obsidian │◄────►│ MCP Server │◄────►│ AI │
20
- │ │ Canvas │ │ (this repo) │ │ Assistant│
21
- └────┬─────┘ └──────────────┘ └──────────┘
22
- │ │ │
23
- │ ▼ │
24
- │ ┌──────────┐ ┌──────────────┐ │
25
- │ │ Plugin │─────►│ Notion │ (optional sync) │
26
- │ └──────────┘ └──────────────┘ │
19
+ │ ┌──────────┐ ┌──────────────┐ ┌──────────┐
20
+ │ │ Obsidian │◄────►│ MCP Server │◄────►│ AI │
21
+ │ │ Vault │ │ (this repo) │ │ Assistant│
22
+ └──────────┘ └──────────────┘ └──────────┘
27
23
  │ │
28
24
  └─────────────────────────────────────────────────────────────────────┘
29
25
  ```
@@ -36,24 +32,11 @@ This MCP server lets AI assistants:
36
32
 
37
33
  - Node.js 18 or later
38
34
  - An Obsidian vault
39
- - The [Canvas Structured Items Plugin](https://bitbucket.org/ostanmarc/obsidian-canvas-structured-items/src/master/) installed in your vault
40
35
 
41
- ### Option 1: Install from npm (Recommended)
36
+ ### Install from Source
42
37
 
43
38
  ```bash
44
- npm install -g obsidian-accomplishments-mcp
45
- ```
46
-
47
- Or run directly with npx:
48
-
49
- ```bash
50
- npx obsidian-accomplishments-mcp
51
- ```
52
-
53
- ### Option 2: Install from Source
54
-
55
- ```bash
56
- git clone https://github.com/ostanlabs/obsidian_mcp.git
39
+ git clone <repository-url>
57
40
  cd obsidian_mcp
58
41
  npm install
59
42
  npm run build
@@ -65,7 +48,17 @@ Create the required folder structure in your Obsidian vault:
65
48
 
66
49
  ```
67
50
  your-vault/
68
- ├── accomplishments/ # Accomplishment markdown files
51
+ ├── milestones/ # Milestone files (M-xxx.md)
52
+ ├── stories/ # Story files (S-xxx.md)
53
+ ├── tasks/ # Task files (T-xxx.md)
54
+ ├── decisions/ # Decision files (DEC-xxx.md)
55
+ ├── documents/ # Document files (DOC-xxx.md)
56
+ ├── features/ # Feature files (F-xxx.md)
57
+ ├── archive/ # Archived entities (by type)
58
+ │ ├── milestone/
59
+ │ ├── story/
60
+ │ ├── task/
61
+ │ └── ...
69
62
  ├── projects/
70
63
  │ └── main.canvas # Your project canvas
71
64
  └── workspaces.json # Workspace configuration (auto-created on first run)
@@ -77,40 +70,6 @@ Add the MCP server to your AI client's configuration.
77
70
 
78
71
  **For Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
79
72
 
80
- Using npx (recommended):
81
- ```json
82
- {
83
- "mcpServers": {
84
- "obsidian": {
85
- "command": "npx",
86
- "args": ["-y", "obsidian-accomplishments-mcp@latest"],
87
- "env": {
88
- "VAULT_PATH": "/absolute/path/to/your/obsidian/vault",
89
- "ACCOMPLISHMENTS_FOLDER": "accomplishments",
90
- "DEFAULT_CANVAS": "projects/main.canvas"
91
- }
92
- }
93
- }
94
- }
95
- ```
96
-
97
- Using global install:
98
- ```json
99
- {
100
- "mcpServers": {
101
- "obsidian": {
102
- "command": "obsidian-accomplishments-mcp",
103
- "env": {
104
- "VAULT_PATH": "/absolute/path/to/your/obsidian/vault",
105
- "ACCOMPLISHMENTS_FOLDER": "accomplishments",
106
- "DEFAULT_CANVAS": "projects/main.canvas"
107
- }
108
- }
109
- }
110
- }
111
- ```
112
-
113
- Using local install:
114
73
  ```json
115
74
  {
116
75
  "mcpServers": {
@@ -119,7 +78,6 @@ Using local install:
119
78
  "args": ["/path/to/obsidian_mcp/dist/index.js"],
120
79
  "env": {
121
80
  "VAULT_PATH": "/absolute/path/to/your/obsidian/vault",
122
- "ACCOMPLISHMENTS_FOLDER": "accomplishments",
123
81
  "DEFAULT_CANVAS": "projects/main.canvas"
124
82
  }
125
83
  }
@@ -132,8 +90,7 @@ Using local install:
132
90
  | Variable | Required | Description |
133
91
  |----------|----------|-------------|
134
92
  | `VAULT_PATH` | Yes | Absolute path to your Obsidian vault |
135
- | `ACCOMPLISHMENTS_FOLDER` | Yes | Folder for accomplishment files (relative to vault) |
136
- | `DEFAULT_CANVAS` | Yes | Path to your main project canvas file (relative to vault) |
93
+ | `DEFAULT_CANVAS` | No | Path to your main project canvas file (relative to vault) |
137
94
 
138
95
  ### Configure Workspaces
139
96
 
@@ -152,116 +109,117 @@ On first run, the server creates a `workspaces.json` file in your vault. Edit th
152
109
  }
153
110
  ```
154
111
 
155
- Each workspace is a named folder containing markdown files that the AI can read and write.
156
-
157
112
  ---
158
113
 
159
114
  ## Core Concepts
160
115
 
161
- ### Accomplishments
162
-
163
- An **accomplishment** is the atomic unit of work. Each accomplishment has:
164
-
165
- - **Title** — A clear name for the work item
166
- - **Outcome** — What will be true when this is done
167
- - **Acceptance Criteria** — Checkboxes defining completion
168
- - **Tasks** — Specific steps to achieve the outcome
169
- - **Dependencies** — Other accomplishments that must finish first
170
- - **Status** — Not Started, In Progress, Completed, or Blocked
171
- - **Effort Type** — Business, Engineering, Infra, or Research
172
- - **Priority** — Low, Medium, High, or Critical
116
+ ### Entity Hierarchy
173
117
 
174
- Example accomplishment file:
118
+ The system uses a hierarchical entity model:
175
119
 
176
- ```markdown
177
- ---
178
- type: accomplishment
179
- title: User Authentication
180
- id: ACC-001
181
- effort: Engineering
182
- status: In Progress
183
- priority: High
184
- inProgress: true
185
- depends_on: ["ACC-000"]
186
- ---
187
-
188
- # User Authentication (Accomplishment)
189
-
190
- ## Outcome
191
- Users can securely log in and maintain sessions.
192
-
193
- ## Acceptance Criteria
194
- - [ ] Login form validates credentials
195
- - [ ] Sessions persist across browser refreshes
196
- - [ ] Logout clears session completely
197
-
198
- ## Tasks
199
-
200
- ### Task 1: Design Auth Flow
201
- - **Goal:** Document the authentication sequence
202
- - **Estimate:** 2h
203
- - **Status:** Complete
120
+ ```
121
+ Milestone (M-xxx)
122
+ └── Story (S-xxx)
123
+ └── Task (T-xxx)
204
124
 
205
- ### Task 2: Implement Login API
206
- - **Goal:** Create backend authentication endpoint
207
- - **Estimate:** 4h
208
- - **Status:** InProgress
125
+ Feature (F-xxx) ─── product features with coverage tracking
126
+ Decision (DEC-xxx) ─── captured choices, can affect other entities
127
+ Document (DOC-xxx) ─── specs/ADRs, can be implemented by stories
209
128
  ```
210
129
 
211
- ### Canvas as Project Board
130
+ ### Entity Types
131
+
132
+ | Type | ID Format | Key Fields |
133
+ |------|-----------|------------|
134
+ | **Milestone** | `M-001` | `target_date`, `owner`, `priority` |
135
+ | **Story** | `S-001` | `parent` (milestone), `priority`, `acceptance_criteria` |
136
+ | **Task** | `T-001` | `parent` (story), `estimate_hrs`, `assignee` |
137
+ | **Decision** | `DEC-001` | `decided_by`, `decided_on`, `affects`, `supersedes` |
138
+ | **Document** | `DOC-001` | `doc_type`, `version`, `implemented_by` |
139
+ | **Feature** | `F-001` | `tier`, `phase`, `documented_by`, `implemented_by` |
140
+
141
+ ### Entity Status
142
+
143
+ | Entity | Statuses |
144
+ |--------|----------|
145
+ | Milestone, Story | `Not Started`, `In Progress`, `Completed`, `Blocked` |
146
+ | Task | `Open`, `InProgress`, `Complete`, `OnHold` |
147
+ | Decision | `Pending`, `Decided`, `Superseded` |
148
+ | Document | `Draft`, `Review`, `Approved`, `Superseded` |
149
+ | Feature | `Planned`, `In Progress`, `Complete`, `Deferred` |
150
+
151
+ ### Relationships (Auto-Synced)
152
+
153
+ All relationships are bidirectional and automatically synchronized:
154
+
155
+ | Relationship | Forward Field | Reverse Field |
156
+ |--------------|---------------|---------------|
157
+ | Hierarchy | `parent` | `children` |
158
+ | Dependency | `depends_on` | `blocks` |
159
+ | Implementation | `implements` | `implemented_by` |
160
+ | Supersession | `supersedes` | `superseded_by` |
161
+ | Documentation | `documents` | `documented_by` |
162
+
163
+ ### Workstreams
164
+
165
+ Entities are organized by workstream. Values are automatically normalized:
166
+ - `infrastructure`, `infra` → `infra`
167
+ - `eng`, `engineering` → `engineering`
168
+ - `biz`, `business` → `business`
169
+ - `ops`, `operations` → `operations`
170
+ - `r&d`, `rnd`, `research` → `research`
171
+ - `ux`, `ui`, `design` → `design`
172
+ - `mktg`, `marketing` → `marketing`
212
173
 
213
- The `.canvas` file provides a visual project view:
174
+ ---
214
175
 
215
- - **Nodes** = Accomplishments (colored by effort type)
216
- - **Arrows** = Dependencies (A → B means "B depends on A")
217
- - **Position** = Workflow stage (left-to-right progression)
218
- - **Red border** = Currently being worked on (`inProgress: true`)
176
+ ## Available Tools
219
177
 
220
- ### Workspaces
178
+ The MCP server provides 15 tools organized by function:
221
179
 
222
- Workspaces are named document collections that the AI can access. Configure them in `workspaces.json` to give the AI access to:
223
- - Project documentation
224
- - Meeting notes
225
- - Reference materials
226
- - Any other markdown files
180
+ ### Entity Management
227
181
 
228
- ---
182
+ | Tool | Description |
183
+ |------|-------------|
184
+ | `create_entity` | Create a new entity (milestone, story, task, decision, document, or feature) |
185
+ | `update_entity` | Update fields, status, relationships, or archive/restore. Returns before/after diff. |
229
186
 
230
- ## Available Tools
187
+ ### Batch Operations
231
188
 
232
- The MCP server provides 14 tools organized by function:
189
+ | Tool | Description |
190
+ |------|-------------|
191
+ | `batch_update` | Bulk create/update/archive with `dry_run` preview and `include_entities` option |
233
192
 
234
- ### Accomplishment Management
193
+ ### Project Understanding
235
194
 
236
195
  | Tool | Description |
237
196
  |------|-------------|
238
- | `manage_accomplishment` | Create, update, or delete accomplishments |
239
- | `get_accomplishment` | Get full details of a specific accomplishment |
240
- | `list_accomplishments` | List all accomplishments with optional status filter |
197
+ | `get_project_overview` | High-level project status with workstream filtering |
198
+ | `analyze_project_state` | Deep analysis with blockers and recommendations |
199
+ | `get_feature_coverage` | Feature implementation/documentation coverage with `summary_only` option |
241
200
 
242
- ### Task Management
201
+ ### Search & Navigation
243
202
 
244
203
  | Tool | Description |
245
204
  |------|-------------|
246
- | `manage_task` | Add, update, or remove tasks within an accomplishment |
247
- | `set_work_focus` | Set which accomplishment/task is currently being worked on |
205
+ | `search_entities` | Full-text search, list with filters, or navigate hierarchy |
206
+ | `get_entity` | Get single entity with selective field retrieval |
207
+ | `get_entities` | Bulk fetch multiple entities (~75% token savings) |
248
208
 
249
- ### Dependency Management
209
+ ### Document Management
250
210
 
251
211
  | Tool | Description |
252
212
  |------|-------------|
253
- | `manage_dependency` | Add or remove dependencies between accomplishments |
213
+ | `manage_documents` | Decision history, versioning, freshness checks |
254
214
 
255
- ### Project Status
215
+ ### Maintenance
256
216
 
257
217
  | Tool | Description |
258
218
  |------|-------------|
259
- | `get_project_status` | Get project statistics and overview |
260
- | `get_current_work` | Get items marked as in-progress |
261
- | `get_blocked_items` | Get items waiting on incomplete dependencies |
262
- | `get_ready_to_start` | Get items with all dependencies complete |
219
+ | `reconcile_relationships` | Fix inconsistent bidirectional relationships |
220
+ | `get_schema` | Get entity schema information |
263
221
 
264
- ### Document Management
222
+ ### Utility Tools
265
223
 
266
224
  | Tool | Description |
267
225
  |------|-------------|
@@ -278,72 +236,86 @@ Once configured, ask your AI assistant things like:
278
236
 
279
237
  ### Project Overview
280
238
  > "What's the status of my project?"
281
- > "Show me what's currently in progress"
239
+ > "Show me the engineering workstream status"
282
240
  > "What items are blocked?"
283
- > "What can I start working on?"
241
+ > "Analyze the project and identify risks"
284
242
 
285
- ### Managing Accomplishments
286
- > "Create an accomplishment for building the payment system"
287
- > "Mark ACC-001 as complete"
288
- > "Set ACC-005 as my current focus"
289
- > "What are the details of ACC-003?"
290
-
291
- ### Managing Tasks
292
- > "Add a task to ACC-003 for writing unit tests"
293
- > "Mark task 2 of ACC-001 as complete"
294
- > "What tasks are left on ACC-002?"
243
+ ### Managing Entities
244
+ > "Create a milestone for Q1 launch with target date March 31"
245
+ > "Create a story under M-001 for user authentication"
246
+ > "Add a task to S-003 for writing unit tests"
247
+ > "Mark T-005 as completed"
295
248
 
296
249
  ### Dependencies
297
- > "ACC-004 depends on ACC-002 and ACC-003"
298
- > "Remove the dependency from ACC-005 to ACC-001"
299
- > "What's blocking ACC-006?"
250
+ > "S-004 depends on S-002 and S-003"
251
+ > "What's blocking S-006?"
252
+ > "Show me the dependency graph for M-001"
253
+
254
+ ### Decisions & Documents
255
+ > "Create a decision about using PostgreSQL vs MongoDB"
256
+ > "What decisions have been made about authentication?"
257
+ > "Create a spec document for the API design"
258
+ > "Is DOC-003 up to date with recent decisions?"
259
+
260
+ ### Features
261
+ > "What's the feature coverage for Phase 2?"
262
+ > "Which features are missing documentation?"
263
+ > "Show me F-001's implementation status"
300
264
 
301
265
  ### Documents
302
266
  > "What workspaces are available?"
303
267
  > "List files in the docs workspace"
304
268
  > "Read the architecture document"
305
- > "Add a section about API design to the architecture doc"
306
- > "Create a new meeting notes document"
307
-
308
- ---
309
-
310
- ## Notion Sync (Optional)
311
-
312
- The [Canvas Structured Items Plugin](https://bitbucket.org/ostanmarc/obsidian-canvas-structured-items/src/master/) can sync accomplishments to Notion:
313
-
314
- 1. Configure Notion API key and database ID in the plugin settings
315
- 2. Accomplishments sync automatically when saved
316
- 3. Dependencies become Notion relations
317
- 4. Two-way sync keeps both systems updated
318
-
319
- This lets your team see project status in Notion while you manage everything from Obsidian.
320
269
 
321
270
  ---
322
271
 
323
272
  ## Development
324
273
 
325
274
  ```bash
275
+ # Install dependencies
276
+ npm install
277
+
326
278
  # Build the project
327
279
  npm run build
328
280
 
329
- # Watch mode for development
330
- npm run dev
331
-
332
281
  # Run tests
333
282
  npm test
334
- ```
335
283
 
336
- The server communicates via MCP protocol over stdio. Test by configuring it in an MCP-compatible client.
284
+ # Run tests in watch mode
285
+ npm run test:watch
337
286
 
338
- ---
287
+ # Type check
288
+ npm run typecheck
289
+ ```
339
290
 
340
- ## Technical Reference
291
+ ### Project Structure
341
292
 
342
- For detailed API specifications, data models, and implementation details, see [Technical Specification](docs/MCP_TECHNICAL_SPEC.md).
293
+ ```
294
+ src/
295
+ ├── index.ts # MCP server entry point
296
+ ├── models/
297
+ │ └── v2-types.ts # Entity type definitions
298
+ ├── services/v2/
299
+ │ ├── entity-parser.ts # Parse markdown to entities
300
+ │ ├── entity-serializer.ts # Serialize entities to markdown
301
+ │ ├── entity-validator.ts # Validate entity data
302
+ │ ├── index-manager.ts # Entity indexing
303
+ │ ├── lifecycle-manager.ts # Status transitions
304
+ │ ├── archive-manager.ts # Archive/restore
305
+ │ ├── workstream-normalizer.ts # Workstream normalization
306
+ │ ├── cycle-detector.ts # Dependency cycle detection
307
+ │ └── v2-runtime.ts # Main runtime
308
+ └── tools/
309
+ ├── index.ts # Tool definitions
310
+ ├── entity-management-tools.ts
311
+ ├── batch-operations-tools.ts
312
+ ├── project-understanding-tools.ts
313
+ ├── search-navigation-tools.ts
314
+ └── decision-document-tools.ts
315
+ ```
343
316
 
344
317
  ---
345
318
 
346
319
  ## License
347
320
 
348
321
  MIT
349
-