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 +1 -1
- package/src/server-stdio.js +22 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dav-mcp",
|
|
3
|
-
"version": "3.0.
|
|
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",
|
package/src/server-stdio.js
CHANGED
|
@@ -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
|
-
//
|
|
188
|
-
|
|
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
|