@@ -19,18 +19,16 @@ MCP (Model Context Protocol) SSE Server for tsdav - CalDAV/CardDAV integration f
1919-  ✅ ** Security** : Bearer Token Auth, Rate Limiting, CORS, Input Validation, Structured Logging
2020-  ✅ ** Session Management** : Multi-client support with automatic session cleanup
2121-  ✅ ** Production Ready** : Error handling, graceful shutdown, health checks
22+ -  ✅ ** Testing** : Jest test suite with 33 tests, GitHub Actions CI/CD
2223
2324## ⏳ What's Not Yet Supported  
2425
2526-  ❌ ** OAuth2** : Currently only HTTP Basic Auth (no Google Calendar/Microsoft 365 OAuth)
2627-  ❌ ** Advanced iCal Features** : RRULE (recurring events), VALARM (alarms), ATTENDEES (participants)
2728-  ❌ ** Advanced CalDAV Queries** : Filtering by properties, full-text search
2829-  ❌ ** Bulk Operations** : Create/update/delete multiple events/contacts at once
29- -  ❌ ** Tests** : No unit/integration tests available yet
3030-  ❌ ** Pagination** : For very large calendars/address books
3131
32- >  ** Note** : OAuth2 support is planned for future versions (see roadmap in CLAUDE.md)
33- 
3432## 🌐 Supported CalDAV/CardDAV Providers  
3533
3634|  Provider |  Status |  Auth Method | 
@@ -69,12 +67,6 @@ npm install
6967#  Configure .env file
7068cp .env.example .env
7169nano .env
72- 
73- #  Start server
74- npm start
75- 
76- #  Development with auto-reload
77- npm run dev
7870``` 
7971
8072## ⚙️ Configuration  
@@ -100,26 +92,34 @@ BEARER_TOKEN=your-secure-token-here
10092
10193### Step 1: Start MCP Server  
10294
95+ Use Docker (recommended):
96+ ``` bash 
97+ docker-compose up -d
98+ ``` 
99+ 
100+ Or run directly:
103101``` bash 
104102npm start
105103``` 
106104
107105Server runs on: ` http://localhost:3000 ` 
108106
109- ### Step 2: Configure n8n MCP Client Node  
110- 
111- 1 .  ** Add the "MCP Client Tool" node to your workflow** 
107+ ### Step 2: Configure n8n AI Agent  
112108
113- 2 .  ** Configure the connection: ** 
109+ 1 .  ** Add "MCP Client Tool" node **  and configure: 
114110   -  ** SSE Endpoint** : ` http://localhost:3000/sse ` 
115-    -  ** Authentication Method** : ` Bearer `  (optional)
116-    -  ** Bearer Token** : ` secure-token-123456 `  (from .env)
111+    -  ** Authentication** : ` Bearer `  (optional)
112+    -  ** Bearer Token** : From your ` .env `  file
113+    -  ** Tools** : "All tools from the MCP server"
114+ 
115+ 2 .  ** Connect AI Agent node**  to the MCP Client Tool
117116
118- 3 .  ** Select tools:** 
119-    -  Option 1: "All tools from the MCP server"
120-    -  Option 2: Select specific tools
117+ 3 .  ** Use natural language**  to interact with your calendar:
118+    -  "List all my calendars"
119+    -  "Create a meeting tomorrow at 2pm"
120+    -  "Show me all events in October"
121121
122- ### Step 3: Use Tools   
122+ ### Step 3: Example Tool Usage   
123123
124124#### Example 1: List calendars  
125125
@@ -172,18 +172,6 @@ Server runs on: `http://localhost:3000`
172172}
173173``` 
174174
175- ### Step 4: Use with AI Agent  
176- 
177- 1 .  ** Add an "AI Agent" node** 
178- 2 .  ** Connect the MCP Client Tool node with the AI Agent** 
179- 3 .  ** The AI Agent can now interact with your calendar using natural language:** 
180- 
181- Example prompts:
182- -  "List all my calendars"
183- -  "Create a meeting tomorrow at 2pm"
184- -  "Show me all events in October"
185- -  "Create a new contact for Max Mustermann"
186- 
187175## 🌐 Remote Access (for n8n Cloud)  
188176
189177If your n8n runs in the cloud, you need to make the MCP server publicly accessible:
0 commit comments