Chronos Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Chronos Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive Model Context Protocol (MCP) server for CalDAV calendar management, built with FastMCP 2.0. Chronos provides advanced calendar and event management capabilities with multi-account support.
Chronos MCP provides comprehensive support for CalDAV tasks:
Available tools:
create_task — Create a task with summary, due date, priority, descriptionlist_tasks — List tasks in a calendar, optionally filtering by statusupdate_task — Partial update of task fields (status, priority, progress, etc.)delete_task — Delete a task by UIDbulk_create_tasks — Create multiple tasks in parallelbulk_delete_tasks — Delete multiple tasks in parallel# Example: Create a task
mcp call create_task '{
"calendar_uid": "my-calendar",
"summary": "Complete project documentation",
"due": "2025-02-01T15:00:00Z",
"priority": 2
}'Keep detailed records with CalDAV journal entries:
Available tools:
create_journal — Create a journal entry with summary and descriptionlist_journals — List journal entries in a calendarupdate_journal — Partial update of journal fieldsdelete_journal — Delete a journal entry by UIDbulk_create_journals — Create multiple journal entries in parallelbulk_delete_journals — Delete multiple journal entries in parallel# Example: Create a journal entry
mcp call create_journal '{
"calendar_uid": "my-calendar",
"summary": "Team Meeting Notes",
"description": "Discussed Q1 objectives..."
}'For detailed usage, see VTODO/VJOURNAL Guide.
Chronos MCP now supports secure password storage using your system's keyring (via python-keyring). When available, passwords are automatically stored in:
If you have existing accounts with passwords stored in plain text, migrate them to secure storage:
# Check what will be migrated (dry run)
python scripts/migrate_to_keyring.py --dry-run
# Perform actual migration
python scripts/migrate_to_keyring.pyThe migration script will:
~/.chronos/accounts.jsonIf keyring is not available (e.g., SSH sessions, containers), Chronos MCP will:
Note: If keyring is not installed or available, passwords will be stored in plain text at ~/.chronos/accounts.json. Install keyring support with:
pip install "chronos-mcp[secure]" # or just: pip install keyringpip install -e .Includes keyring support for secure password storage:
pip install -e ".[secure]"Or if you already have Chronos installed:
pip install keyring>=24.0.0CALDAV_BASE_URL=http://<YOUR_CALDAV_SERVER>:5232
CALDAV_USERNAME=<YOUR_USERNAME>
CALDAV_PASSWORD=<YOUR_PASSWORD>Create ~/.chronos/accounts.json:
{
"accounts": {
"personal": {
"url": "http://<YOUR_CALDAV_SERVER>:5232",
"username": "<YOUR_USERNAME>",
"display_name": "Personal Calendar"
},
"work": {
"url": "https://caldav.company.com",
"username": "user",
"display_name": "Work Calendar"
}
},
"default_account": "personal"
}Note: Passwords are not included in the JSON when using keyring. They will be:
scripts/migrate_to_keyring.py./run_chronos.shList all configured accounts:
list_accounts()Create an event with reminder:
chronos:create_event(
calendar_uid="assistant",
summary="Team Meeting",
start="2025-07-08T14:00:00",
end="2025-07-08T15:00:00",
location="Conference Room",
alarm_minutes="15" # Note: Pass as string!
)Create recurring event with attendees:
chronos:create_event(
calendar_uid="work",
summary="Weekly Standup",
start="2025-07-07T09:00:00",
end="2025-07-07T09:30:00",
recurrence_rule="FREQ=WEEKLY;BYDAY=MO,WE,FR",
attendees_json='[{"email": "[email protected]", "name": "Team"}]'
)Delete an event:
chronos:delete_event(
calendar_uid="assistant",
event_uid="abc-123-def-456"
)Update an event (partial update):
chronos:update_event(
calendar_uid="assistant",
event_uid="abc-123-def-456",
location="Room 202", # Update location
alarm_minutes="30" # Change reminder to 30 minutes
# Other fields remain unchanged
)See GitHub Issues for current limitations and workarounds.
See CHANGELOG.md for version history.
See CONTRIBUTING.md for development guidelines.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.