dav-mcp 3.0.6 → 3.0.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dav-mcp",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
4
4
  "mcpName": "io.github.PhilflowIO/dav-mcp",
5
5
  "description": "Complete DAV integration for AI - Calendar (CalDAV), Contacts (CardDAV), and Tasks (VTODO) management via MCP protocol",
6
6
  "type": "module",
@@ -108,7 +108,7 @@ async function startStdioServer() {
108
108
  /**
109
109
  * Create MCP Server with tool handlers
110
110
  */
111
- function createMCPServer() {
111
+ function createMCPServer(ensureInit) {
112
112
  const server = new Server(
113
113
  {
114
114
  name: process.env.MCP_SERVER_NAME || 'dav-mcp',
@@ -149,6 +149,9 @@ async function startStdioServer() {
149
149
  throw error;
150
150
  }
151
151
 
152
+ // Ensure DAV clients are initialized before executing any tool
153
+ await ensureInit();
154
+
152
155
  const startTime = Date.now();
153
156
  toolCallLogger.logToolCallStart(toolName, toolArgs, { transport: 'stdio' });
154
157
 
@@ -180,19 +183,34 @@ async function startStdioServer() {
180
183
  return server;
181
184
  }
182
185
 
186
+ // Lazy initialization flag
187
+ let tsdavInitialized = false;
188
+
189
+ async function ensureTsdavInitialized() {
190
+ if (!tsdavInitialized) {
191
+ await initializeTsdav();
192
+ tsdavInitialized = true;
193
+ }
194
+ }
195
+
183
196
  // Main entry point
184
197
  try {
185
198
  logger.info('Starting dav-mcp STDIO server...');
186
199
 
187
- // Initialize tsdav clients
188
- await initializeTsdav();
200
+ // Try to initialize tsdav clients eagerly, but don't fail if unavailable
201
+ try {
202
+ await initializeTsdav();
203
+ tsdavInitialized = true;
204
+ } catch (initError) {
205
+ logger.warn({ error: initError.message }, 'DAV server not reachable at startup — will retry on first tool call');
206
+ }
189
207
 
190
208
  // Initialize tool call logger
191
209
  initializeToolCallLogger();
192
210
  logger.info('Tool call logger initialized');
193
211
 
194
212
  // Create MCP server
195
- const server = createMCPServer();
213
+ const server = createMCPServer(ensureTsdavInitialized);
196
214
  logger.debug({ count: tools.length }, 'MCP server created with tools');
197
215
 
198
216
  // Create STDIO transport