triliumnext-mcp 0.3.13 → 0.3.14

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 (233) hide show
  1. package/README.md +91 -44
  2. package/package.json +5 -4
  3. package/build/index.d.ts +0 -3
  4. package/build/index.d.ts.map +0 -1
  5. package/build/index.js.map +0 -1
  6. package/build/modules/attributes/attributeListHandler.d.ts +0 -14
  7. package/build/modules/attributes/attributeListHandler.d.ts.map +0 -1
  8. package/build/modules/attributes/attributeListHandler.js +0 -35
  9. package/build/modules/attributes/attributeListHandler.js.map +0 -1
  10. package/build/modules/attributes/attributeManageHandler.d.ts +0 -16
  11. package/build/modules/attributes/attributeManageHandler.d.ts.map +0 -1
  12. package/build/modules/attributes/attributeManageHandler.js +0 -261
  13. package/build/modules/attributes/attributeManageHandler.js.map +0 -1
  14. package/build/modules/attributes/attributeManageManager.d.ts +0 -13
  15. package/build/modules/attributes/attributeManageManager.d.ts.map +0 -1
  16. package/build/modules/attributes/attributeManageManager.js +0 -520
  17. package/build/modules/attributes/attributeManageManager.js.map +0 -1
  18. package/build/modules/attributes/attributeReadHandler.d.ts +0 -16
  19. package/build/modules/attributes/attributeReadHandler.d.ts.map +0 -1
  20. package/build/modules/attributes/attributeReadHandler.js +0 -136
  21. package/build/modules/attributes/attributeReadHandler.js.map +0 -1
  22. package/build/modules/attributes/operations/attributeCreation.d.ts +0 -15
  23. package/build/modules/attributes/operations/attributeCreation.d.ts.map +0 -1
  24. package/build/modules/attributes/operations/attributeCreation.js +0 -238
  25. package/build/modules/attributes/operations/attributeCreation.js.map +0 -1
  26. package/build/modules/attributes/operations/attributeDeletion.d.ts +0 -11
  27. package/build/modules/attributes/operations/attributeDeletion.d.ts.map +0 -1
  28. package/build/modules/attributes/operations/attributeDeletion.js +0 -63
  29. package/build/modules/attributes/operations/attributeDeletion.js.map +0 -1
  30. package/build/modules/attributes/operations/attributeList.d.ts +0 -29
  31. package/build/modules/attributes/operations/attributeList.d.ts.map +0 -1
  32. package/build/modules/attributes/operations/attributeList.js +0 -148
  33. package/build/modules/attributes/operations/attributeList.js.map +0 -1
  34. package/build/modules/attributes/operations/attributeRead.d.ts +0 -13
  35. package/build/modules/attributes/operations/attributeRead.d.ts.map +0 -1
  36. package/build/modules/attributes/operations/attributeRead.js +0 -43
  37. package/build/modules/attributes/operations/attributeRead.js.map +0 -1
  38. package/build/modules/attributes/operations/attributeUpdate.d.ts +0 -11
  39. package/build/modules/attributes/operations/attributeUpdate.d.ts.map +0 -1
  40. package/build/modules/attributes/operations/attributeUpdate.js +0 -107
  41. package/build/modules/attributes/operations/attributeUpdate.js.map +0 -1
  42. package/build/modules/attributes/operations/batchOperations.d.ts +0 -18
  43. package/build/modules/attributes/operations/batchOperations.d.ts.map +0 -1
  44. package/build/modules/attributes/operations/batchOperations.js +0 -49
  45. package/build/modules/attributes/operations/batchOperations.js.map +0 -1
  46. package/build/modules/attributes/validation/attributeValidator.d.ts +0 -40
  47. package/build/modules/attributes/validation/attributeValidator.d.ts.map +0 -1
  48. package/build/modules/attributes/validation/attributeValidator.js +0 -84
  49. package/build/modules/attributes/validation/attributeValidator.js.map +0 -1
  50. package/build/modules/attributes/validation/containerProtection.d.ts +0 -14
  51. package/build/modules/attributes/validation/containerProtection.d.ts.map +0 -1
  52. package/build/modules/attributes/validation/containerProtection.js +0 -105
  53. package/build/modules/attributes/validation/containerProtection.js.map +0 -1
  54. package/build/modules/notes/crud/noteCreation.d.ts +0 -26
  55. package/build/modules/notes/crud/noteCreation.d.ts.map +0 -1
  56. package/build/modules/notes/crud/noteCreation.js +0 -206
  57. package/build/modules/notes/crud/noteCreation.js.map +0 -1
  58. package/build/modules/notes/crud/noteDeletion.d.ts +0 -10
  59. package/build/modules/notes/crud/noteDeletion.d.ts.map +0 -1
  60. package/build/modules/notes/crud/noteDeletion.js +0 -19
  61. package/build/modules/notes/crud/noteDeletion.js.map +0 -1
  62. package/build/modules/notes/crud/noteRetrieval.d.ts +0 -10
  63. package/build/modules/notes/crud/noteRetrieval.d.ts.map +0 -1
  64. package/build/modules/notes/crud/noteRetrieval.js +0 -64
  65. package/build/modules/notes/crud/noteRetrieval.js.map +0 -1
  66. package/build/modules/notes/crud/noteUpdate.d.ts +0 -10
  67. package/build/modules/notes/crud/noteUpdate.d.ts.map +0 -1
  68. package/build/modules/notes/crud/noteUpdate.js +0 -305
  69. package/build/modules/notes/crud/noteUpdate.js.map +0 -1
  70. package/build/modules/notes/noteHandler.d.ts +0 -51
  71. package/build/modules/notes/noteHandler.d.ts.map +0 -1
  72. package/build/modules/notes/noteHandler.js +0 -211
  73. package/build/modules/notes/noteHandler.js.map +0 -1
  74. package/build/modules/notes/noteManager.d.ts +0 -102
  75. package/build/modules/notes/noteManager.d.ts.map +0 -1
  76. package/build/modules/notes/noteManager.js +0 -20
  77. package/build/modules/notes/noteManager.js.map +0 -1
  78. package/build/modules/notes/operations/duplicateChecker.d.ts +0 -12
  79. package/build/modules/notes/operations/duplicateChecker.d.ts.map +0 -1
  80. package/build/modules/notes/operations/duplicateChecker.js +0 -43
  81. package/build/modules/notes/operations/duplicateChecker.js.map +0 -1
  82. package/build/modules/notes/operations/searchReplace.d.ts +0 -14
  83. package/build/modules/notes/operations/searchReplace.d.ts.map +0 -1
  84. package/build/modules/notes/operations/searchReplace.js +0 -206
  85. package/build/modules/notes/operations/searchReplace.js.map +0 -1
  86. package/build/modules/notes/validation/containerValidator.d.ts +0 -13
  87. package/build/modules/notes/validation/containerValidator.d.ts.map +0 -1
  88. package/build/modules/notes/validation/containerValidator.js +0 -87
  89. package/build/modules/notes/validation/containerValidator.js.map +0 -1
  90. package/build/modules/notes/validation/contentValidator.d.ts +0 -14
  91. package/build/modules/notes/validation/contentValidator.d.ts.map +0 -1
  92. package/build/modules/notes/validation/contentValidator.js +0 -12
  93. package/build/modules/notes/validation/contentValidator.js.map +0 -1
  94. package/build/modules/notes/validation/hashValidator.d.ts +0 -12
  95. package/build/modules/notes/validation/hashValidator.d.ts.map +0 -1
  96. package/build/modules/notes/validation/hashValidator.js +0 -24
  97. package/build/modules/notes/validation/hashValidator.js.map +0 -1
  98. package/build/modules/resolve/resolveHandler.d.ts +0 -6
  99. package/build/modules/resolve/resolveHandler.d.ts.map +0 -1
  100. package/build/modules/resolve/resolveHandler.js +0 -53
  101. package/build/modules/resolve/resolveHandler.js.map +0 -1
  102. package/build/modules/resolve/resolveManager.d.ts +0 -31
  103. package/build/modules/resolve/resolveManager.d.ts.map +0 -1
  104. package/build/modules/resolve/resolveManager.js +0 -145
  105. package/build/modules/resolve/resolveManager.js.map +0 -1
  106. package/build/modules/search/filtering/hierarchyFilter.d.ts +0 -35
  107. package/build/modules/search/filtering/hierarchyFilter.d.ts.map +0 -1
  108. package/build/modules/search/filtering/hierarchyFilter.js +0 -187
  109. package/build/modules/search/filtering/hierarchyFilter.js.map +0 -1
  110. package/build/modules/search/filtering/resultFilter.d.ts +0 -42
  111. package/build/modules/search/filtering/resultFilter.d.ts.map +0 -1
  112. package/build/modules/search/filtering/resultFilter.js +0 -132
  113. package/build/modules/search/filtering/resultFilter.js.map +0 -1
  114. package/build/modules/search/query/queryBuilder.d.ts +0 -19
  115. package/build/modules/search/query/queryBuilder.d.ts.map +0 -1
  116. package/build/modules/search/query/queryBuilder.js +0 -471
  117. package/build/modules/search/query/queryBuilder.js.map +0 -1
  118. package/build/modules/search/query/queryOptimizer.d.ts +0 -30
  119. package/build/modules/search/query/queryOptimizer.d.ts.map +0 -1
  120. package/build/modules/search/query/queryOptimizer.js +0 -133
  121. package/build/modules/search/query/queryOptimizer.js.map +0 -1
  122. package/build/modules/search/query/queryValidator.d.ts +0 -53
  123. package/build/modules/search/query/queryValidator.d.ts.map +0 -1
  124. package/build/modules/search/query/queryValidator.js +0 -157
  125. package/build/modules/search/query/queryValidator.js.map +0 -1
  126. package/build/modules/search/searchHandler.d.ts +0 -15
  127. package/build/modules/search/searchHandler.d.ts.map +0 -1
  128. package/build/modules/search/searchHandler.js +0 -36
  129. package/build/modules/search/searchHandler.js.map +0 -1
  130. package/build/modules/search/searchManager.d.ts +0 -33
  131. package/build/modules/search/searchManager.d.ts.map +0 -1
  132. package/build/modules/search/searchManager.js +0 -77
  133. package/build/modules/search/searchManager.js.map +0 -1
  134. package/build/modules/shared/index.d.ts +0 -18
  135. package/build/modules/shared/index.d.ts.map +0 -1
  136. package/build/modules/shared/index.js +0 -26
  137. package/build/modules/shared/index.js.map +0 -1
  138. package/build/modules/tools/definitions/attributeTools.d.ts +0 -13
  139. package/build/modules/tools/definitions/attributeTools.d.ts.map +0 -1
  140. package/build/modules/tools/definitions/attributeTools.js +0 -130
  141. package/build/modules/tools/definitions/attributeTools.js.map +0 -1
  142. package/build/modules/tools/definitions/readTools.d.ts +0 -9
  143. package/build/modules/tools/definitions/readTools.d.ts.map +0 -1
  144. package/build/modules/tools/definitions/readTools.js +0 -130
  145. package/build/modules/tools/definitions/readTools.js.map +0 -1
  146. package/build/modules/tools/definitions/writeTools.d.ts +0 -9
  147. package/build/modules/tools/definitions/writeTools.d.ts.map +0 -1
  148. package/build/modules/tools/definitions/writeTools.js +0 -177
  149. package/build/modules/tools/definitions/writeTools.js.map +0 -1
  150. package/build/modules/tools/toolDefinitions.d.ts +0 -26
  151. package/build/modules/tools/toolDefinitions.d.ts.map +0 -1
  152. package/build/modules/tools/toolDefinitions.js +0 -450
  153. package/build/modules/tools/toolDefinitions.js.map +0 -1
  154. package/build/modules/types/index.d.ts +0 -134
  155. package/build/modules/types/index.d.ts.map +0 -1
  156. package/build/modules/types/index.js +0 -2
  157. package/build/modules/types/index.js.map +0 -1
  158. package/build/modules/utils/attributes/attributeNameCleaner.d.ts +0 -54
  159. package/build/modules/utils/attributes/attributeNameCleaner.d.ts.map +0 -1
  160. package/build/modules/utils/attributes/attributeNameCleaner.js +0 -130
  161. package/build/modules/utils/attributes/attributeNameCleaner.js.map +0 -1
  162. package/build/modules/utils/attributes/attributeUtils.d.ts +0 -41
  163. package/build/modules/utils/attributes/attributeUtils.d.ts.map +0 -1
  164. package/build/modules/utils/attributes/attributeUtils.js +0 -116
  165. package/build/modules/utils/attributes/attributeUtils.js.map +0 -1
  166. package/build/modules/utils/attributes/index.d.ts +0 -7
  167. package/build/modules/utils/attributes/index.d.ts.map +0 -1
  168. package/build/modules/utils/attributes/index.js +0 -9
  169. package/build/modules/utils/attributes/index.js.map +0 -1
  170. package/build/modules/utils/content/contentProcessor.d.ts +0 -20
  171. package/build/modules/utils/content/contentProcessor.d.ts.map +0 -1
  172. package/build/modules/utils/content/contentProcessor.js +0 -186
  173. package/build/modules/utils/content/contentProcessor.js.map +0 -1
  174. package/build/modules/utils/content/index.d.ts +0 -7
  175. package/build/modules/utils/content/index.d.ts.map +0 -1
  176. package/build/modules/utils/content/index.js +0 -9
  177. package/build/modules/utils/content/index.js.map +0 -1
  178. package/build/modules/utils/content/templateMapper.d.ts +0 -63
  179. package/build/modules/utils/content/templateMapper.d.ts.map +0 -1
  180. package/build/modules/utils/content/templateMapper.js +0 -114
  181. package/build/modules/utils/content/templateMapper.js.map +0 -1
  182. package/build/modules/utils/formatting/index.d.ts +0 -7
  183. package/build/modules/utils/formatting/index.d.ts.map +0 -1
  184. package/build/modules/utils/formatting/index.js +0 -9
  185. package/build/modules/utils/formatting/index.js.map +0 -1
  186. package/build/modules/utils/formatting/noteBuilder.d.ts +0 -12
  187. package/build/modules/utils/formatting/noteBuilder.d.ts.map +0 -1
  188. package/build/modules/utils/formatting/noteBuilder.js +0 -18
  189. package/build/modules/utils/formatting/noteBuilder.js.map +0 -1
  190. package/build/modules/utils/formatting/noteFormatter.d.ts +0 -30
  191. package/build/modules/utils/formatting/noteFormatter.d.ts.map +0 -1
  192. package/build/modules/utils/formatting/noteFormatter.js +0 -59
  193. package/build/modules/utils/formatting/noteFormatter.js.map +0 -1
  194. package/build/modules/utils/recovery/index.d.ts +0 -6
  195. package/build/modules/utils/recovery/index.d.ts.map +0 -1
  196. package/build/modules/utils/recovery/index.js +0 -7
  197. package/build/modules/utils/recovery/index.js.map +0 -1
  198. package/build/modules/utils/recovery/noteRecovery.d.ts +0 -51
  199. package/build/modules/utils/recovery/noteRecovery.d.ts.map +0 -1
  200. package/build/modules/utils/recovery/noteRecovery.js +0 -195
  201. package/build/modules/utils/recovery/noteRecovery.js.map +0 -1
  202. package/build/modules/utils/system/errorUtils.d.ts +0 -34
  203. package/build/modules/utils/system/errorUtils.d.ts.map +0 -1
  204. package/build/modules/utils/system/errorUtils.js +0 -48
  205. package/build/modules/utils/system/errorUtils.js.map +0 -1
  206. package/build/modules/utils/system/index.d.ts +0 -8
  207. package/build/modules/utils/system/index.d.ts.map +0 -1
  208. package/build/modules/utils/system/index.js +0 -11
  209. package/build/modules/utils/system/index.js.map +0 -1
  210. package/build/modules/utils/system/permissionUtils.d.ts +0 -46
  211. package/build/modules/utils/system/permissionUtils.d.ts.map +0 -1
  212. package/build/modules/utils/system/permissionUtils.js +0 -56
  213. package/build/modules/utils/system/permissionUtils.js.map +0 -1
  214. package/build/modules/utils/system/verboseUtils.d.ts +0 -41
  215. package/build/modules/utils/system/verboseUtils.d.ts.map +0 -1
  216. package/build/modules/utils/system/verboseUtils.js +0 -102
  217. package/build/modules/utils/system/verboseUtils.js.map +0 -1
  218. package/build/modules/utils/validation/contentIntegrity.d.ts +0 -72
  219. package/build/modules/utils/validation/contentIntegrity.d.ts.map +0 -1
  220. package/build/modules/utils/validation/contentIntegrity.js +0 -160
  221. package/build/modules/utils/validation/contentIntegrity.js.map +0 -1
  222. package/build/modules/utils/validation/contentRules.d.ts +0 -53
  223. package/build/modules/utils/validation/contentRules.d.ts.map +0 -1
  224. package/build/modules/utils/validation/contentRules.js +0 -267
  225. package/build/modules/utils/validation/contentRules.js.map +0 -1
  226. package/build/modules/utils/validation/index.d.ts +0 -8
  227. package/build/modules/utils/validation/index.d.ts.map +0 -1
  228. package/build/modules/utils/validation/index.js +0 -11
  229. package/build/modules/utils/validation/index.js.map +0 -1
  230. package/build/modules/utils/validation/validationUtils.d.ts +0 -310
  231. package/build/modules/utils/validation/validationUtils.d.ts.map +0 -1
  232. package/build/modules/utils/validation/validationUtils.js +0 -199
  233. package/build/modules/utils/validation/validationUtils.js.map +0 -1
package/README.md CHANGED
@@ -14,73 +14,120 @@ Make sure to set up your environment variables first:
14
14
 
15
15
  ## Installation
16
16
 
17
- ### 1. Using with Claude Desktop
18
17
 
19
- Add the server config to your Claude Desktop configuration file:
18
+ Below are the installation guide for this MCP on different MCP clients, such as Claude Desktop, Claude Code, Cursor, Cline, etc.
20
19
 
21
- #### For Local Installation (on Windows)
20
+ <details>
21
+ <summary>Claude Desktop</summary>
22
+
23
+ Add to your Claude Desktop configuration:
22
24
 
23
25
  ```json
24
- "triliumnext-mcp": {
25
- "command": "cmd",
26
- "args": [
27
- "/k",
28
- "npx",
29
- "-y",
30
- "triliumnext-mcp"
31
- ],
32
- "env": {
33
- "TRILIUM_API_URL": "http://localhost:8080/etapi",
34
- "TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
35
- "PERMISSIONS": "READ;WRITE"
26
+ {
27
+ "mcpServers": {
28
+ "triliumnext-mcp": {
29
+ "command": "npx",
30
+ "args": ["triliumnext-mcp"],
31
+ "env": {
32
+ "TRILIUM_API_URL": "http://localhost:8080/etapi",
33
+ "TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
34
+ "PERMISSIONS": "READ;WRITE"
35
+ }
36
+ }
36
37
  }
37
38
  }
38
39
  ```
40
+ </details>
41
+
42
+ <details>
43
+ <summary>Claude Code</summary>
44
+
45
+ ```bash
46
+ claude mcp add triliumnext-mcp \
47
+ -e TRILIUM_API_URL=http://localhost:8080/etapi \
48
+ -e TRILIUM_API_TOKEN=<YOUR_TRILIUM_API_TOKEN> \
49
+ -e PERMISSIONS='READ;WRITE' \
50
+ -- npx triliumnext-mcp
51
+ ```
39
52
 
40
- #### For Local installation (on Linux)
53
+ Note: Increase the MCP startup timeout to 1 minutes and MCP tool execution timeout to about 5 minutes by updating `~\.claude\settings.json` as follows:
41
54
 
42
55
  ```json
43
- "triliumnext-mcp": {
44
- "command": "npx",
45
- "args": [
46
- "-y",
47
- "triliumnext-mcp"
48
- ],
49
- "env": {
50
- "TRILIUM_API_URL": "http://localhost:8080/etapi",
51
- "TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
52
- "PERMISSIONS": "READ;WRITE"
56
+ {
57
+ "env": {
58
+ "MCP_TIMEOUT": "60000",
59
+ "MCP_TOOL_TIMEOUT": "300000"
53
60
  }
54
61
  }
55
62
  ```
56
63
 
57
- #### For Development (on Windows / Linux)
64
+ </details>
58
65
 
59
- ```bash
60
- cd /path/to/triliumnext-mcp
61
- npm run build
66
+ <details>
67
+ <summary>Cursor</summary>
68
+
69
+ Go to: Settings -> Cursor Settings -> MCP -> Add new global MCP server
70
+
71
+ Pasting the following configuration into your Cursor ~/.cursor/mcp.json file is the recommended approach. You may also install in a specific project by creating .cursor/mcp.json in your project folder. See [Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol) for more info.
72
+
73
+ ```json
74
+ {
75
+ "mcpServers": {
76
+ "triliumnext-mcp": {
77
+ "command": "npx",
78
+ "args": ["triliumnext-mcp"],
79
+ "env": {
80
+ "TRILIUM_API_URL": "http://localhost:8080/etapi",
81
+ "TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
82
+ "PERMISSIONS": "READ;WRITE"
83
+ }
84
+ }
85
+ }
86
+ }
62
87
  ```
88
+ </details>
89
+
90
+
91
+ <details>
92
+ <summary>Cline</summary>
93
+
94
+ Cline uses a JSON configuration file to manage MCP servers. To integrate the provided MCP server configuration:
95
+
96
+ 1. Open Cline and click on the MCP Servers icon in the top navigation bar.
97
+ 2. Select the Installed tab, then click Advanced MCP Settings.
98
+ 3. In the cline_mcp_settings.json file, add the following configuration:
63
99
 
100
+ (i) Using Google AI Studio Provider
64
101
  ```json
65
- "triliumnext-mcp": {
66
- "command": "node",
67
- "args": [
68
- "/path/to/triliumnext-mcp/build/index.js"
69
- ],
70
- "env": {
71
- "TRILIUM_API_URL": "http://localhost:8080/etapi",
72
- "TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
73
- "PERMISSIONS": "READ;WRITE",
74
- "VERBOSE": "true"
102
+ {
103
+ "mcpServers": {
104
+ "timeout": 300,
105
+ "type": "stdio",
106
+ "triliumnext-mcp": {
107
+ "command": "npx",
108
+ "args": ["triliumnext-mcp"],
109
+ "env": {
110
+ "TRILIUM_API_URL": "http://localhost:8080/etapi",
111
+ "TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
112
+ "PERMISSIONS": "READ;WRITE"
113
+ }
114
+ }
75
115
  }
76
116
  }
77
117
  ```
118
+ </details>
119
+
120
+
121
+ <details>
78
122
 
79
- Location of the configuration file:
80
- - Windows: `%APPDATA%/Claude/claude_desktop_config.json`
81
- - MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
123
+ <summary>Other MCP clients</summary>
82
124
 
83
- **Feedback**: Please report issues and test results at [GitHub Issues](https://github.com/TriliumNext/Notes/issues)
125
+ The server uses stdio transport and follows the standard MCP protocol. It can be integrated with any MCP-compatible client by running:
126
+
127
+ ```bash
128
+ npx triliumnext-mcp
129
+ ```
130
+ </details>
84
131
 
85
132
  ## Available Tools
86
133
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "triliumnext-mcp",
3
- "version": "0.3.13",
3
+ "version": "0.3.14",
4
4
  "description": "A model context protocol server for TriliumNext Notes",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,13 +21,14 @@
21
21
  "inspector": "npx @modelcontextprotocol/inspector build/index.js"
22
22
  },
23
23
  "dependencies": {
24
- "@modelcontextprotocol/sdk": "0.6.0",
24
+ "@modelcontextprotocol/sdk": "^1.25.2",
25
25
  "axios": "^1.8.3",
26
- "marked": "^16.3.0"
26
+ "marked": "^16.3.0",
27
+ "mime-db": "^1.54.0"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/node": "^20.11.24",
30
31
  "typescript": "^5.3.3",
31
32
  "zod": "^3.24.1"
32
33
  }
33
- }
34
+ }
package/build/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export { buildNoteParams } from './modules/utils/formatting/noteBuilder.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA0JA,OAAO,EACL,eAAe,EAChB,MAAM,2CAA2C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Attribute List Handler Module
3
- * Centralized request handling for attribute listing operations
4
- */
5
- /**
6
- * Handle list_attributes tool requests
7
- */
8
- export declare function handleListAttributesRequest(args: any, axiosInstance: any, permissionChecker: any): Promise<{
9
- content: {
10
- type: string;
11
- text: string;
12
- }[];
13
- }>;
14
- //# sourceMappingURL=attributeListHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributeListHandler.d.ts","sourceRoot":"","sources":["../../../src/modules/attributes/attributeListHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG;;;;;GA0BtG"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Attribute List Handler Module
3
- * Centralized request handling for attribute listing operations
4
- */
5
- import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
6
- import { handleListAttributes } from "./operations/attributeList.js";
7
- /**
8
- * Handle list_attributes tool requests
9
- */
10
- export async function handleListAttributesRequest(args, axiosInstance, permissionChecker) {
11
- if (!permissionChecker.hasPermission("READ")) {
12
- throw new McpError(ErrorCode.InvalidRequest, "Permission denied: Not authorized to list attributes.");
13
- }
14
- try {
15
- const listOperation = {
16
- noteId: args.noteId,
17
- hierarchyLevel: args.hierarchyLevel || 'immediate',
18
- limit: args.limit || 50
19
- };
20
- const result = await handleListAttributes(listOperation, axiosInstance);
21
- return {
22
- content: [{
23
- type: "text",
24
- text: JSON.stringify(result, null, 2)
25
- }]
26
- };
27
- }
28
- catch (error) {
29
- if (error instanceof McpError) {
30
- throw error;
31
- }
32
- throw new McpError(ErrorCode.InvalidParams, error instanceof Error ? error.message : String(error));
33
- }
34
- }
35
- //# sourceMappingURL=attributeListHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributeListHandler.js","sourceRoot":"","sources":["../../../src/modules/attributes/attributeListHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAS,EAAE,aAAkB,EAAE,iBAAsB;IACrG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,uDAAuD,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,WAAW;YAClD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SACxB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAExE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtG,CAAC;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Attribute Manage Handler Module
3
- * Processes MCP requests for attribute management operations
4
- */
5
- import { AxiosInstance } from 'axios';
6
- import { PermissionChecker } from '../shared/index.js';
7
- import { ManageAttributesRequest } from '../shared/index.js';
8
- /**
9
- * Handle manage_attributes MCP request
10
- */
11
- export declare function handleManageAttributes(args: ManageAttributesRequest, axiosInstance: AxiosInstance, permissionChecker: PermissionChecker): Promise<any>;
12
- /**
13
- * Get help text for attribute management
14
- */
15
- export declare function get_manage_attributes_help(): string;
16
- //# sourceMappingURL=attributeManageHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributeManageHandler.d.ts","sourceRoot":"","sources":["../../../src/modules/attributes/attributeManageHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,uBAAuB,EAC7B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,GAAG,CAAC,CA6Fd;AA0HD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAsDnD"}
@@ -1,261 +0,0 @@
1
- /**
2
- * Attribute Manage Handler Module
3
- * Processes MCP requests for attribute management operations
4
- */
5
- import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
6
- import { manage_attributes } from './attributeManageManager.js';
7
- import { format_attributes_for_display } from '../shared/index.js';
8
- /**
9
- * Handle manage_attributes MCP request
10
- */
11
- export async function handleManageAttributes(args, axiosInstance, permissionChecker) {
12
- try {
13
- // Validate required parameters
14
- if (!args.noteId) {
15
- return {
16
- content: [
17
- {
18
- type: "text",
19
- text: "❌ Missing required parameter: noteId"
20
- }
21
- ],
22
- isError: true
23
- };
24
- }
25
- if (!args.operation) {
26
- return {
27
- content: [
28
- {
29
- type: "text",
30
- text: "❌ Missing required parameter: operation"
31
- }
32
- ],
33
- isError: true
34
- };
35
- }
36
- // Check WRITE permission for all manage_attributes operations
37
- if (!permissionChecker.hasPermission("WRITE")) {
38
- throw new McpError(ErrorCode.InvalidRequest, "Permission denied: Not authorized to manage attributes.");
39
- }
40
- // Validate operation
41
- const validOperations = ["create", "update", "delete", "batch_create"];
42
- if (!validOperations.includes(args.operation)) {
43
- return {
44
- content: [
45
- {
46
- type: "text",
47
- text: `❌ Invalid operation: ${args.operation}. Valid operations are: ${validOperations.join(", ")}`
48
- }
49
- ],
50
- isError: true
51
- };
52
- }
53
- // Validate attributes for write operations
54
- if (!args.attributes || !Array.isArray(args.attributes) || args.attributes.length === 0) {
55
- return {
56
- content: [
57
- {
58
- type: "text",
59
- text: "❌ Missing or invalid required parameter: attributes (must be a non-empty array for write operations)"
60
- }
61
- ],
62
- isError: true
63
- };
64
- }
65
- // For single operations, ensure only one attribute
66
- if (["create", "update", "delete"].includes(args.operation) && args.attributes.length !== 1) {
67
- return {
68
- content: [
69
- {
70
- type: "text",
71
- text: `❌ Operation '${args.operation}' requires exactly one attribute, but ${args.attributes.length} were provided`
72
- }
73
- ],
74
- isError: true
75
- };
76
- }
77
- // Execute the attribute operation
78
- const params = {
79
- noteId: args.noteId,
80
- operation: args.operation,
81
- attributes: args.attributes
82
- };
83
- const result = await manage_attributes(params, axiosInstance);
84
- return format_attribute_response(result, args.noteId, args.operation);
85
- }
86
- catch (error) {
87
- return {
88
- content: [
89
- {
90
- type: "text",
91
- text: `❌ Attribute operation failed: ${error instanceof Error ? error.message : 'Unknown error'}`
92
- }
93
- ],
94
- isError: true
95
- };
96
- }
97
- }
98
- /**
99
- * Format attribute operation result for MCP response
100
- */
101
- function format_attribute_response(result, noteId, operation) {
102
- const content = [];
103
- // Add status message
104
- if (result.success) {
105
- content.push({
106
- type: "text",
107
- text: `✅ ${result.message}`
108
- });
109
- }
110
- else {
111
- content.push({
112
- type: "text",
113
- text: `❌ ${result.message}`
114
- });
115
- // Add error details if available
116
- if (result.errors && result.errors.length > 0) {
117
- content.push({
118
- type: "text",
119
- text: `📋 Error details:\n${result.errors.map((err, i) => `${i + 1}. ${err}`).join('\n')}`
120
- });
121
- }
122
- // Add specific guidance for common errors
123
- if (result.errors && result.errors.some((err) => err.includes("already exists"))) {
124
- content.push({
125
- type: "text",
126
- text: `💡 **Attribute Already Exists**
127
-
128
- The attribute you're trying to create already exists on this note. Here are your options:
129
-
130
- 1. **Update the existing attribute** (recommended):
131
- - Use operation: "update" instead of "create"
132
- - Only the value and position can be updated for labels
133
- - Only the position can be updated for relations
134
-
135
- 2. **Delete and recreate** (for inheritable changes):
136
- - First delete with operation: "delete"
137
- - Then recreate with operation: "create"
138
- - Use this when you need to change the 'isInheritable' property
139
-
140
- 3. **View current attributes**:
141
- - Use read_attributes to see all existing attributes
142
- - Check current values, positions, and inheritable settings
143
-
144
- 📋 **Example update operation**:
145
- \`\`\`
146
- {
147
- "noteId": "${noteId}",
148
- "operation": "update",
149
- "attributes": [{"type": "label", "name": "your_attribute", "value": "new_value"}]
150
- }
151
- \`\`\``
152
- });
153
- }
154
- }
155
- // Add attribute data for successful operations
156
- if (result.success && result.attributes && result.attributes.length > 0) {
157
- content.push({
158
- type: "text",
159
- text: format_attributes_for_display(result.attributes)
160
- });
161
- // For batch operations, add summary
162
- if (operation === "batch_create") {
163
- content.push({
164
- type: "text",
165
- text: `📊 Summary: ${result.attributes.length} attributes processed for note ${noteId}`
166
- });
167
- }
168
- }
169
- // Add guidance for template relations
170
- if (result.success && operation === "batch_create") {
171
- const templateRelations = result.attributes?.filter((attr) => attr.type === "relation" && attr.name === "template");
172
- if (templateRelations && templateRelations.length > 0) {
173
- content.push({
174
- type: "text",
175
- text: `🎯 Template relation detected: ${templateRelations[0].value}\nNote: Template functionality depends on the target note existing in your Trilium instance.`
176
- });
177
- }
178
- }
179
- // Add guidance for batch operations with conflicts
180
- if (result.success && operation === "batch_create" && result.errors && result.errors.length > 0) {
181
- const hasConflicts = result.errors.some((err) => err.includes("Skipping duplicate") || err.includes("already exist"));
182
- if (hasConflicts) {
183
- content.push({
184
- type: "text",
185
- text: `⚠️ **Batch Operation Summary**
186
-
187
- Some attributes were skipped due to conflicts (already existing). This is normal behavior for batch operations:
188
-
189
- ✅ **Successfully created**: ${result.attributes?.length || 0} attributes
190
- ❌ **Skipped duplicates**: ${result.errors?.filter((err) => err.includes("Skipping duplicate") || err.includes("already exist")).length || 0} attributes
191
-
192
- 💡 **To manage skipped attributes**:
193
- - Use \`read_attributes\` to view current attributes
194
- - Use \`update\` operation to modify existing attributes
195
- - Use \`delete\` operation to remove unwanted attributes first
196
-
197
- This approach prevents accidental overwrites while allowing partial success for batch operations.`
198
- });
199
- }
200
- }
201
- return { content };
202
- }
203
- /**
204
- * Get help text for attribute management
205
- */
206
- export function get_manage_attributes_help() {
207
- return `
208
- 🔧 Attribute Management Tools
209
-
210
- manage_attributes: Create, update, delete attributes (write operations)
211
-
212
- 📝 Usage Examples:
213
-
214
- 🔧 Create a single label:
215
- - noteId: "abc123"
216
- - operation: "create"
217
- - attributes: [{type: "label", name: "important", position: 10}]
218
-
219
- 🔧 Create a template relation:
220
- - noteId: "abc123"
221
- - operation: "create"
222
- - attributes: [{type: "relation", name: "template", value: "Board", position: 10}]
223
-
224
- 🔧 Create multiple attributes (batch):
225
- - noteId: "abc123"
226
- - operation: "batch_create"
227
- - attributes: [
228
- {type: "label", name: "project", value: "api", position: 10},
229
- {type: "label", name: "language", value: "python", position: 20},
230
- {type: "relation", name: "template", value: "Grid View", position: 30}
231
- ]
232
-
233
- 🔧 Update an attribute:
234
- - noteId: "abc123"
235
- - operation: "update"
236
- - attributes: [{type: "label", name: "important", position: 15}]
237
-
238
- 🔧 Delete an attribute:
239
- - noteId: "abc123"
240
- - operation: "delete"
241
- - attributes: [{type: "label", name: "important"}]
242
-
243
- 🏷️ Label Syntax: #tagname or #tagname = "value"
244
- 🔗 Relation Syntax: ~relationname = "target_value"
245
-
246
- ⚡ Performance Tips:
247
- - Use "batch_create" for multiple attributes (faster than individual calls)
248
- - Template relations require the target note to exist in your Trilium instance
249
- - Position values control display order (lower numbers appear first)
250
- - Use read_attributes to view existing attributes before making changes
251
-
252
- 🛡️ **Validation & Conflict Handling**:
253
- - Create operations now validate against existing attributes to prevent duplicates
254
- - If an attribute already exists, you'll get detailed error messages with guidance
255
- - Batch operations skip duplicates and continue with valid attributes
256
- - Use "update" to modify existing attributes, "create" for new ones only
257
-
258
- 🔒 **Security**: Requires WRITE permission to manage note attributes.
259
- `;
260
- }
261
- //# sourceMappingURL=attributeManageHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributeManageHandler.js","sourceRoot":"","sources":["../../../src/modules/attributes/attributeManageHandler.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Attribute Manage Manager Module
3
- * Handles CRUD operations for note attributes (labels and relations)
4
- */
5
- import { AxiosInstance } from 'axios';
6
- import { ManageAttributesParams, Attribute, AttributeOperationResult } from '../shared/index.js';
7
- export type { ManageAttributesParams, Attribute, AttributeOperationResult };
8
- /**
9
- * Manage note attributes with write operations (create, update, delete)
10
- * This function provides write-only access to note attributes
11
- */
12
- export declare function manage_attributes(params: ManageAttributesParams, axiosInstance: AxiosInstance): Promise<AttributeOperationResult>;
13
- //# sourceMappingURL=attributeManageManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributeManageManager.d.ts","sourceRoot":"","sources":["../../../src/modules/attributes/attributeManageManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EACL,sBAAsB,EACtB,SAAS,EACT,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAW5B,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC;AAsH5E;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CA6BnC"}