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.
- package/README.md +248 -104
- package/dist/config/index.d.ts +41 -0
- package/dist/config/index.js +191 -0
- package/dist/index.d.ts +1 -5
- package/dist/index.js +296 -18
- package/dist/mcp-server/server.d.ts +33 -0
- package/dist/mcp-server/server.js +211 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.d.ts +51 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.js +168 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.d.ts +19 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.js +91 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.d.ts +77 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.js +341 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.d.ts +18 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.js +69 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/logic.d.ts +64 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/logic.js +179 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/registration.d.ts +19 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/registration.js +96 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.js +2 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.d.ts +42 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.js +152 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.js +52 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/index.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/index.js +2 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/logic.d.ts +28 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/logic.js +161 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/registration.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/registration.js +52 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/logic.d.ts +87 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/logic.js +216 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/registration.d.ts +20 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/registration.js +101 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.d.ts +255 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.js +583 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.d.ts +22 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.js +111 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.d.ts +183 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.js +490 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.d.ts +21 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.js +108 -0
- package/dist/mcp-server/transports/authentication/authContext.d.ts +33 -0
- package/dist/mcp-server/transports/authentication/authContext.js +24 -0
- package/dist/mcp-server/transports/authentication/authMiddleware.d.ts +30 -0
- package/dist/mcp-server/transports/authentication/authMiddleware.js +145 -0
- package/dist/mcp-server/transports/authentication/authUtils.d.ts +18 -0
- package/dist/mcp-server/transports/authentication/authUtils.js +45 -0
- package/dist/mcp-server/transports/authentication/oauthMiddleware.d.ts +24 -0
- package/dist/mcp-server/transports/authentication/oauthMiddleware.js +109 -0
- package/dist/mcp-server/transports/authentication/types.d.ts +17 -0
- package/dist/mcp-server/transports/authentication/types.js +5 -0
- package/dist/mcp-server/transports/httpTransport.d.ts +24 -0
- package/dist/mcp-server/transports/httpTransport.js +496 -0
- package/dist/mcp-server/transports/stdioTransport.d.ts +42 -0
- package/dist/mcp-server/transports/stdioTransport.js +63 -0
- package/dist/services/obsidianRestAPI/index.d.ts +15 -0
- package/dist/services/obsidianRestAPI/index.js +17 -0
- package/dist/services/obsidianRestAPI/methods/activeFileMethods.d.ts +38 -0
- package/dist/services/obsidianRestAPI/methods/activeFileMethods.js +62 -0
- package/dist/services/obsidianRestAPI/methods/commandMethods.d.ts +22 -0
- package/dist/services/obsidianRestAPI/methods/commandMethods.js +31 -0
- package/dist/services/obsidianRestAPI/methods/openMethods.d.ts +16 -0
- package/dist/services/obsidianRestAPI/methods/openMethods.js +21 -0
- package/dist/services/obsidianRestAPI/methods/patchMethods.d.ts +37 -0
- package/dist/services/obsidianRestAPI/methods/patchMethods.js +94 -0
- package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.d.ts +42 -0
- package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.js +66 -0
- package/dist/services/obsidianRestAPI/methods/searchMethods.d.ts +25 -0
- package/dist/services/obsidianRestAPI/methods/searchMethods.js +36 -0
- package/dist/services/obsidianRestAPI/methods/vaultMethods.d.ts +58 -0
- package/dist/services/obsidianRestAPI/methods/vaultMethods.js +144 -0
- package/dist/services/obsidianRestAPI/service.d.ts +195 -0
- package/dist/services/obsidianRestAPI/service.js +379 -0
- package/dist/services/obsidianRestAPI/types.d.ts +127 -0
- package/dist/services/obsidianRestAPI/types.js +7 -0
- package/dist/services/obsidianRestAPI/vaultCache/index.d.ts +4 -0
- package/dist/services/obsidianRestAPI/vaultCache/index.js +4 -0
- package/dist/services/obsidianRestAPI/vaultCache/service.d.ts +88 -0
- package/dist/services/obsidianRestAPI/vaultCache/service.js +299 -0
- package/dist/types-global/errors.d.ts +73 -0
- package/dist/types-global/errors.js +71 -0
- package/dist/utils/index.d.ts +5 -8
- package/dist/utils/index.js +13 -9
- package/dist/utils/internal/asyncUtils.d.ts +54 -0
- package/dist/utils/internal/asyncUtils.js +101 -0
- package/dist/utils/internal/errorHandler.d.ts +176 -0
- package/dist/utils/internal/errorHandler.js +351 -0
- package/dist/utils/internal/index.d.ts +4 -0
- package/dist/utils/internal/index.js +4 -0
- package/dist/utils/internal/logger.d.ts +141 -0
- package/dist/utils/internal/logger.js +406 -0
- package/dist/utils/internal/requestContext.d.ts +83 -0
- package/dist/utils/internal/requestContext.js +72 -0
- package/dist/utils/metrics/index.d.ts +1 -0
- package/dist/utils/metrics/index.js +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +27 -0
- package/dist/utils/metrics/tokenCounter.js +128 -0
- package/dist/utils/obsidian/index.d.ts +5 -0
- package/dist/utils/obsidian/index.js +5 -0
- package/dist/utils/obsidian/obsidianApiUtils.d.ts +14 -0
- package/dist/utils/obsidian/obsidianApiUtils.js +29 -0
- package/dist/utils/obsidian/obsidianStatUtils.d.ts +68 -0
- package/dist/utils/obsidian/obsidianStatUtils.js +143 -0
- package/dist/utils/parsing/dateParser.d.ts +56 -0
- package/dist/utils/parsing/dateParser.js +104 -0
- package/dist/utils/parsing/index.d.ts +2 -0
- package/dist/utils/parsing/index.js +3 -0
- package/dist/utils/parsing/jsonParser.d.ts +80 -0
- package/dist/utils/parsing/jsonParser.js +133 -0
- package/dist/utils/security/idGenerator.d.ts +140 -0
- package/dist/utils/security/idGenerator.js +194 -0
- package/dist/utils/security/index.d.ts +3 -0
- package/dist/utils/security/index.js +3 -0
- package/dist/utils/security/rateLimiter.d.ts +156 -0
- package/dist/utils/security/rateLimiter.js +235 -0
- package/dist/utils/security/sanitization.d.ts +244 -0
- package/dist/utils/security/sanitization.js +599 -0
- package/package.json +58 -37
- package/dist/index.js.map +0 -1
- package/dist/mcp/handlers.d.ts +0 -29
- package/dist/mcp/handlers.js +0 -305
- package/dist/mcp/handlers.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -6
- package/dist/mcp/index.js +0 -7
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -18
- package/dist/mcp/server.js +0 -240
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -70
- package/dist/mcp/types.js +0 -49
- package/dist/mcp/types.js.map +0 -1
- package/dist/obsidian/client.d.ts +0 -109
- package/dist/obsidian/client.js +0 -403
- package/dist/obsidian/client.js.map +0 -1
- package/dist/obsidian/errors.d.ts +0 -28
- package/dist/obsidian/errors.js +0 -75
- package/dist/obsidian/errors.js.map +0 -1
- package/dist/obsidian/index.d.ts +0 -6
- package/dist/obsidian/index.js +0 -7
- package/dist/obsidian/index.js.map +0 -1
- package/dist/obsidian/types.d.ts +0 -107
- package/dist/obsidian/types.js +0 -12
- package/dist/obsidian/types.js.map +0 -1
- package/dist/resources/index.d.ts +0 -13
- package/dist/resources/index.js +0 -15
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/tags.d.ts +0 -39
- package/dist/resources/tags.js +0 -257
- package/dist/resources/tags.js.map +0 -1
- package/dist/resources/types.d.ts +0 -27
- package/dist/resources/types.js +0 -5
- package/dist/resources/types.js.map +0 -1
- package/dist/tools/base.d.ts +0 -46
- package/dist/tools/base.js +0 -88
- package/dist/tools/base.js.map +0 -1
- package/dist/tools/files/content.d.ts +0 -58
- package/dist/tools/files/content.js +0 -171
- package/dist/tools/files/content.js.map +0 -1
- package/dist/tools/files/index.d.ts +0 -14
- package/dist/tools/files/index.js +0 -22
- package/dist/tools/files/index.js.map +0 -1
- package/dist/tools/files/list.d.ts +0 -35
- package/dist/tools/files/list.js +0 -133
- package/dist/tools/files/list.js.map +0 -1
- package/dist/tools/index.d.ts +0 -21
- package/dist/tools/index.js +0 -31
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/properties/index.d.ts +0 -14
- package/dist/tools/properties/index.js +0 -19
- package/dist/tools/properties/index.js.map +0 -1
- package/dist/tools/properties/manager.d.ts +0 -62
- package/dist/tools/properties/manager.js +0 -302
- package/dist/tools/properties/manager.js.map +0 -1
- package/dist/tools/properties/tools.d.ts +0 -47
- package/dist/tools/properties/tools.js +0 -239
- package/dist/tools/properties/tools.js.map +0 -1
- package/dist/tools/properties/types.d.ts +0 -141
- package/dist/tools/properties/types.js +0 -70
- package/dist/tools/properties/types.js.map +0 -1
- package/dist/tools/search/complex.d.ts +0 -38
- package/dist/tools/search/complex.js +0 -270
- package/dist/tools/search/complex.js.map +0 -1
- package/dist/tools/search/index.d.ts +0 -14
- package/dist/tools/search/index.js +0 -20
- package/dist/tools/search/index.js.map +0 -1
- package/dist/tools/search/simple.d.ts +0 -25
- package/dist/tools/search/simple.js +0 -127
- package/dist/tools/search/simple.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -24
- package/dist/utils/errors.js +0 -59
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/idGenerator.d.ts +0 -15
- package/dist/utils/idGenerator.js +0 -21
- package/dist/utils/idGenerator.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -245
- package/dist/utils/logging.js +0 -417
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/rate-limiting.d.ts +0 -50
- package/dist/utils/rate-limiting.js +0 -94
- package/dist/utils/rate-limiting.js.map +0 -1
- package/dist/utils/tokenization.d.ts +0 -28
- package/dist/utils/tokenization.js +0 -75
- package/dist/utils/tokenization.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -22
- package/dist/utils/validation.js +0 -92
- 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": "
|
|
4
|
-
"description": "Model Context Protocol
|
|
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+
|
|
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": "
|
|
29
|
-
"start:http": "
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"tree": "
|
|
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/
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
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": "
|
|
43
|
+
"chrono-node": "2.8.0",
|
|
44
|
+
"date-fns": "^4.1.0",
|
|
42
45
|
"dotenv": "^16.5.0",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
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
|
-
"
|
|
53
|
-
"
|
|
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
|
-
"
|
|
59
|
-
"llm-agent",
|
|
67
|
+
"obsidian-md",
|
|
60
68
|
"ai",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"template",
|
|
66
|
-
"AI-integration",
|
|
69
|
+
"llm",
|
|
70
|
+
"agent",
|
|
71
|
+
"automation",
|
|
72
|
+
"api",
|
|
67
73
|
"server",
|
|
68
|
-
"
|
|
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"}
|
package/dist/mcp/handlers.d.ts
DELETED
|
@@ -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;
|
package/dist/mcp/handlers.js
DELETED
|
@@ -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
|
package/dist/mcp/handlers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/index.d.ts
DELETED
package/dist/mcp/index.js
DELETED
package/dist/mcp/index.js.map
DELETED
|
@@ -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"}
|
package/dist/mcp/server.d.ts
DELETED
|
@@ -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>;
|