obsidian-mcp-server 1.5.8 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/README.md +248 -104
  2. package/dist/config/index.d.ts +41 -0
  3. package/dist/config/index.js +191 -0
  4. package/dist/index.d.ts +1 -5
  5. package/dist/index.js +296 -18
  6. package/dist/mcp-server/server.d.ts +33 -0
  7. package/dist/mcp-server/server.js +211 -0
  8. package/dist/mcp-server/tools/obsidianDeleteFileTool/index.d.ts +12 -0
  9. package/dist/mcp-server/tools/obsidianDeleteFileTool/index.js +12 -0
  10. package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.d.ts +51 -0
  11. package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.js +168 -0
  12. package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.d.ts +19 -0
  13. package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.js +91 -0
  14. package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.d.ts +12 -0
  15. package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.js +12 -0
  16. package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.d.ts +77 -0
  17. package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.js +341 -0
  18. package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.d.ts +18 -0
  19. package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.js +69 -0
  20. package/dist/mcp-server/tools/obsidianListFilesTool/index.d.ts +12 -0
  21. package/dist/mcp-server/tools/obsidianListFilesTool/index.js +12 -0
  22. package/dist/mcp-server/tools/obsidianListFilesTool/logic.d.ts +64 -0
  23. package/dist/mcp-server/tools/obsidianListFilesTool/logic.js +179 -0
  24. package/dist/mcp-server/tools/obsidianListFilesTool/registration.d.ts +19 -0
  25. package/dist/mcp-server/tools/obsidianListFilesTool/registration.js +96 -0
  26. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.d.ts +3 -0
  27. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.js +2 -0
  28. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.d.ts +42 -0
  29. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.js +152 -0
  30. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.d.ts +3 -0
  31. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.js +52 -0
  32. package/dist/mcp-server/tools/obsidianManageTagsTool/index.d.ts +3 -0
  33. package/dist/mcp-server/tools/obsidianManageTagsTool/index.js +2 -0
  34. package/dist/mcp-server/tools/obsidianManageTagsTool/logic.d.ts +28 -0
  35. package/dist/mcp-server/tools/obsidianManageTagsTool/logic.js +161 -0
  36. package/dist/mcp-server/tools/obsidianManageTagsTool/registration.d.ts +3 -0
  37. package/dist/mcp-server/tools/obsidianManageTagsTool/registration.js +52 -0
  38. package/dist/mcp-server/tools/obsidianReadFileTool/index.d.ts +12 -0
  39. package/dist/mcp-server/tools/obsidianReadFileTool/index.js +12 -0
  40. package/dist/mcp-server/tools/obsidianReadFileTool/logic.d.ts +87 -0
  41. package/dist/mcp-server/tools/obsidianReadFileTool/logic.js +216 -0
  42. package/dist/mcp-server/tools/obsidianReadFileTool/registration.d.ts +20 -0
  43. package/dist/mcp-server/tools/obsidianReadFileTool/registration.js +101 -0
  44. package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.d.ts +12 -0
  45. package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.js +12 -0
  46. package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.d.ts +255 -0
  47. package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.js +583 -0
  48. package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.d.ts +22 -0
  49. package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.js +111 -0
  50. package/dist/mcp-server/tools/obsidianUpdateFileTool/index.d.ts +12 -0
  51. package/dist/mcp-server/tools/obsidianUpdateFileTool/index.js +12 -0
  52. package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.d.ts +183 -0
  53. package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.js +490 -0
  54. package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.d.ts +21 -0
  55. package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.js +108 -0
  56. package/dist/mcp-server/transports/authentication/authContext.d.ts +33 -0
  57. package/dist/mcp-server/transports/authentication/authContext.js +24 -0
  58. package/dist/mcp-server/transports/authentication/authMiddleware.d.ts +30 -0
  59. package/dist/mcp-server/transports/authentication/authMiddleware.js +145 -0
  60. package/dist/mcp-server/transports/authentication/authUtils.d.ts +18 -0
  61. package/dist/mcp-server/transports/authentication/authUtils.js +45 -0
  62. package/dist/mcp-server/transports/authentication/oauthMiddleware.d.ts +24 -0
  63. package/dist/mcp-server/transports/authentication/oauthMiddleware.js +109 -0
  64. package/dist/mcp-server/transports/authentication/types.d.ts +17 -0
  65. package/dist/mcp-server/transports/authentication/types.js +5 -0
  66. package/dist/mcp-server/transports/httpTransport.d.ts +24 -0
  67. package/dist/mcp-server/transports/httpTransport.js +496 -0
  68. package/dist/mcp-server/transports/stdioTransport.d.ts +42 -0
  69. package/dist/mcp-server/transports/stdioTransport.js +63 -0
  70. package/dist/services/obsidianRestAPI/index.d.ts +15 -0
  71. package/dist/services/obsidianRestAPI/index.js +17 -0
  72. package/dist/services/obsidianRestAPI/methods/activeFileMethods.d.ts +38 -0
  73. package/dist/services/obsidianRestAPI/methods/activeFileMethods.js +62 -0
  74. package/dist/services/obsidianRestAPI/methods/commandMethods.d.ts +22 -0
  75. package/dist/services/obsidianRestAPI/methods/commandMethods.js +31 -0
  76. package/dist/services/obsidianRestAPI/methods/openMethods.d.ts +16 -0
  77. package/dist/services/obsidianRestAPI/methods/openMethods.js +21 -0
  78. package/dist/services/obsidianRestAPI/methods/patchMethods.d.ts +37 -0
  79. package/dist/services/obsidianRestAPI/methods/patchMethods.js +94 -0
  80. package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.d.ts +42 -0
  81. package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.js +66 -0
  82. package/dist/services/obsidianRestAPI/methods/searchMethods.d.ts +25 -0
  83. package/dist/services/obsidianRestAPI/methods/searchMethods.js +36 -0
  84. package/dist/services/obsidianRestAPI/methods/vaultMethods.d.ts +58 -0
  85. package/dist/services/obsidianRestAPI/methods/vaultMethods.js +144 -0
  86. package/dist/services/obsidianRestAPI/service.d.ts +195 -0
  87. package/dist/services/obsidianRestAPI/service.js +379 -0
  88. package/dist/services/obsidianRestAPI/types.d.ts +127 -0
  89. package/dist/services/obsidianRestAPI/types.js +7 -0
  90. package/dist/services/obsidianRestAPI/vaultCache/index.d.ts +4 -0
  91. package/dist/services/obsidianRestAPI/vaultCache/index.js +4 -0
  92. package/dist/services/obsidianRestAPI/vaultCache/service.d.ts +88 -0
  93. package/dist/services/obsidianRestAPI/vaultCache/service.js +299 -0
  94. package/dist/types-global/errors.d.ts +73 -0
  95. package/dist/types-global/errors.js +71 -0
  96. package/dist/utils/index.d.ts +5 -8
  97. package/dist/utils/index.js +13 -9
  98. package/dist/utils/internal/asyncUtils.d.ts +54 -0
  99. package/dist/utils/internal/asyncUtils.js +101 -0
  100. package/dist/utils/internal/errorHandler.d.ts +176 -0
  101. package/dist/utils/internal/errorHandler.js +351 -0
  102. package/dist/utils/internal/index.d.ts +4 -0
  103. package/dist/utils/internal/index.js +4 -0
  104. package/dist/utils/internal/logger.d.ts +141 -0
  105. package/dist/utils/internal/logger.js +406 -0
  106. package/dist/utils/internal/requestContext.d.ts +83 -0
  107. package/dist/utils/internal/requestContext.js +72 -0
  108. package/dist/utils/metrics/index.d.ts +1 -0
  109. package/dist/utils/metrics/index.js +1 -0
  110. package/dist/utils/metrics/tokenCounter.d.ts +27 -0
  111. package/dist/utils/metrics/tokenCounter.js +128 -0
  112. package/dist/utils/obsidian/index.d.ts +5 -0
  113. package/dist/utils/obsidian/index.js +5 -0
  114. package/dist/utils/obsidian/obsidianApiUtils.d.ts +14 -0
  115. package/dist/utils/obsidian/obsidianApiUtils.js +29 -0
  116. package/dist/utils/obsidian/obsidianStatUtils.d.ts +68 -0
  117. package/dist/utils/obsidian/obsidianStatUtils.js +143 -0
  118. package/dist/utils/parsing/dateParser.d.ts +56 -0
  119. package/dist/utils/parsing/dateParser.js +104 -0
  120. package/dist/utils/parsing/index.d.ts +2 -0
  121. package/dist/utils/parsing/index.js +3 -0
  122. package/dist/utils/parsing/jsonParser.d.ts +80 -0
  123. package/dist/utils/parsing/jsonParser.js +133 -0
  124. package/dist/utils/security/idGenerator.d.ts +140 -0
  125. package/dist/utils/security/idGenerator.js +194 -0
  126. package/dist/utils/security/index.d.ts +3 -0
  127. package/dist/utils/security/index.js +3 -0
  128. package/dist/utils/security/rateLimiter.d.ts +156 -0
  129. package/dist/utils/security/rateLimiter.js +235 -0
  130. package/dist/utils/security/sanitization.d.ts +244 -0
  131. package/dist/utils/security/sanitization.js +599 -0
  132. package/package.json +58 -37
  133. package/dist/index.js.map +0 -1
  134. package/dist/mcp/handlers.d.ts +0 -29
  135. package/dist/mcp/handlers.js +0 -305
  136. package/dist/mcp/handlers.js.map +0 -1
  137. package/dist/mcp/index.d.ts +0 -6
  138. package/dist/mcp/index.js +0 -7
  139. package/dist/mcp/index.js.map +0 -1
  140. package/dist/mcp/server.d.ts +0 -18
  141. package/dist/mcp/server.js +0 -240
  142. package/dist/mcp/server.js.map +0 -1
  143. package/dist/mcp/types.d.ts +0 -70
  144. package/dist/mcp/types.js +0 -49
  145. package/dist/mcp/types.js.map +0 -1
  146. package/dist/obsidian/client.d.ts +0 -109
  147. package/dist/obsidian/client.js +0 -403
  148. package/dist/obsidian/client.js.map +0 -1
  149. package/dist/obsidian/errors.d.ts +0 -28
  150. package/dist/obsidian/errors.js +0 -75
  151. package/dist/obsidian/errors.js.map +0 -1
  152. package/dist/obsidian/index.d.ts +0 -6
  153. package/dist/obsidian/index.js +0 -7
  154. package/dist/obsidian/index.js.map +0 -1
  155. package/dist/obsidian/types.d.ts +0 -107
  156. package/dist/obsidian/types.js +0 -12
  157. package/dist/obsidian/types.js.map +0 -1
  158. package/dist/resources/index.d.ts +0 -13
  159. package/dist/resources/index.js +0 -15
  160. package/dist/resources/index.js.map +0 -1
  161. package/dist/resources/tags.d.ts +0 -39
  162. package/dist/resources/tags.js +0 -257
  163. package/dist/resources/tags.js.map +0 -1
  164. package/dist/resources/types.d.ts +0 -27
  165. package/dist/resources/types.js +0 -5
  166. package/dist/resources/types.js.map +0 -1
  167. package/dist/tools/base.d.ts +0 -46
  168. package/dist/tools/base.js +0 -88
  169. package/dist/tools/base.js.map +0 -1
  170. package/dist/tools/files/content.d.ts +0 -58
  171. package/dist/tools/files/content.js +0 -171
  172. package/dist/tools/files/content.js.map +0 -1
  173. package/dist/tools/files/index.d.ts +0 -14
  174. package/dist/tools/files/index.js +0 -22
  175. package/dist/tools/files/index.js.map +0 -1
  176. package/dist/tools/files/list.d.ts +0 -35
  177. package/dist/tools/files/list.js +0 -133
  178. package/dist/tools/files/list.js.map +0 -1
  179. package/dist/tools/index.d.ts +0 -21
  180. package/dist/tools/index.js +0 -31
  181. package/dist/tools/index.js.map +0 -1
  182. package/dist/tools/properties/index.d.ts +0 -14
  183. package/dist/tools/properties/index.js +0 -19
  184. package/dist/tools/properties/index.js.map +0 -1
  185. package/dist/tools/properties/manager.d.ts +0 -62
  186. package/dist/tools/properties/manager.js +0 -302
  187. package/dist/tools/properties/manager.js.map +0 -1
  188. package/dist/tools/properties/tools.d.ts +0 -47
  189. package/dist/tools/properties/tools.js +0 -239
  190. package/dist/tools/properties/tools.js.map +0 -1
  191. package/dist/tools/properties/types.d.ts +0 -141
  192. package/dist/tools/properties/types.js +0 -70
  193. package/dist/tools/properties/types.js.map +0 -1
  194. package/dist/tools/search/complex.d.ts +0 -38
  195. package/dist/tools/search/complex.js +0 -270
  196. package/dist/tools/search/complex.js.map +0 -1
  197. package/dist/tools/search/index.d.ts +0 -14
  198. package/dist/tools/search/index.js +0 -20
  199. package/dist/tools/search/index.js.map +0 -1
  200. package/dist/tools/search/simple.d.ts +0 -25
  201. package/dist/tools/search/simple.js +0 -127
  202. package/dist/tools/search/simple.js.map +0 -1
  203. package/dist/utils/errors.d.ts +0 -24
  204. package/dist/utils/errors.js +0 -59
  205. package/dist/utils/errors.js.map +0 -1
  206. package/dist/utils/idGenerator.d.ts +0 -15
  207. package/dist/utils/idGenerator.js +0 -21
  208. package/dist/utils/idGenerator.js.map +0 -1
  209. package/dist/utils/index.js.map +0 -1
  210. package/dist/utils/logging.d.ts +0 -245
  211. package/dist/utils/logging.js +0 -417
  212. package/dist/utils/logging.js.map +0 -1
  213. package/dist/utils/rate-limiting.d.ts +0 -50
  214. package/dist/utils/rate-limiting.js +0 -94
  215. package/dist/utils/rate-limiting.js.map +0 -1
  216. package/dist/utils/tokenization.d.ts +0 -28
  217. package/dist/utils/tokenization.js +0 -75
  218. package/dist/utils/tokenization.js.map +0 -1
  219. package/dist/utils/validation.d.ts +0 -22
  220. package/dist/utils/validation.js +0 -92
  221. package/dist/utils/validation.js.map +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "obsidian-mcp-server",
3
- "version": "1.5.8",
4
- "description": "Model Context Protocol (MCP) server designed for LLMs to interact with Obsidian vaults. Provides secure, token-aware tools for seamless knowledge base management through a standardized interface.",
3
+ "version": "2.0.2",
4
+ "description": "Obsidian Knowledge-Management MCP (Model Context Protocol) server that enables AI agents and development tools to interact with an Obsidian vault. It provides a comprehensive suite of tools for reading, writing, searching, and managing notes, tags, and frontmatter, acting as a bridge to the Obsidian Local REST API plugin.",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist"
@@ -10,63 +10,84 @@
10
10
  "obsidian-mcp-server": "dist/index.js"
11
11
  },
12
12
  "type": "module",
13
- "engines": {
14
- "node": ">=18.0.0"
15
- },
16
13
  "repository": {
17
14
  "type": "git",
18
- "url": "git+ssh://git@github.com/cyanheads/obsidian-mcp-server.git"
15
+ "url": "git+https://github.com/cyanheads/obsidian-mcp-server.git"
19
16
  },
20
17
  "bugs": {
21
18
  "url": "https://github.com/cyanheads/obsidian-mcp-server/issues"
22
19
  },
23
20
  "homepage": "https://github.com/cyanheads/obsidian-mcp-server#readme",
24
21
  "scripts": {
25
- "build": "tsc",
26
- "postbuild": "node -e \"if (process.platform !== 'win32') require('fs').chmodSync('dist/index.js', '755')\"",
22
+ "build": "tsc && node --loader ts-node/esm scripts/make-executable.ts dist/index.js",
27
23
  "start": "node dist/index.js",
28
- "start:stdio": "LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js",
29
- "start:http": "LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js",
30
- "dev": "tsc -w",
31
- "clean": "npx ts-node scripts/clean.ts",
32
- "rebuild": "npm run clean && npm run build",
33
- "tree": "npx ts-node --esm scripts/tree.ts"
24
+ "start:stdio": "MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js",
25
+ "start:http": "MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js",
26
+ "rebuild": "ts-node --esm scripts/clean.ts && npm run build",
27
+ "fetch:spec": "ts-node --esm scripts/fetch-openapi-spec.ts",
28
+ "docs:generate": "typedoc --tsconfig ./tsconfig.typedoc.json",
29
+ "tree": "ts-node --esm scripts/tree.ts",
30
+ "format": "prettier --write \"**/*.{ts,js,json,md,html,css}\"",
31
+ "inspect": "mcp-inspector --config mcp.json",
32
+ "inspect:stdio": "mcp-inspector --config mcp.json --server obsidian-mcp-server-stdio",
33
+ "inspect:http": "mcp-inspector --config mcp.json --server obsidian-mcp-server-http"
34
34
  },
35
35
  "dependencies": {
36
- "@modelcontextprotocol/sdk": "^1.10.2",
37
- "@types/node": "^22.15.3",
38
- "@typescript-eslint/eslint-plugin": "^8.31.1",
39
- "@typescript-eslint/parser": "^8.31.1",
36
+ "@modelcontextprotocol/inspector": "^0.14.0",
37
+ "@modelcontextprotocol/sdk": "^1.12.1",
38
+ "@hono/node-server": "^1.14.4",
39
+ "@types/jsonwebtoken": "^9.0.9",
40
+ "@types/sanitize-html": "^2.16.0",
41
+ "@types/validator": "13.15.1",
40
42
  "axios": "^1.9.0",
41
- "chrono-node": "^2.8.0",
43
+ "chrono-node": "2.8.0",
44
+ "date-fns": "^4.1.0",
42
45
  "dotenv": "^16.5.0",
43
- "eslint": "^9.25.1",
44
- "eslint-config-prettier": "^10.1.2",
45
- "eslint-plugin-prettier": "^5.2.6",
46
- "nanoid": "^5.1.5",
47
- "p-limit": "^6.2.0",
48
- "prettier": "^3.5.3",
46
+ "express": "^5.1.0",
47
+ "ignore": "^7.0.5",
48
+ "jose": "^6.0.11",
49
+ "jsonwebtoken": "^9.0.2",
50
+ "openai": "^5.3.0",
51
+ "partial-json": "^0.1.7",
52
+ "sanitize-html": "^2.17.0",
49
53
  "tiktoken": "^1.0.21",
54
+ "ts-node": "^10.9.2",
50
55
  "typescript": "^5.8.3",
56
+ "hono": "^4.7.11",
57
+ "validator": "13.15.15",
51
58
  "winston": "^3.17.0",
52
- "yaml": "^2.7.1",
53
- "zod": "^3.24.3"
59
+ "winston-daily-rotate-file": "^5.0.0",
60
+ "yargs": "^18.0.0",
61
+ "zod": "^3.25.63"
54
62
  },
55
63
  "keywords": [
56
64
  "mcp",
65
+ "model-context-protocol",
57
66
  "obsidian",
58
- "llm",
59
- "llm-agent",
67
+ "obsidian-md",
60
68
  "ai",
61
- "claude",
62
- "model-context-protocol",
63
- "mcp-server",
64
- "typescript",
65
- "template",
66
- "AI-integration",
69
+ "llm",
70
+ "agent",
71
+ "automation",
72
+ "api",
67
73
  "server",
68
- "knowledge-base"
74
+ "typescript",
75
+ "knowledge-management",
76
+ "note-taking",
77
+ "rest-api",
78
+ "integration"
69
79
  ],
70
80
  "author": "Casey Hand @cyanheads",
71
- "license": "Apache-2.0"
81
+ "license": "Apache-2.0",
82
+ "engines": {
83
+ "node": ">=16.0.0"
84
+ },
85
+ "devDependencies": {
86
+ "@types/express": "^5.0.3",
87
+ "@types/js-yaml": "^4.0.9",
88
+ "@types/node": "^24.0.1",
89
+ "js-yaml": "^4.1.0",
90
+ "prettier": "^3.5.3",
91
+ "typedoc": "^0.28.5"
92
+ }
72
93
  }
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,2CAA2C;AAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpC,mBAAmB;AACnB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC5C,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sDAAsD;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * MCP server request handlers
3
- */
4
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
5
- import { BaseToolHandler } from "../tools/base.js";
6
- /**
7
- * Set up tool listing handler
8
- * @param server The MCP server instance
9
- * @param toolHandlers The tool handlers to register
10
- */
11
- export declare function setupToolListingHandler(server: Server, toolHandlers: Map<string, BaseToolHandler<any>>): void;
12
- /**
13
- * Set up tool calling handler
14
- * @param server The MCP server instance
15
- * @param toolHandlers The tool handlers to register
16
- */
17
- export declare function setupToolCallingHandler(server: Server, toolHandlers: Map<string, BaseToolHandler<any>>): void;
18
- /**
19
- * Set up resource listing handler
20
- * @param server The MCP server instance
21
- * @param resources The resources to register
22
- */
23
- export declare function setupResourceListingHandler(server: Server, resources: Record<string, any>): void;
24
- /**
25
- * Set up resource reading handler
26
- * @param server The MCP server instance
27
- * @param resources The resources to register
28
- */
29
- export declare function setupResourceReadingHandler(server: Server, resources: Record<string, any>): void;
@@ -1,305 +0,0 @@
1
- import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js";
2
- import { ObsidianError } from "../utils/errors.js";
3
- import { createLogger, ErrorCategoryType } from "../utils/logging.js";
4
- import { rateLimiter } from "../utils/rate-limiting.js";
5
- import { validateToolArguments } from "../utils/validation.js";
6
- import { DEFAULT_TIMEOUT_CONFIG, McpErrorCode } from "./types.js";
7
- // Create a logger for request handlers
8
- const logger = createLogger('McpHandlers');
9
- /**
10
- * Helper function to safely mask sensitive data
11
- */
12
- function maskSensitiveData(data) {
13
- if (!data)
14
- return {};
15
- const sensitiveFields = ['password', 'token', 'secret', 'key', 'auth', 'credential'];
16
- const result = {};
17
- for (const [key, value] of Object.entries(data)) {
18
- const isSensitive = sensitiveFields.some(field => key.toLowerCase().includes(field.toLowerCase()));
19
- if (isSensitive) {
20
- result[key] = '********';
21
- }
22
- else if (value && typeof value === 'object' && !Array.isArray(value)) {
23
- result[key] = maskSensitiveData(value);
24
- }
25
- else {
26
- result[key] = value;
27
- }
28
- }
29
- return result;
30
- }
31
- /**
32
- * Set up tool listing handler
33
- * @param server The MCP server instance
34
- * @param toolHandlers The tool handlers to register
35
- */
36
- export function setupToolListingHandler(server, toolHandlers) {
37
- server.setRequestHandler(ListToolsRequestSchema, async () => {
38
- logger.debug('Handling ListToolsRequest');
39
- // Start performance timing
40
- logger.startTimer('list_tools');
41
- try {
42
- const tools = [];
43
- for (const handler of toolHandlers.values()) {
44
- tools.push(handler.getToolDescription());
45
- }
46
- // Log success and timing information
47
- const elapsedMs = logger.endTimer('list_tools', 'Listed tools');
48
- logger.logOperationResult(true, 'list_tools', elapsedMs, {
49
- toolCount: tools.length
50
- });
51
- return { tools };
52
- }
53
- catch (error) {
54
- // Log failure with timing information
55
- const elapsedMs = logger.endTimer('list_tools', 'Failed to list tools');
56
- logger.logOperationResult(false, 'list_tools', elapsedMs);
57
- const errorMessage = error instanceof Error ? error.message : String(error);
58
- logger.error('Failed to list available tools', {
59
- error: errorMessage,
60
- stack: error instanceof Error ? error.stack : undefined,
61
- errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
62
- });
63
- // Wrap in ObsidianError
64
- throw new ObsidianError(`Failed to list tools: ${errorMessage}`, McpErrorCode.INTERNAL_SERVER_ERROR, { originalError: errorMessage });
65
- }
66
- });
67
- }
68
- /**
69
- * Set up tool calling handler
70
- * @param server The MCP server instance
71
- * @param toolHandlers The tool handlers to register
72
- */
73
- export function setupToolCallingHandler(server, toolHandlers) {
74
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
75
- const { name, arguments: args } = request.params;
76
- const operationId = `call_tool_${name}_${Date.now()}`;
77
- logger.debug(`Handling CallToolRequest for tool: ${name}`, {
78
- toolName: name,
79
- operationId
80
- });
81
- // Start performance timing
82
- logger.startTimer(operationId);
83
- // Handle unknown tool
84
- const handler = toolHandlers.get(name);
85
- if (!handler) {
86
- const errorInfo = {
87
- toolName: name,
88
- errorCode: McpErrorCode.NOT_FOUND,
89
- errorCategory: ErrorCategoryType.CATEGORY_VALIDATION
90
- };
91
- logger.error(`Unknown tool requested: ${name}`, errorInfo);
92
- const elapsedMs = logger.endTimer(operationId);
93
- logger.logOperationResult(false, 'call_tool', elapsedMs, errorInfo);
94
- throw new ObsidianError(`Unknown tool: ${name}`, McpErrorCode.NOT_FOUND);
95
- }
96
- // Check rate limit
97
- try {
98
- rateLimiter.enforceRateLimit(name);
99
- }
100
- catch (error) {
101
- const errorInfo = {
102
- toolName: name,
103
- errorCode: McpErrorCode.RATE_LIMIT_EXCEEDED,
104
- errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
105
- };
106
- logger.warn(`Rate limit exceeded for tool: ${name}`, errorInfo);
107
- const elapsedMs = logger.endTimer(operationId);
108
- logger.logOperationResult(false, 'call_tool', elapsedMs, errorInfo);
109
- throw new ObsidianError(`Rate limit exceeded for tool: ${name}`, McpErrorCode.RATE_LIMIT_EXCEEDED);
110
- }
111
- // Add timeout handling
112
- const timeoutMs = DEFAULT_TIMEOUT_CONFIG.toolExecutionMs;
113
- let timeoutId = null; // Variable to hold the timeout ID
114
- const timeoutPromise = new Promise((_, reject) => {
115
- timeoutId = setTimeout(() => {
116
- timeoutId = null; // Clear the ID reference once the timeout executes
117
- const errorInfo = {
118
- toolName: name,
119
- timeoutMs,
120
- errorCode: McpErrorCode.TIMEOUT,
121
- errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
122
- };
123
- logger.error(`Tool execution timed out after ${timeoutMs}ms`, errorInfo);
124
- reject(new ObsidianError(`Tool execution timed out after ${timeoutMs}ms`, McpErrorCode.TIMEOUT));
125
- }, timeoutMs);
126
- });
127
- try {
128
- // Validate arguments against tool's schema
129
- const toolDescription = handler.getToolDescription();
130
- const validationResult = validateToolArguments(args, toolDescription.inputSchema);
131
- if (!validationResult.valid) {
132
- const errorInfo = {
133
- toolName: name,
134
- validationErrors: validationResult.errors,
135
- providedArgs: maskSensitiveData(args),
136
- errorCode: McpErrorCode.BAD_REQUEST,
137
- errorCategory: ErrorCategoryType.CATEGORY_VALIDATION
138
- };
139
- logger.error(`Invalid tool arguments for ${name}:`, errorInfo);
140
- const elapsedMs = logger.endTimer(operationId);
141
- logger.logOperationResult(false, 'call_tool', elapsedMs, errorInfo);
142
- throw new ObsidianError(`Invalid tool arguments: ${validationResult.errors.join(', ')}`, McpErrorCode.BAD_REQUEST);
143
- }
144
- // Log the tool execution
145
- logger.info(`Executing tool: ${name}`, {
146
- toolName: name,
147
- args: maskSensitiveData(args)
148
- });
149
- // Race between tool execution and timeout
150
- const content = await Promise.race([
151
- handler.runTool(args),
152
- timeoutPromise
153
- ]);
154
- // Log successful execution
155
- const elapsedMs = logger.endTimer(operationId);
156
- logger.logOperationResult(true, 'call_tool', elapsedMs, {
157
- toolName: name,
158
- contentLength: content.reduce((sum, item) => {
159
- return sum + (item.type === 'text' ? item.text.length : 0);
160
- }, 0)
161
- });
162
- return { content };
163
- }
164
- catch (error) {
165
- // Handle ObsidianError
166
- if (error instanceof ObsidianError) {
167
- // Check if the operation actually succeeded despite the error
168
- if (error.errorCode === McpErrorCode.SUCCESS_NO_CONTENT) {
169
- const elapsedMs = logger.endTimer(operationId);
170
- logger.logOperationResult(true, 'call_tool', elapsedMs, {
171
- toolName: name,
172
- status: 'success_no_content'
173
- });
174
- return {
175
- content: [{
176
- type: "text",
177
- text: "Operation completed successfully"
178
- }]
179
- };
180
- }
181
- // Log failure for other ObsidianErrors
182
- const errorInfo = {
183
- toolName: name,
184
- errorMessage: error.message,
185
- errorCode: error.errorCode,
186
- errorCategory: ErrorCategoryType.CATEGORY_BUSINESS_LOGIC,
187
- details: error.details ? JSON.stringify(error.details) : undefined
188
- };
189
- const elapsedMs = logger.endTimer(operationId);
190
- logger.logOperationResult(false, 'call_tool', elapsedMs, errorInfo);
191
- throw error;
192
- }
193
- // Enhanced error logging for other errors
194
- const errorMessage = error instanceof Error ? error.message : String(error);
195
- const errorStack = error instanceof Error ? error.stack : undefined;
196
- const errorInfo = {
197
- toolName: name,
198
- errorMessage,
199
- errorStack,
200
- errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
201
- };
202
- logger.error("Tool execution error:", errorInfo);
203
- const elapsedMs = logger.endTimer(operationId);
204
- logger.logOperationResult(false, 'call_tool', elapsedMs, errorInfo);
205
- throw new ObsidianError(`Tool '${name}' execution failed: ${errorMessage}`, McpErrorCode.INTERNAL_SERVER_ERROR, { originalError: errorMessage, stack: errorStack });
206
- }
207
- finally {
208
- // Ensure the timeout is cleared regardless of the outcome
209
- if (timeoutId) {
210
- clearTimeout(timeoutId);
211
- logger.debug(`Cleared timeout for tool: ${name}`, { operationId });
212
- }
213
- }
214
- });
215
- }
216
- /**
217
- * Set up resource listing handler
218
- * @param server The MCP server instance
219
- * @param resources The resources to register
220
- */
221
- export function setupResourceListingHandler(server, resources) {
222
- server.setRequestHandler(ListResourcesRequestSchema, async () => {
223
- logger.debug('Handling ListResourcesRequest');
224
- // Start performance timing
225
- logger.startTimer('list_resources');
226
- try {
227
- const resourceList = Object.values(resources).map(resource => resource.getResourceDescription());
228
- // Log success with timing information
229
- const elapsedMs = logger.endTimer('list_resources', 'Listed resources');
230
- logger.logOperationResult(true, 'list_resources', elapsedMs, {
231
- resourceCount: resourceList.length
232
- });
233
- return { resources: resourceList };
234
- }
235
- catch (error) {
236
- // Log failure with timing information
237
- const elapsedMs = logger.endTimer('list_resources', 'Failed to list resources');
238
- logger.logOperationResult(false, 'list_resources', elapsedMs);
239
- const errorMessage = error instanceof Error ? error.message : String(error);
240
- logger.error('Failed to list available resources', {
241
- error: errorMessage,
242
- stack: error instanceof Error ? error.stack : undefined,
243
- errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
244
- });
245
- // Wrap in ObsidianError
246
- throw new ObsidianError(`Failed to list resources: ${errorMessage}`, McpErrorCode.INTERNAL_SERVER_ERROR, { originalError: errorMessage });
247
- }
248
- });
249
- }
250
- /**
251
- * Set up resource reading handler
252
- * @param server The MCP server instance
253
- * @param resources The resources to register
254
- */
255
- export function setupResourceReadingHandler(server, resources) {
256
- server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
257
- const uri = request.params.uri;
258
- const operationId = `read_resource_${Date.now()}`;
259
- logger.debug(`Handling ReadResourceRequest for URI: ${uri}`, {
260
- resourceUri: uri,
261
- operationId
262
- });
263
- // Start performance timing
264
- logger.startTimer(operationId);
265
- const resource = resources[uri];
266
- if (!resource) {
267
- const errorInfo = {
268
- resourceUri: uri,
269
- errorCode: McpErrorCode.NOT_FOUND,
270
- errorCategory: ErrorCategoryType.CATEGORY_DATA_ACCESS
271
- };
272
- logger.error(`Resource not found: ${uri}`, errorInfo);
273
- const elapsedMs = logger.endTimer(operationId);
274
- logger.logOperationResult(false, 'read_resource', elapsedMs, errorInfo);
275
- throw new ObsidianError(`Resource not found: ${uri}`, McpErrorCode.NOT_FOUND);
276
- }
277
- try {
278
- logger.debug(`Found resource for URI: ${uri}`);
279
- const contents = await resource.getContent();
280
- // Log success with timing information
281
- const elapsedMs = logger.endTimer(operationId);
282
- logger.logOperationResult(true, 'read_resource', elapsedMs, {
283
- resourceUri: uri,
284
- contentItems: contents.length
285
- });
286
- return { contents };
287
- }
288
- catch (error) {
289
- // Log failure with timing information
290
- const errorMessage = error instanceof Error ? error.message : String(error);
291
- const errorStack = error instanceof Error ? error.stack : undefined;
292
- const errorInfo = {
293
- resourceUri: uri,
294
- errorMessage,
295
- errorStack,
296
- errorCategory: ErrorCategoryType.CATEGORY_DATA_ACCESS
297
- };
298
- logger.error(`Error reading resource: ${uri}`, errorInfo);
299
- const elapsedMs = logger.endTimer(operationId);
300
- logger.logOperationResult(false, 'read_resource', elapsedMs, errorInfo);
301
- throw new ObsidianError(`Failed to read resource: ${errorMessage}`, McpErrorCode.INTERNAL_SERVER_ERROR, { originalError: errorMessage, stack: errorStack });
302
- }
303
- });
304
- }
305
- //# sourceMappingURL=handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * MCP module exports
3
- */
4
- export * from './handlers.js';
5
- export * from './server.js';
6
- export * from './types.js';
package/dist/mcp/index.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * MCP module exports
3
- */
4
- export * from './handlers.js';
5
- export * from './server.js';
6
- export * from './types.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * MCP server implementation
3
- */
4
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
5
- /**
6
- * Initialize MCP server components
7
- */
8
- export declare function initializeServer(): Promise<Server>;
9
- /**
10
- * Set up graceful shutdown handling
11
- * @param server The MCP server instance
12
- * @param cleanupHandlers Additional cleanup handlers to run on shutdown
13
- */
14
- export declare function setupShutdownHandling(server: Server, cleanupHandlers?: (() => Promise<void> | void)[]): void;
15
- /**
16
- * Run the MCP server
17
- */
18
- export declare function run(): Promise<void>;