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.
- package/README.md +156 -184
- package/dist/index.js +207 -38
- package/dist/index.js.map +1 -1
- package/dist/integration.test.d.ts +8 -0
- package/dist/integration.test.d.ts.map +1 -0
- package/dist/integration.test.js +979 -0
- package/dist/integration.test.js.map +1 -0
- package/dist/models/types.d.ts +1 -2
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/models/v2-types.d.ts +460 -0
- package/dist/models/v2-types.d.ts.map +1 -0
- package/dist/models/v2-types.js +137 -0
- package/dist/models/v2-types.js.map +1 -0
- package/dist/models/v2-types.test.d.ts +5 -0
- package/dist/models/v2-types.test.d.ts.map +1 -0
- package/dist/models/v2-types.test.js +133 -0
- package/dist/models/v2-types.test.js.map +1 -0
- package/dist/parsers/canvas-parser.d.ts +1 -1
- package/dist/parsers/canvas-parser.d.ts.map +1 -1
- package/dist/parsers/canvas-parser.js +1 -1
- package/dist/parsers/canvas-parser.js.map +1 -1
- package/dist/parsers/markdown-parser.js +9 -9
- package/dist/parsers/markdown-parser.js.map +1 -1
- package/dist/services/v2/archive-manager.d.ts +96 -0
- package/dist/services/v2/archive-manager.d.ts.map +1 -0
- package/dist/services/v2/archive-manager.js +281 -0
- package/dist/services/v2/archive-manager.js.map +1 -0
- package/dist/services/v2/canvas-manager.d.ts +155 -0
- package/dist/services/v2/canvas-manager.d.ts.map +1 -0
- package/dist/services/v2/canvas-manager.js +540 -0
- package/dist/services/v2/canvas-manager.js.map +1 -0
- package/dist/services/v2/canvas-manager.test.d.ts +5 -0
- package/dist/services/v2/canvas-manager.test.d.ts.map +1 -0
- package/dist/services/v2/canvas-manager.test.js +327 -0
- package/dist/services/v2/canvas-manager.test.js.map +1 -0
- package/dist/services/v2/cascade-manager.d.ts +54 -0
- package/dist/services/v2/cascade-manager.d.ts.map +1 -0
- package/dist/services/v2/cascade-manager.js +220 -0
- package/dist/services/v2/cascade-manager.js.map +1 -0
- package/dist/services/v2/cycle-detector.d.ts +76 -0
- package/dist/services/v2/cycle-detector.d.ts.map +1 -0
- package/dist/services/v2/cycle-detector.js +183 -0
- package/dist/services/v2/cycle-detector.js.map +1 -0
- package/dist/services/v2/cycle-detector.test.d.ts +7 -0
- package/dist/services/v2/cycle-detector.test.d.ts.map +1 -0
- package/dist/services/v2/cycle-detector.test.js +125 -0
- package/dist/services/v2/cycle-detector.test.js.map +1 -0
- package/dist/services/v2/entity-parser.d.ts +54 -0
- package/dist/services/v2/entity-parser.d.ts.map +1 -0
- package/dist/services/v2/entity-parser.js +418 -0
- package/dist/services/v2/entity-parser.js.map +1 -0
- package/dist/services/v2/entity-parser.test.d.ts +5 -0
- package/dist/services/v2/entity-parser.test.d.ts.map +1 -0
- package/dist/services/v2/entity-parser.test.js +637 -0
- package/dist/services/v2/entity-parser.test.js.map +1 -0
- package/dist/services/v2/entity-serializer.d.ts +94 -0
- package/dist/services/v2/entity-serializer.d.ts.map +1 -0
- package/dist/services/v2/entity-serializer.js +583 -0
- package/dist/services/v2/entity-serializer.js.map +1 -0
- package/dist/services/v2/entity-serializer.test.d.ts +5 -0
- package/dist/services/v2/entity-serializer.test.d.ts.map +1 -0
- package/dist/services/v2/entity-serializer.test.js +241 -0
- package/dist/services/v2/entity-serializer.test.js.map +1 -0
- package/dist/services/v2/entity-validator.d.ts +65 -0
- package/dist/services/v2/entity-validator.d.ts.map +1 -0
- package/dist/services/v2/entity-validator.js +573 -0
- package/dist/services/v2/entity-validator.js.map +1 -0
- package/dist/services/v2/entity-validator.test.d.ts +5 -0
- package/dist/services/v2/entity-validator.test.d.ts.map +1 -0
- package/dist/services/v2/entity-validator.test.js +519 -0
- package/dist/services/v2/entity-validator.test.js.map +1 -0
- package/dist/services/v2/file-manager.d.ts +73 -0
- package/dist/services/v2/file-manager.d.ts.map +1 -0
- package/dist/services/v2/file-manager.js +310 -0
- package/dist/services/v2/file-manager.js.map +1 -0
- package/dist/services/v2/file-manager.test.d.ts +5 -0
- package/dist/services/v2/file-manager.test.d.ts.map +1 -0
- package/dist/services/v2/file-manager.test.js +339 -0
- package/dist/services/v2/file-manager.test.js.map +1 -0
- package/dist/services/v2/index-manager.d.ts +68 -0
- package/dist/services/v2/index-manager.d.ts.map +1 -0
- package/dist/services/v2/index-manager.js +228 -0
- package/dist/services/v2/index-manager.js.map +1 -0
- package/dist/services/v2/index-manager.test.d.ts +5 -0
- package/dist/services/v2/index-manager.test.d.ts.map +1 -0
- package/dist/services/v2/index-manager.test.js +386 -0
- package/dist/services/v2/index-manager.test.js.map +1 -0
- package/dist/services/v2/index-service.d.ts +82 -0
- package/dist/services/v2/index-service.d.ts.map +1 -0
- package/dist/services/v2/index-service.js +274 -0
- package/dist/services/v2/index-service.js.map +1 -0
- package/dist/services/v2/index-service.test.d.ts +5 -0
- package/dist/services/v2/index-service.test.d.ts.map +1 -0
- package/dist/services/v2/index-service.test.js +117 -0
- package/dist/services/v2/index-service.test.js.map +1 -0
- package/dist/services/v2/lifecycle-manager.d.ts +59 -0
- package/dist/services/v2/lifecycle-manager.d.ts.map +1 -0
- package/dist/services/v2/lifecycle-manager.js +310 -0
- package/dist/services/v2/lifecycle-manager.js.map +1 -0
- package/dist/services/v2/lifecycle-manager.test.d.ts +5 -0
- package/dist/services/v2/lifecycle-manager.test.d.ts.map +1 -0
- package/dist/services/v2/lifecycle-manager.test.js +141 -0
- package/dist/services/v2/lifecycle-manager.test.js.map +1 -0
- package/dist/services/v2/path-resolver.d.ts +64 -0
- package/dist/services/v2/path-resolver.d.ts.map +1 -0
- package/dist/services/v2/path-resolver.js +174 -0
- package/dist/services/v2/path-resolver.js.map +1 -0
- package/dist/services/v2/progress-computer.d.ts +46 -0
- package/dist/services/v2/progress-computer.d.ts.map +1 -0
- package/dist/services/v2/progress-computer.js +200 -0
- package/dist/services/v2/progress-computer.js.map +1 -0
- package/dist/services/v2/search-service.d.ts +68 -0
- package/dist/services/v2/search-service.d.ts.map +1 -0
- package/dist/services/v2/search-service.js +194 -0
- package/dist/services/v2/search-service.js.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.d.ts +54 -0
- package/dist/services/v2/transitive-dependency-remover.d.ts.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.js +156 -0
- package/dist/services/v2/transitive-dependency-remover.js.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.test.d.ts +7 -0
- package/dist/services/v2/transitive-dependency-remover.test.d.ts.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.test.js +119 -0
- package/dist/services/v2/transitive-dependency-remover.test.js.map +1 -0
- package/dist/services/v2/v2-runtime.d.ts +374 -0
- package/dist/services/v2/v2-runtime.d.ts.map +1 -0
- package/dist/services/v2/v2-runtime.js +1908 -0
- package/dist/services/v2/v2-runtime.js.map +1 -0
- package/dist/services/v2/v2-runtime.test.d.ts +5 -0
- package/dist/services/v2/v2-runtime.test.d.ts.map +1 -0
- package/dist/services/v2/v2-runtime.test.js +658 -0
- package/dist/services/v2/v2-runtime.test.js.map +1 -0
- package/dist/services/v2/workstream-normalizer.d.ts +59 -0
- package/dist/services/v2/workstream-normalizer.d.ts.map +1 -0
- package/dist/services/v2/workstream-normalizer.js +137 -0
- package/dist/services/v2/workstream-normalizer.js.map +1 -0
- package/dist/services/v2/workstream-normalizer.test.d.ts +7 -0
- package/dist/services/v2/workstream-normalizer.test.d.ts.map +1 -0
- package/dist/services/v2/workstream-normalizer.test.js +130 -0
- package/dist/services/v2/workstream-normalizer.test.js.map +1 -0
- package/dist/test-runner.d.ts +4 -1
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +44 -249
- package/dist/test-runner.js.map +1 -1
- package/dist/tools/batch-operations-tools.d.ts +54 -0
- package/dist/tools/batch-operations-tools.d.ts.map +1 -0
- package/dist/tools/batch-operations-tools.js +370 -0
- package/dist/tools/batch-operations-tools.js.map +1 -0
- package/dist/tools/decision-document-tools.d.ts +78 -0
- package/dist/tools/decision-document-tools.d.ts.map +1 -0
- package/dist/tools/decision-document-tools.js +260 -0
- package/dist/tools/decision-document-tools.js.map +1 -0
- package/dist/tools/entity-management-tools.d.ts +79 -0
- package/dist/tools/entity-management-tools.d.ts.map +1 -0
- package/dist/tools/entity-management-tools.js +851 -0
- package/dist/tools/entity-management-tools.js.map +1 -0
- package/dist/tools/entity-management-tools.test.d.ts +5 -0
- package/dist/tools/entity-management-tools.test.d.ts.map +1 -0
- package/dist/tools/entity-management-tools.test.js +530 -0
- package/dist/tools/entity-management-tools.test.js.map +1 -0
- package/dist/tools/index.d.ts +15 -331
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +510 -47
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/index.test.d.ts +8 -0
- package/dist/tools/index.test.d.ts.map +1 -0
- package/dist/tools/index.test.js +429 -0
- package/dist/tools/index.test.js.map +1 -0
- package/dist/tools/project-understanding-tools.d.ts +75 -0
- package/dist/tools/project-understanding-tools.d.ts.map +1 -0
- package/dist/tools/project-understanding-tools.js +751 -0
- package/dist/tools/project-understanding-tools.js.map +1 -0
- package/dist/tools/search-navigation-tools.d.ts +77 -0
- package/dist/tools/search-navigation-tools.d.ts.map +1 -0
- package/dist/tools/search-navigation-tools.js +379 -0
- package/dist/tools/search-navigation-tools.js.map +1 -0
- package/dist/tools/tool-types.d.ts +703 -0
- package/dist/tools/tool-types.d.ts.map +1 -0
- package/dist/tools/tool-types.js +7 -0
- package/dist/tools/tool-types.js.map +1 -0
- package/dist/utils/config.d.ts +0 -4
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +2 -19
- package/dist/utils/config.js.map +1 -1
- package/package.json +16 -1
- package/dist/services/accomplishment-service.d.ts +0 -33
- package/dist/services/accomplishment-service.d.ts.map +0 -1
- package/dist/services/accomplishment-service.js +0 -296
- package/dist/services/accomplishment-service.js.map +0 -1
- package/dist/services/canvas-service.d.ts +0 -96
- package/dist/services/canvas-service.d.ts.map +0 -1
- package/dist/services/canvas-service.js +0 -231
- package/dist/services/canvas-service.js.map +0 -1
- package/dist/services/context-doc-service.d.ts +0 -70
- package/dist/services/context-doc-service.d.ts.map +0 -1
- package/dist/services/context-doc-service.js +0 -229
- package/dist/services/context-doc-service.js.map +0 -1
- package/dist/services/dependency-service.d.ts +0 -22
- package/dist/services/dependency-service.d.ts.map +0 -1
- package/dist/services/dependency-service.js +0 -99
- package/dist/services/dependency-service.js.map +0 -1
- package/dist/services/status-indicator-service.d.ts +0 -40
- package/dist/services/status-indicator-service.d.ts.map +0 -1
- package/dist/services/status-indicator-service.js +0 -173
- package/dist/services/status-indicator-service.js.map +0 -1
- package/dist/services/task-service.d.ts +0 -32
- package/dist/services/task-service.d.ts.map +0 -1
- package/dist/services/task-service.js +0 -152
- package/dist/services/task-service.js.map +0 -1
- package/dist/test-real-vault.d.ts +0 -6
- package/dist/test-real-vault.d.ts.map +0 -1
- package/dist/test-real-vault.js +0 -30
- package/dist/test-real-vault.js.map +0 -1
- package/dist/tools/batch-operations.d.ts +0 -246
- package/dist/tools/batch-operations.d.ts.map +0 -1
- package/dist/tools/batch-operations.js +0 -235
- package/dist/tools/batch-operations.js.map +0 -1
- package/dist/tools/get-accomplishment.d.ts +0 -42
- package/dist/tools/get-accomplishment.d.ts.map +0 -1
- package/dist/tools/get-accomplishment.js +0 -93
- package/dist/tools/get-accomplishment.js.map +0 -1
- package/dist/tools/get-accomplishments-graph.d.ts +0 -26
- package/dist/tools/get-accomplishments-graph.d.ts.map +0 -1
- package/dist/tools/get-accomplishments-graph.js +0 -137
- package/dist/tools/get-accomplishments-graph.js.map +0 -1
- package/dist/tools/get-blocked-items.d.ts +0 -15
- package/dist/tools/get-blocked-items.d.ts.map +0 -1
- package/dist/tools/get-blocked-items.js +0 -73
- package/dist/tools/get-blocked-items.js.map +0 -1
- package/dist/tools/get-current-work.d.ts +0 -15
- package/dist/tools/get-current-work.d.ts.map +0 -1
- package/dist/tools/get-current-work.js +0 -68
- package/dist/tools/get-current-work.js.map +0 -1
- package/dist/tools/get-project-status.d.ts +0 -26
- package/dist/tools/get-project-status.d.ts.map +0 -1
- package/dist/tools/get-project-status.js +0 -98
- package/dist/tools/get-project-status.js.map +0 -1
- package/dist/tools/get-ready-to-start.d.ts +0 -15
- package/dist/tools/get-ready-to-start.d.ts.map +0 -1
- package/dist/tools/get-ready-to-start.js +0 -47
- package/dist/tools/get-ready-to-start.js.map +0 -1
- package/dist/tools/list-accomplishments.d.ts +0 -42
- package/dist/tools/list-accomplishments.d.ts.map +0 -1
- package/dist/tools/list-accomplishments.js +0 -40
- package/dist/tools/list-accomplishments.js.map +0 -1
- package/dist/tools/manage-accomplishment.d.ts +0 -147
- package/dist/tools/manage-accomplishment.d.ts.map +0 -1
- package/dist/tools/manage-accomplishment.js +0 -153
- package/dist/tools/manage-accomplishment.js.map +0 -1
- package/dist/tools/manage-dependency.d.ts +0 -41
- package/dist/tools/manage-dependency.d.ts.map +0 -1
- package/dist/tools/manage-dependency.js +0 -66
- package/dist/tools/manage-dependency.js.map +0 -1
- package/dist/tools/manage-task.d.ts +0 -119
- package/dist/tools/manage-task.d.ts.map +0 -1
- package/dist/tools/manage-task.js +0 -126
- package/dist/tools/manage-task.js.map +0 -1
- package/dist/tools/reconcile-canvas.d.ts +0 -33
- package/dist/tools/reconcile-canvas.d.ts.map +0 -1
- package/dist/tools/reconcile-canvas.js +0 -41
- package/dist/tools/reconcile-canvas.js.map +0 -1
- package/dist/tools/set-work-focus.d.ts +0 -48
- package/dist/tools/set-work-focus.d.ts.map +0 -1
- package/dist/tools/set-work-focus.js +0 -78
- package/dist/tools/set-work-focus.js.map +0 -1
- package/dist/tools/sync-dependencies.d.ts +0 -33
- package/dist/tools/sync-dependencies.d.ts.map +0 -1
- package/dist/tools/sync-dependencies.js +0 -144
- 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
|
|
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
|
|
9
|
-
- **Handle dependencies** — define
|
|
10
|
-
- **Track progress** — see project status,
|
|
11
|
-
- **
|
|
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
|
-
│ │
|
|
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
|
-
###
|
|
36
|
+
### Install from Source
|
|
42
37
|
|
|
43
38
|
```bash
|
|
44
|
-
|
|
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
|
-
├──
|
|
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
|
-
| `
|
|
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
|
-
###
|
|
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
|
-
|
|
118
|
+
The system uses a hierarchical entity model:
|
|
175
119
|
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
206
|
-
-
|
|
207
|
-
-
|
|
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
|
-
###
|
|
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
|
-
|
|
174
|
+
---
|
|
214
175
|
|
|
215
|
-
|
|
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
|
-
|
|
178
|
+
The MCP server provides 15 tools organized by function:
|
|
221
179
|
|
|
222
|
-
|
|
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
|
-
|
|
187
|
+
### Batch Operations
|
|
231
188
|
|
|
232
|
-
|
|
189
|
+
| Tool | Description |
|
|
190
|
+
|------|-------------|
|
|
191
|
+
| `batch_update` | Bulk create/update/archive with `dry_run` preview and `include_entities` option |
|
|
233
192
|
|
|
234
|
-
###
|
|
193
|
+
### Project Understanding
|
|
235
194
|
|
|
236
195
|
| Tool | Description |
|
|
237
196
|
|------|-------------|
|
|
238
|
-
| `
|
|
239
|
-
| `
|
|
240
|
-
| `
|
|
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
|
-
###
|
|
201
|
+
### Search & Navigation
|
|
243
202
|
|
|
244
203
|
| Tool | Description |
|
|
245
204
|
|------|-------------|
|
|
246
|
-
| `
|
|
247
|
-
| `
|
|
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
|
-
###
|
|
209
|
+
### Document Management
|
|
250
210
|
|
|
251
211
|
| Tool | Description |
|
|
252
212
|
|------|-------------|
|
|
253
|
-
| `
|
|
213
|
+
| `manage_documents` | Decision history, versioning, freshness checks |
|
|
254
214
|
|
|
255
|
-
###
|
|
215
|
+
### Maintenance
|
|
256
216
|
|
|
257
217
|
| Tool | Description |
|
|
258
218
|
|------|-------------|
|
|
259
|
-
| `
|
|
260
|
-
| `
|
|
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
|
-
###
|
|
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
|
|
239
|
+
> "Show me the engineering workstream status"
|
|
282
240
|
> "What items are blocked?"
|
|
283
|
-
> "
|
|
241
|
+
> "Analyze the project and identify risks"
|
|
284
242
|
|
|
285
|
-
### Managing
|
|
286
|
-
> "Create
|
|
287
|
-
> "
|
|
288
|
-
> "
|
|
289
|
-
> "
|
|
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
|
-
> "
|
|
298
|
-
> "
|
|
299
|
-
> "
|
|
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
|
-
|
|
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
|
-
|
|
291
|
+
### Project Structure
|
|
341
292
|
|
|
342
|
-
|
|
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
|
-
|