mcp-fantastical
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 12 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in native/build.sh
Permissions Pass
- Permissions — No dangerous permissions requested
This server acts as a bridge between AI models (like Claude) and the Fantastical calendar app on macOS. It allows users to view their schedule, search for events, and create new events using natural language directly through an MCP-compatible chat interface.
Security Assessment
Risk Rating: Medium
This tool inherently handles highly sensitive data by reading your local calendar and schedule. It communicates locally with the Fantastical and macOS Calendar apps via AppleScript and a native helper application, meaning no internet access or API keys are required. The automated scan flagged a `rm -rf` command inside a native build script. While this is typically used to clean up build directories, recursive force deletions should be noted. The server does not make external network requests, and no hardcoded secrets were found. To function, it requires broad macOS accessibility and full calendar permissions, which exposes your personal schedule data to the AI model requesting it.
Quality Assessment
The project is actively maintained with a recent last push and carries a standard MIT license. It features a clean README with clear setup instructions and a CI pipeline for automated testing. However, community trust is relatively low with only 12 GitHub stars, suggesting a limited user base and minimal external code review.
Verdict
Use with caution. The tool is locally confined and does not leak data externally, but granting an AI client deep access to your personal calendar always carries inherent privacy risks.
MCP server for Fantastical calendar app - create events, view calendar, and manage schedules
MCP Fantastical Server
MCP server for Fantastical - the powerful calendar app for macOS.
Why Use This?
- Natural language event creation - Use Fantastical's powerful natural language parsing ("Meeting with John tomorrow at 3pm")
- View your schedule - Check today's events or upcoming appointments without leaving your conversation
- Quick calendar access - Jump to any date in Fantastical instantly
- Calendar-aware AI - Let Claude understand your availability and schedule context
- Zero configuration - Works with your existing Fantastical and Calendar setup
Features
| Category | Capabilities |
|---|---|
| Event Creation | Create events using natural language, specify calendar, add notes |
| Schedule Viewing | View today's events, upcoming events for any number of days |
| Navigation | Open Fantastical to specific dates |
| Search | Search events by title, location, or notes |
| Calendar Management | List all available calendars |
Prerequisites
- macOS (Fantastical is macOS-only)
- Node.js 18+
- Fantastical installed
- Calendar access permissions for Terminal/Claude
Installation
Using npm (Recommended)
npx mcp-fantastical
From Source
git clone https://github.com/aplaceforallmystuff/mcp-fantastical.git
cd mcp-fantastical
npm install
npm run build
Configuration
No API keys required - this server uses AppleScript to communicate with Fantastical and the Calendar app.
For Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"fantastical": {
"command": "npx",
"args": ["-y", "mcp-fantastical"]
}
}
}
For Claude Code
Add to ~/.claude.json:
{
"mcpServers": {
"fantastical": {
"command": "npx",
"args": ["-y", "mcp-fantastical"]
}
}
}
Permissions
On first run, you may need to grant the following permissions:
Accessibility (for event creation via URL scheme):
- System Preferences → Privacy & Security → Accessibility
- Add Terminal (or your terminal app) to the allowed list
Full Calendar Access (for reading events):
The native helper ships as an ad-hoc-signed .app bundle (FantasticalHelper.app). The first time the MCP server reads calendar data, macOS will show a one-time prompt attributed to "FantasticalHelper" asking to grant Full Calendar Access. Approve it.
If you miss the prompt or need to re-grant later:
- System Settings → Privacy & Security → Calendars
- Enable FantasticalHelper
Note: Prior versions shipped a raw helper binary, which macOS couldn't attribute a TCC permission to when launched under Claude Desktop — the prompt never appeared and access was silently denied (#6). The bundled + signed helper fixes this.
Usage Examples
Creating Events
- "Schedule a meeting with the team tomorrow at 2pm"
- "Add dentist appointment Friday at 10am to my Personal calendar"
- "Create a recurring standup every Monday at 9am"
- "Block off next Tuesday afternoon for deep work"
Viewing Schedule
- "What's on my calendar today?"
- "Show me my schedule for the next week"
- "What meetings do I have tomorrow?"
- "Am I free on Friday afternoon?"
Navigation
- "Open my calendar to next Monday"
- "Show me December 25th in Fantastical"
- "Jump to next week in my calendar"
Searching
- "Find all meetings with Sarah"
- "Search for dentist appointments"
- "Look up project review meetings"
Available Tools
| Tool | Description |
|---|---|
fantastical_create_event |
Create an event using natural language parsing |
fantastical_get_today |
Get today's calendar events |
fantastical_get_upcoming |
Get upcoming events for specified number of days |
fantastical_show_date |
Open Fantastical to a specific date |
fantastical_get_calendars |
List all available calendars |
fantastical_search |
Search for events by query |
Development
# Watch mode for development
npm run watch
# Build TypeScript
npm run build
# Run locally
node dist/index.js
Troubleshooting
"AppleScript error: Not authorized to send Apple events"
Grant accessibility permissions:
- Open System Preferences → Privacy & Security → Accessibility
- Click the lock to make changes
- Add Terminal (or your terminal app) and enable it
Calendar permission errors, or "Calendar access denied" under Claude Desktop
macOS TCC permissions don't inherit through the Claude Desktop → npx → node → helper chain. The native helper is wrapped in an ad-hoc-signed FantasticalHelper.app bundle so macOS has a stable code identity to attribute the calendar permission to.
Solutions:
- Look for a one-time system prompt attributed to FantasticalHelper and approve it. If it appeared behind another window, restart your MCP client and retry.
- Check System Settings → Privacy & Security → Calendars and enable FantasticalHelper.
- If running from source, rebuild the bundle:
npm run build:native. - If the bundle is missing a code signature for any reason, re-sign it:
codesign --force --sign - dist/native/FantasticalHelper.app.
"Error: This MCP server only works on macOS"
This server requires macOS because Fantastical is a macOS application. It uses AppleScript to communicate with Fantastical and the Calendar app.
Events not showing up
- Ensure Fantastical is syncing with iCloud/Calendar
- Check that Calendar.app has access to the same calendars
- Verify the event was created in the correct calendar
- Grant Full Calendar Access (see above)
Fantastical not opening
- Ensure Fantastical is installed
- Try opening Fantastical manually first
- Check that URL schemes are enabled in Fantastical preferences
License
MIT - see LICENSE for details.
Links
- Fantastical - Official Fantastical website
- Model Context Protocol - MCP specification
- GitHub Repository
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found