obsidian-mcp-server 1.5.6 → 1.5.8

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 (127) hide show
  1. package/README.md +75 -211
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/mcp/handlers.d.ts +29 -0
  5. package/dist/mcp/handlers.js.map +1 -0
  6. package/{src/mcp/index.ts → dist/mcp/index.d.ts} +0 -1
  7. package/dist/mcp/index.js.map +1 -0
  8. package/dist/mcp/server.d.ts +18 -0
  9. package/dist/mcp/server.js.map +1 -0
  10. package/dist/mcp/types.d.ts +70 -0
  11. package/dist/mcp/types.js.map +1 -0
  12. package/dist/obsidian/client.d.ts +109 -0
  13. package/dist/obsidian/client.js.map +1 -0
  14. package/dist/obsidian/errors.d.ts +28 -0
  15. package/dist/obsidian/errors.js.map +1 -0
  16. package/{src/obsidian/index.ts → dist/obsidian/index.d.ts} +0 -1
  17. package/dist/obsidian/index.js.map +1 -0
  18. package/{src/obsidian/types.ts → dist/obsidian/types.d.ts} +43 -60
  19. package/dist/obsidian/types.js.map +1 -0
  20. package/{src/resources/index.ts → dist/resources/index.d.ts} +1 -5
  21. package/dist/resources/index.js.map +1 -0
  22. package/dist/resources/tags.d.ts +39 -0
  23. package/dist/resources/tags.js.map +1 -0
  24. package/{src/resources/types.ts → dist/resources/types.d.ts} +10 -13
  25. package/dist/resources/types.js.map +1 -0
  26. package/dist/tools/base.d.ts +46 -0
  27. package/dist/tools/base.js.map +1 -0
  28. package/dist/tools/files/content.d.ts +58 -0
  29. package/dist/tools/files/content.js.map +1 -0
  30. package/dist/tools/files/index.d.ts +14 -0
  31. package/dist/tools/files/index.js.map +1 -0
  32. package/dist/tools/files/list.d.ts +35 -0
  33. package/dist/tools/files/list.js.map +1 -0
  34. package/dist/tools/index.d.ts +21 -0
  35. package/dist/tools/index.js.map +1 -0
  36. package/{src/tools/properties/index.ts → dist/tools/properties/index.d.ts} +1 -8
  37. package/dist/tools/properties/index.js.map +1 -0
  38. package/dist/tools/properties/manager.d.ts +62 -0
  39. package/dist/tools/properties/manager.js.map +1 -0
  40. package/dist/tools/properties/tools.d.ts +47 -0
  41. package/dist/tools/properties/tools.js.map +1 -0
  42. package/dist/tools/properties/types.d.ts +141 -0
  43. package/dist/tools/properties/types.js.map +1 -0
  44. package/dist/tools/search/complex.d.ts +38 -0
  45. package/dist/tools/search/complex.js.map +1 -0
  46. package/{src/tools/search/index.ts → dist/tools/search/index.d.ts} +1 -9
  47. package/dist/tools/search/index.js.map +1 -0
  48. package/dist/tools/search/simple.d.ts +25 -0
  49. package/dist/tools/search/simple.js.map +1 -0
  50. package/dist/utils/errors.d.ts +24 -0
  51. package/dist/utils/errors.js.map +1 -0
  52. package/{src/utils/idGenerator.ts → dist/utils/idGenerator.d.ts} +2 -9
  53. package/dist/utils/idGenerator.js.map +1 -0
  54. package/dist/utils/index.js.map +1 -0
  55. package/dist/utils/logging.d.ts +245 -0
  56. package/dist/utils/logging.js.map +1 -0
  57. package/dist/utils/rate-limiting.d.ts +50 -0
  58. package/dist/utils/rate-limiting.js.map +1 -0
  59. package/dist/utils/tokenization.d.ts +28 -0
  60. package/dist/utils/tokenization.js.map +1 -0
  61. package/dist/utils/validation.d.ts +22 -0
  62. package/dist/utils/validation.js.map +1 -0
  63. package/package.json +33 -19
  64. package/.github/workflows/publish.yml +0 -35
  65. package/Dockerfile +0 -63
  66. package/debug.js +0 -98
  67. package/docs/tree.md +0 -67
  68. package/env.json +0 -42
  69. package/mcp-client-config.example.json +0 -23
  70. package/repomix.config.json +0 -20
  71. package/scripts/clean.ts +0 -103
  72. package/scripts/tree.ts +0 -599
  73. package/src/index.ts +0 -23
  74. package/src/mcp/handlers.ts +0 -410
  75. package/src/mcp/server.ts +0 -288
  76. package/src/mcp/types.ts +0 -112
  77. package/src/obsidian/client.ts +0 -505
  78. package/src/obsidian/errors.ts +0 -105
  79. package/src/resources/tags.ts +0 -283
  80. package/src/tools/base.ts +0 -123
  81. package/src/tools/files/content.ts +0 -206
  82. package/src/tools/files/index.ts +0 -31
  83. package/src/tools/files/list.ts +0 -150
  84. package/src/tools/index.ts +0 -38
  85. package/src/tools/properties/manager.ts +0 -370
  86. package/src/tools/properties/tools.ts +0 -280
  87. package/src/tools/properties/types.ts +0 -117
  88. package/src/tools/search/complex.ts +0 -303
  89. package/src/tools/search/simple.ts +0 -147
  90. package/src/utils/errors.ts +0 -69
  91. package/src/utils/logging.ts +0 -558
  92. package/src/utils/rate-limiting.ts +0 -114
  93. package/src/utils/tokenization.ts +0 -85
  94. package/src/utils/validation.ts +0 -105
  95. package/tsconfig.json +0 -17
  96. /package/{build → dist}/index.js +0 -0
  97. /package/{build → dist}/mcp/handlers.js +0 -0
  98. /package/{build → dist}/mcp/index.js +0 -0
  99. /package/{build → dist}/mcp/server.js +0 -0
  100. /package/{build → dist}/mcp/types.js +0 -0
  101. /package/{build → dist}/obsidian/client.js +0 -0
  102. /package/{build → dist}/obsidian/errors.js +0 -0
  103. /package/{build → dist}/obsidian/index.js +0 -0
  104. /package/{build → dist}/obsidian/types.js +0 -0
  105. /package/{build → dist}/resources/index.js +0 -0
  106. /package/{build → dist}/resources/tags.js +0 -0
  107. /package/{build → dist}/resources/types.js +0 -0
  108. /package/{build → dist}/tools/base.js +0 -0
  109. /package/{build → dist}/tools/files/content.js +0 -0
  110. /package/{build → dist}/tools/files/index.js +0 -0
  111. /package/{build → dist}/tools/files/list.js +0 -0
  112. /package/{build → dist}/tools/index.js +0 -0
  113. /package/{build → dist}/tools/properties/index.js +0 -0
  114. /package/{build → dist}/tools/properties/manager.js +0 -0
  115. /package/{build → dist}/tools/properties/tools.js +0 -0
  116. /package/{build → dist}/tools/properties/types.js +0 -0
  117. /package/{build → dist}/tools/search/complex.js +0 -0
  118. /package/{build → dist}/tools/search/index.js +0 -0
  119. /package/{build → dist}/tools/search/simple.js +0 -0
  120. /package/{build → dist}/utils/errors.js +0 -0
  121. /package/{build → dist}/utils/idGenerator.js +0 -0
  122. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
  123. /package/{build → dist}/utils/index.js +0 -0
  124. /package/{build → dist}/utils/logging.js +0 -0
  125. /package/{build → dist}/utils/rate-limiting.js +0 -0
  126. /package/{build → dist}/utils/tokenization.js +0 -0
  127. /package/{build → dist}/utils/validation.js +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.8.3-blue.svg)](https://www.typescriptlang.org/)
4
4
  [![Model Context Protocol](https://img.shields.io/badge/MCP-1.10.2-green.svg)](https://modelcontextprotocol.io/)
5
- [![Version](https://img.shields.io/badge/Version-1.5.6-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5
+ [![Version](https://img.shields.io/badge/Version-1.5.8-blue.svg)](https://opensource.org/licenses/Apache-2.0)
6
6
  [![Status](https://img.shields.io/badge/Status-Stable-green.svg)]()
7
7
  [![GitHub](https://img.shields.io/github/stars/cyanheads/obsidian-mcp-server?style=social)](https://github.com/cyanheads/obsidian-mcp-server)
8
8
 
@@ -10,55 +10,55 @@ A Model Context Protocol server designed for LLMs to interact with Obsidian vaul
10
10
 
11
11
  The Model Context Protocol (MCP) enables AI models to interact with external tools and resources through a standardized interface.
12
12
 
13
- Requires the Local REST API plugin in Obsidian.
13
+ Requires the [Local REST API plugin](https://github.com/coddingtonbear/obsidian-local-rest-api) in Obsidian.
14
14
 
15
- ## Features
15
+ ## 📋 Table of Contents
16
16
 
17
- ### File Operations
17
+ [Features](#-features) | [Installation](#-installation) | [Configuration](#-configuration) |
18
+ [Tools](#-tools) | [Resources](#-resources) | [Project Structure](#-project-structure) |
19
+ [Contributing](#-contributing) | [Publishing](#-publishing) | [License](#-license)
18
20
 
19
- - Atomic file/directory operations with validation
20
- - Resource monitoring and cleanup
21
- - Error handling and graceful failure
21
+ ## Features
22
22
 
23
- ### Search System
23
+ - **File Operations**: Atomic file/directory operations with validation, resource monitoring, and error handling.
24
+ - **Search System**: Full-text search with configurable context, advanced JsonLogic queries, glob patterns, and frontmatter field support.
25
+ - **Property Management**: YAML frontmatter parsing, intelligent merging, automatic timestamps, and custom field support.
26
+ - **Security & Performance**: API key authentication, rate limiting, SSL options, resource monitoring, and graceful shutdown.
24
27
 
25
- - Full-text search with configurable context
26
- - Advanced JsonLogic queries for files, tags, and metadata
27
- - Support for glob patterns and frontmatter fields
28
+ ## 🚀 Installation
28
29
 
29
- ### Property Management
30
+ Note: Requires Node.js and the [Local REST API plugin](https://github.com/coddingtonbear/obsidian-local-rest-api) enabled in Obsidian.
30
31
 
31
- - YAML frontmatter parsing and intelligent merging
32
- - Automatic timestamps (created by Obsidian, modified by server)
33
- - Custom field support
32
+ ### Option 1: Clone and Build (for development or direct use)
34
33
 
35
- ### Security & Performance
34
+ 1. Enable the Local REST API plugin in Obsidian.
35
+ 2. Clone the repository, install dependencies, and build the project:
36
+ ```bash
37
+ git clone git@github.com:cyanheads/obsidian-mcp-server.git
38
+ cd obsidian-mcp-server
39
+ npm install
40
+ npm run build
41
+ ```
42
+ 3. Configure the server using environment variables (see Configuration section below).
36
43
 
37
- - API key auth with rate limiting and SSL options
38
- - Resource monitoring and health checks
39
- - Graceful shutdown handling
44
+ 4. Configure your MCP client settings (e.g., `claude_desktop_config.json` or `cline_mcp_settings.json`) to include the server. See the Configuration section for details.
40
45
 
41
- ## Installation
46
+ ### Option 2: Install via npm (as a dependency or globally)
42
47
 
43
- Note: Requires Node.js
48
+ 1. Enable the Local REST API plugin in Obsidian.
49
+ 2. Install the package using npm:
44
50
 
45
- 1. Enable Local REST API plugin in Obsidian
46
- 2. Clone and build:
51
+ ```bash
52
+ # Install locally (e.g., within another project)
53
+ npm install obsidian-mcp-server
47
54
 
48
- ```bash
49
- git clone git@github.com:cyanheads/obsidian-mcp-server.git
50
- cd obsidian-mcp-server
51
- npm install
52
- npm run build
53
- ```
54
-
55
- Or install from npm:
55
+ # Or install globally
56
+ npm install -g obsidian-mcp-server
57
+ ```
56
58
 
57
- ```bash
58
- npm install obsidian-mcp-server
59
- ```
59
+ 3. Configure your MCP client settings (e.g., `claude_desktop_config.json` or `cline_mcp_settings.json`) to include the server. See the Configuration section for details.
60
60
 
61
- ## Configuration
61
+ ## ⚙️ Configuration
62
62
 
63
63
  Add to your MCP client settings (e.g., `claude_desktop_config.json` or `cline_mcp_settings.json`):
64
64
 
@@ -67,7 +67,7 @@ Add to your MCP client settings (e.g., `claude_desktop_config.json` or `cline_mc
67
67
  "mcpServers": {
68
68
  "obsidian-mcp-server": {
69
69
  "command": "node",
70
- "args": ["/path/to/obsidian-mcp-server/build/index.js"],
70
+ "args": ["/path/to/obsidian-mcp-server/dist/index.js"],
71
71
  "env": {
72
72
  "OBSIDIAN_API_KEY": "your_api_key_here",
73
73
  "VERIFY_SSL": "false",
@@ -86,35 +86,42 @@ Add to your MCP client settings (e.g., `claude_desktop_config.json` or `cline_mc
86
86
  }
87
87
  ```
88
88
 
89
- Environment Variables:
90
-
91
- Required:
92
-
93
- - `OBSIDIAN_API_KEY`: Your API key from Obsidian's Local REST API plugin settings
94
-
95
- Connection Settings:
96
-
97
- - `VERIFY_SSL`: Enable SSL certificate verification (default: false) # This must be set to false for self-signed certificates. If you are running locally or don't understand what this means, this should be set to false.
98
- - `OBSIDIAN_PROTOCOL`: Protocol to use (default: "https")
99
- - `OBSIDIAN_HOST`: Host address (default: "127.0.0.1")
100
- - `OBSIDIAN_PORT`: Port number (default: 27124)
101
-
102
- Request Limits:
103
-
104
- - `REQUEST_TIMEOUT`: Request timeout in milliseconds (default: 5000)
105
- - `MAX_CONTENT_LENGTH`: Maximum response content length in bytes (default: 52428800 [50MB])
106
- - `MAX_BODY_LENGTH`: Maximum request body length in bytes (default: 52428800 [50MB])
107
-
108
- Rate Limiting:
109
-
110
- - `RATE_LIMIT_WINDOW_MS`: Rate limit window in milliseconds (default: 900000 [15 minutes])
111
- - `RATE_LIMIT_MAX_REQUESTS`: Maximum requests per window (default: 200)
112
-
113
- Tool Execution:
114
-
115
- - `TOOL_TIMEOUT_MS`: Tool execution timeout in milliseconds (default: 60000 [1 minute])
116
-
117
- ## Project Structure
89
+ **Environment Variables:**
90
+
91
+ - `OBSIDIAN_API_KEY` (Required): Your API key from Obsidian's Local REST API plugin settings.
92
+ - `VERIFY_SSL` (Default: `false`): Enable SSL verification. Set to `false` for self-signed certificates or local use.
93
+ - `OBSIDIAN_PROTOCOL` (Default: `"https"`): Protocol (`http` or `https`).
94
+ - `OBSIDIAN_HOST` (Default: `"127.0.0.1"`): Host address.
95
+ - `OBSIDIAN_PORT` (Default: `27124`): Port number.
96
+ - `REQUEST_TIMEOUT` (Default: `5000`): Request timeout (ms).
97
+ - `MAX_CONTENT_LENGTH` (Default: `52428800` [50MB]): Max response content length (bytes).
98
+ - `MAX_BODY_LENGTH` (Default: `52428800` [50MB]): Max request body length (bytes).
99
+ - `RATE_LIMIT_WINDOW_MS` (Default: `900000` [15 min]): Rate limit window (ms).
100
+ - `RATE_LIMIT_MAX_REQUESTS` (Default: `200`): Max requests per window.
101
+ - `TOOL_TIMEOUT_MS` (Default: `60000` [1 min]): Tool execution timeout (ms).
102
+
103
+ ## 🛠️ Tools
104
+
105
+ | Tool | Description | Parameters |
106
+ | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
107
+ | **obsidian_list_files_in_vault** | Lists all files and directories within the root of your Obsidian vault. Returns a hierarchical structure detailing files, folders, and their types. | None |
108
+ | **obsidian_list_files_in_dir** | Lists files and directories within a specific folder in your Obsidian vault. Returns a hierarchical structure. Note: Empty directories may not be included in the results. Useful for exploring vault organization. | `dirpath*`: Path to list files from (relative to vault root). Note that empty directories will not be returned. |
109
+ | **obsidian_get_file_contents** | Retrieves the full content of a specified file within your Obsidian vault. Supports various readable file formats. | `filepath*`: Path to the relevant file (relative to your vault root). |
110
+ | **obsidian_append_content** | Appends the provided content to the end of a specified file in the vault. If the file does not exist, it will be created. | `filepath*`: Path to the file (relative to vault root)<br>`content*`: Content to append to the file |
111
+ | **obsidian_update_content** | Overwrites the entire content of a specified file in the vault with the provided content. If the file does not exist, it will be created. | `filepath*`: Path to the file (relative to vault root)<br>`content*`: The new, complete content for the file (overwrites existing content). |
112
+ | **obsidian_find_in_file** | Performs a full-text search across all files in your Obsidian vault. Returns matching files with context around each match. If more than 5 files match, only filenames and match counts are returned to avoid excessive output. Ideal for locating specific text, tags, or patterns. | `query*`: Text pattern to search for. Can include tags, keywords, or phrases.<br>`contextLength`: Number of characters surrounding each match to provide context (default: 10). |
113
+ | **obsidian_complex_search** | Finds files based on path patterns using JsonLogic queries. Primarily supports `glob` for pattern matching (e.g., '\*.md') and `var` for accessing the 'path' variable. Note: For content-based searches (full-text, tags within content, dates), use `obsidian_find_in_file`. | `query*`: A JsonLogic query object targeting file paths. Example: `{"glob": ["*.md", {"var": "path"}]}` matches all markdown files. |
114
+ | **obsidian_get_tags** | Retrieves all tags defined in the YAML frontmatter of markdown files within your Obsidian vault, along with their usage counts and associated file paths. Optionally, limit the search to a specific folder. | `path`: Optional folder path (relative to vault root) to restrict the tag search. |
115
+ | **obsidian_get_properties** | Retrieves properties (like title, tags, status) from the YAML frontmatter of a specified Obsidian note. Returns all defined properties, including any custom fields. | `filepath*`: Path to the note file (relative to vault root) |
116
+ | **obsidian_update_properties** | Updates properties within the YAML frontmatter of a specified Obsidian note. By default, array properties (like tags, type, status) are merged; use the 'replace' option to overwrite them instead. Handles custom fields and manages timestamps automatically. See schema for supported standard fields (title, author, tags, status, etc.). | `filepath*`: Path to the note file (relative to vault root)<br>`properties*`: Properties to update<br>`replace`: If true, array properties (like tags, status) will be completely replaced with the provided values instead of being merged with existing values. Defaults to false (merge). |
117
+
118
+ ## 🔗 Resources
119
+
120
+ | Resource | Description | Returns |
121
+ | ------------------- | ----------------------------------------------------------------------- | ---------------- |
122
+ | **obsidian://tags** | List of all tags used across the Obsidian vault with their usage counts | application/json |
123
+
124
+ ## 📁 Project Structure
118
125
 
119
126
  The project follows a modular architecture with clear separation of concerns:
120
127
 
@@ -131,140 +138,7 @@ src/
131
138
  └── utils/ # Shared utilities
132
139
  ```
133
140
 
134
- ## Tools
135
-
136
- ### File Management
137
-
138
- ```typescript
139
- // List vault contents
140
- obsidian_list_files_in_vault: {
141
- }
142
-
143
- // List directory contents
144
- obsidian_list_files_in_dir: {
145
- dirpath: string; // Path relative to vault root
146
- }
147
-
148
- // Get file contents
149
- obsidian_get_file_contents: {
150
- filepath: string; // Path relative to vault root
151
- }
152
- ```
153
-
154
- ### Search Operations
155
-
156
- ```typescript
157
- // Text search with context
158
- obsidian_find_in_file: {
159
- query: string,
160
- contextLength?: number // Default: 10
161
- }
162
-
163
- // Advanced search with JsonLogic
164
- obsidian_complex_search: {
165
- query: JsonLogicQuery
166
- // Examples:
167
- // Find by tag:
168
- // {"in": ["#mytag", {"var": "frontmatter.tags"}]}
169
- //
170
- // Find markdown files in a directory:
171
- // {"glob": ["docs/*.md", {"var": "path"}]}
172
- //
173
- // Combine conditions:
174
- // {"and": [
175
- // {"glob": ["*.md", {"var": "path"}]},
176
- // {"in": ["#mytag", {"var": "frontmatter.tags"}]}
177
- // ]}
178
- }
179
-
180
- // Get all tags in vault or directory
181
- obsidian_get_tags: {
182
- path?: string // Optional: limit to specific directory
183
- }
184
- ```
185
-
186
- ### Content Modification
187
-
188
- ```typescript
189
- // Append to file
190
- obsidian_append_content: {
191
- filepath: string, // Path relative to vault root
192
- content: string // Content to append
193
- }
194
-
195
- // Update file content
196
- obsidian_patch_content: {
197
- filepath: string, // Path relative to vault root
198
- content: string // New content (replaces existing)
199
- }
200
- ```
201
-
202
- ### Property Management
203
-
204
- ```typescript
205
- // Get note properties
206
- obsidian_get_properties: {
207
- filepath: string // Path relative to vault root
208
- }
209
-
210
- // Update note properties
211
- obsidian_update_properties: {
212
- filepath: string, // Path relative to vault root
213
- properties: {
214
- title?: string,
215
- author?: string,
216
- // Note: created/modified timestamps are managed automatically
217
- type?: Array<"concept" | "architecture" | "specification" |
218
- "protocol" | "api" | "research" | "implementation" |
219
- "guide" | "reference">,
220
- tags?: string[], // Must start with #
221
- status?: Array<"draft" | "in-progress" | "review" | "complete">,
222
- version?: string,
223
- platform?: string,
224
- repository?: string, // URL
225
- dependencies?: string[],
226
- sources?: string[],
227
- urls?: string[], // URLs
228
- papers?: string[],
229
- custom?: Record<string, unknown>
230
- }
231
- }
232
- ```
233
-
234
- ## Best Practices
235
-
236
- ### File Operations
237
-
238
- - Use atomic operations with validation
239
- - Handle errors and monitor performance
240
-
241
- ### Search Implementation
242
-
243
- - Use appropriate search tool for the task:
244
- - obsidian_find_in_file for text search
245
- - obsidian_complex_search for metadata/tag filtering
246
- - Keep context size reasonable (default: 10 chars)
247
-
248
- ### Property Management
249
-
250
- - Use appropriate types and validate updates
251
- - Handle arrays and custom fields properly
252
- - Never set timestamps (managed automatically)
253
-
254
- ### Error Prevention
255
-
256
- - Validate inputs and handle errors gracefully
257
- - Monitor patterns and respect rate limits
258
-
259
- ## Resources
260
-
261
- The MCP server exposes the following resources:
262
-
263
- ```
264
- obsidian://tags # List of all tags used across the vault
265
- ```
266
-
267
- ## Contributing
141
+ ## 👥 Contributing
268
142
 
269
143
  1. Fork the repository
270
144
  2. Create a feature branch
@@ -272,19 +146,9 @@ obsidian://tags # List of all tags used across the vault
272
146
 
273
147
  For bugs and features, create an issue at [https://github.com/cyanheads/obsidian-mcp-server/issues](https://github.com/cyanheads/obsidian-mcp-server/issues).
274
148
 
275
- ## Publishing
276
-
277
- The package is automatically published to npm when version tags are pushed:
278
-
279
- ```bash
280
- # Update version in package.json
281
- npm version patch # or minor, or major
282
- git push --follow-tags
283
- ```
284
-
285
- This will trigger the GitHub Action to build and publish the package.
149
+ ## 📄 License
286
150
 
287
- ## License
151
+ [![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
288
152
 
289
153
  Apache License 2.0
290
154
 
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ export { run } from "./mcp/server.js";
3
+ export * from "./obsidian/index.js";
4
+ export * from "./resources/index.js";
5
+ export * from "./tools/index.js";
6
+ export * from "./utils/index.js";
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,29 @@
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;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,3 @@
4
4
  export * from './handlers.js';
5
5
  export * from './server.js';
6
6
  export * from './types.js';
7
-
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,18 @@
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>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * MCP server type definitions
3
+ */
4
+ import { TextContent, Tool } from "@modelcontextprotocol/sdk/types.js";
5
+ import { ErrorCategoryType, StandardizedErrorObject } from "../utils/logging.js";
6
+ /**
7
+ * MCP server configuration
8
+ */
9
+ export interface McpServerConfig extends Record<string, unknown> {
10
+ name: string;
11
+ version: string;
12
+ }
13
+ /**
14
+ * Timeout configuration for tool execution
15
+ */
16
+ export interface TimeoutConfig {
17
+ toolExecutionMs: number;
18
+ }
19
+ /**
20
+ * Map of resources by URI
21
+ */
22
+ export interface ResourceMap {
23
+ [uri: string]: {
24
+ getContent(): Promise<TextContent[]>;
25
+ getResourceDescription(): any;
26
+ };
27
+ }
28
+ /**
29
+ * Server capabilities configuration
30
+ */
31
+ export interface ServerCapabilities {
32
+ tools: Record<string, Tool>;
33
+ resources: ResourceMap;
34
+ }
35
+ /**
36
+ * Operation result interface following MCP best practices
37
+ */
38
+ export interface OperationResultSuccess<DataType> {
39
+ resultSuccessful: true;
40
+ resultData: DataType;
41
+ }
42
+ export interface OperationResultFailure {
43
+ resultSuccessful: false;
44
+ resultError: StandardizedErrorObject;
45
+ }
46
+ export type OperationResult<DataType> = OperationResultSuccess<DataType> | OperationResultFailure;
47
+ /**
48
+ * Error codes used in the MCP server
49
+ */
50
+ export declare enum McpErrorCode {
51
+ INTERNAL_SERVER_ERROR = 50000,
52
+ SERVICE_UNAVAILABLE = 50300,
53
+ TIMEOUT = 50800,
54
+ BAD_REQUEST = 40000,
55
+ UNAUTHORIZED = 40100,
56
+ FORBIDDEN = 40300,
57
+ NOT_FOUND = 40400,
58
+ METHOD_NOT_ALLOWED = 40500,
59
+ RATE_LIMIT_EXCEEDED = 40900,
60
+ SUCCESS_NO_CONTENT = 20400
61
+ }
62
+ /**
63
+ * Default timeout configuration
64
+ */
65
+ export declare const DEFAULT_TIMEOUT_CONFIG: TimeoutConfig;
66
+ /**
67
+ * Helper functions for creating operation results
68
+ */
69
+ export declare function createSuccessResult<DataType>(data: DataType): OperationResultSuccess<DataType>;
70
+ export declare function createFailureResult(message: string, code: string | McpErrorCode, category?: ErrorCategoryType, context?: Record<string, unknown>): OperationResultFailure;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAA2B,MAAM,qBAAqB,CAAC;AAoD3F;;GAEG;AACH,MAAM,CAAN,IAAY,YAgBX;AAhBD,WAAY,YAAY;IACtB,wBAAwB;IACxB,qFAA6B,CAAA;IAC7B,iFAA2B,CAAA;IAC3B,yDAAe,CAAA;IAEf,wBAAwB;IACxB,iEAAmB,CAAA;IACnB,mEAAoB,CAAA;IACpB,6DAAiB,CAAA;IACjB,6DAAiB,CAAA;IACjB,+EAA0B,CAAA;IAC1B,iFAA2B,CAAA;IAE3B,gCAAgC;IAChC,+EAA0B,CAAA;AAC5B,CAAC,EAhBW,YAAY,KAAZ,YAAY,QAgBvB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,4BAA4B;CAC/F,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAW,IAAc;IAC1D,OAAO;QACL,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,IAA2B,EAC3B,WAA8B,iBAAiB,CAAC,gBAAgB,EAChE,OAAiC;IAEjC,OAAO;QACL,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE;YACX,YAAY,EAAE,OAAO;YACrB,SAAS,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACzD,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,QAAQ,CAAC,KAAK;YAC7B,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,YAAY,EAAE,OAAO;SACtB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { JsonLogicQuery, NoteJson, ObsidianCommand, ObsidianConfig, ObsidianFile, ObsidianStatus, PeriodType, SearchResponse, SimpleSearchResult } from './types.js';
2
+ /**
3
+ * Client for interacting with the Obsidian Local REST API
4
+ */
5
+ export declare class ObsidianClient {
6
+ private client;
7
+ private config;
8
+ /**
9
+ * Create a new ObsidianClient
10
+ * @param config Configuration for the client
11
+ */
12
+ constructor(config: ObsidianConfig);
13
+ /**
14
+ * Get the base URL for the Obsidian API
15
+ */
16
+ private getBaseUrl;
17
+ /**
18
+ * Get headers for requests to the Obsidian API
19
+ */
20
+ private getHeaders;
21
+ /**
22
+ * Safely execute an API request with error handling
23
+ */
24
+ private safeRequest;
25
+ /**
26
+ * List all files in the vault
27
+ */
28
+ listFilesInVault(): Promise<ObsidianFile[]>;
29
+ /**
30
+ * List files in a specific directory
31
+ */
32
+ listFilesInDir(dirpath: string): Promise<ObsidianFile[]>;
33
+ /**
34
+ * Get the contents of a file
35
+ */
36
+ getFileContents(filepath: string): Promise<string>;
37
+ /**
38
+ * Search for a string across all files
39
+ */
40
+ search(query: string, contextLength?: number): Promise<SimpleSearchResult[]>;
41
+ /**
42
+ * Append content to a file
43
+ */
44
+ appendContent(filepath: string, content: string): Promise<void>;
45
+ /**
46
+ * Update the entire content of a file
47
+ */
48
+ updateContent(filepath: string, content: string): Promise<void>;
49
+ /**
50
+ * Execute a complex search using JsonLogic query
51
+ */
52
+ searchJson(query: JsonLogicQuery): Promise<SearchResponse[]>;
53
+ /**
54
+ * Get server status
55
+ */
56
+ getStatus(): Promise<ObsidianStatus>;
57
+ /**
58
+ * List available commands
59
+ */
60
+ listCommands(): Promise<ObsidianCommand[]>;
61
+ /**
62
+ * Execute a command by ID
63
+ */
64
+ executeCommand(commandId: string): Promise<void>;
65
+ /**
66
+ * Open a file in Obsidian
67
+ */
68
+ openFile(filepath: string, newLeaf?: boolean): Promise<void>;
69
+ /**
70
+ * Get the currently active file
71
+ */
72
+ getActiveFile(): Promise<NoteJson>;
73
+ /**
74
+ * Update the active file
75
+ */
76
+ updateActiveFile(content: string): Promise<void>;
77
+ /**
78
+ * Delete the active file
79
+ */
80
+ deleteActiveFile(): Promise<void>;
81
+ /**
82
+ * Patch the active file
83
+ */
84
+ patchActiveFile(operation: "append" | "prepend" | "replace", targetType: "heading" | "block" | "frontmatter", target: string, content: string, options?: {
85
+ delimiter?: string;
86
+ trimWhitespace?: boolean;
87
+ contentType?: "text/markdown" | "application/json";
88
+ }): Promise<void>;
89
+ /**
90
+ * Get a periodic note (e.g., daily, weekly)
91
+ */
92
+ getPeriodicNote(period: PeriodType["type"]): Promise<NoteJson>;
93
+ /**
94
+ * Update a periodic note
95
+ */
96
+ updatePeriodicNote(period: PeriodType["type"], content: string): Promise<void>;
97
+ /**
98
+ * Delete a periodic note
99
+ */
100
+ deletePeriodicNote(period: PeriodType["type"]): Promise<void>;
101
+ /**
102
+ * Patch a periodic note
103
+ */
104
+ patchPeriodicNote(period: PeriodType["type"], operation: "append" | "prepend" | "replace", targetType: "heading" | "block" | "frontmatter", target: string, content: string, options?: {
105
+ delimiter?: string;
106
+ trimWhitespace?: boolean;
107
+ contentType?: "text/markdown" | "application/json";
108
+ }): Promise<void>;
109
+ }