Hard fork to dav-mcp: cleanup, modular setup, event metadata #1

Merged
brad merged 3 commits from fork-cleanup-and-event-metadata into main 2026-04-29 21:24:13 -07:00
Owner

Summary

First PR of the hard fork from caldav-mcp. Lays groundwork for the upcoming CardDAV contact tools.

Scaffolding cleanup

  • Dropped GitHub-specific scaffolding: .github/, .husky/, .releaserc.json, commitlint.config.js, knip.json
  • Dropped CONTRIBUTING.md and CODE_OF_CONDUCT.md (private fork)
  • Renamed package to dav-mcp, bumped to 1.0.0, marked private
  • Removed the build step — runtime is now tsx directly against src/
  • Trimmed deps: removed husky, commitlint, semantic-release, shx, knip
  • Moved tsx to runtime dependencies
  • Updated LICENSE with fork copyright alongside upstream
  • Rewrote README.md for the new install + config flow

Modular deployment (groundwork)

  • CalDAV is now optional, gated on CALDAV_BASE_URL
  • CARDDAV_ADDRESSBOOK_URL is reserved as the contacts gate (CardDAV tools come in PR 2)
  • Startup fails fast with a clear error if neither module is configured

Event metadata

  • create-event accepts description, location, alarms
  • update-event accepts alarms
  • Shared recurrenceRule + alarm schemas hoisted into src/schemas/
  • Tests added for the new params

Test plan

  • npm test — 12 tests pass
  • npm run check — Biome clean
  • Smoke: no env vars → exits 1 with "No DAV module configured"
  • Smoke: bogus CALDAV_BASE_URL → exits 1 with connection error
  • Manually verify against real Baikal once deployed

🤖 Generated with Claude Code

## Summary First PR of the hard fork from `caldav-mcp`. Lays groundwork for the upcoming CardDAV contact tools. ### Scaffolding cleanup - Dropped GitHub-specific scaffolding: `.github/`, `.husky/`, `.releaserc.json`, `commitlint.config.js`, `knip.json` - Dropped `CONTRIBUTING.md` and `CODE_OF_CONDUCT.md` (private fork) - Renamed package to `dav-mcp`, bumped to `1.0.0`, marked `private` - Removed the build step — runtime is now `tsx` directly against `src/` - Trimmed deps: removed husky, commitlint, semantic-release, shx, knip - Moved `tsx` to runtime dependencies - Updated `LICENSE` with fork copyright alongside upstream - Rewrote `README.md` for the new install + config flow ### Modular deployment (groundwork) - CalDAV is now optional, gated on `CALDAV_BASE_URL` - `CARDDAV_ADDRESSBOOK_URL` is reserved as the contacts gate (CardDAV tools come in PR 2) - Startup fails fast with a clear error if neither module is configured ### Event metadata - `create-event` accepts `description`, `location`, `alarms` - `update-event` accepts `alarms` - Shared `recurrenceRule` + `alarm` schemas hoisted into `src/schemas/` - Tests added for the new params ## Test plan - [x] `npm test` — 12 tests pass - [x] `npm run check` — Biome clean - [x] Smoke: no env vars → exits 1 with "No DAV module configured" - [x] Smoke: bogus `CALDAV_BASE_URL` → exits 1 with connection error - [ ] Manually verify against real Baikal once deployed 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Hard fork from dominik1001/caldav-mcp for private deployment in homelab.

Scaffolding cleanup:
- Drop .github/, .husky/, .releaserc.json, commitlint.config.js, knip.json
- Drop CONTRIBUTING.md, CODE_OF_CONDUCT.md (private fork)
- Rename package to dav-mcp; bump to 1.0.0; mark private
- Drop build step entirely; runtime is tsx against src/
- Trim package.json deps (remove husky, commitlint, semantic-release, shx, knip)
- Move tsx to runtime dependencies
- Update LICENSE to add fork copyright alongside upstream
- Rewrite README for new install/config flow

Modular setup (groundwork for CardDAV in next PR):
- Make CalDAV optional, gated on CALDAV_BASE_URL
- Reserve CARDDAV_ADDRESSBOOK_URL as the contacts gate
- Server fails at startup with a clear error if neither module is configured

Event metadata:
- Add description, location, alarms params to create-event
- Add alarms param to update-event
- Hoist shared recurrenceRule + alarm schemas into src/schemas/
- Tests cover the new params

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Resolves 15 of 17 reported vulnerabilities by updating transitive
dependency resolutions in the lockfile. No package.json changes.

Remaining 2 (moderate, uuid via ts-caldav) require downgrading
ts-caldav to 0.0.4 which would break the build — leaving for an
upstream ts-caldav release.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR 1 doesn't ship CardDAV support yet. Without this guard, an entry
with only CARDDAV_ADDRESSBOOK_URL set starts cleanly but registers
zero tools, leading to silent "Method not found" errors.

Print a clear message and exit 1 instead. Removed naturally in the
follow-up CardDAV PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
brad merged commit dc2d57edb5 into main 2026-04-29 21:24:13 -07:00
brad deleted branch fork-cleanup-and-event-metadata 2026-04-29 21:24:14 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
brad/dav-mcp!1
No description provided.