Nice !
I’m so not a calendar guy but I “have” to become one. I’m thinking about reupping my Fantastical subscription and with new of MCP support that makes it even more likely.
Nice !
I’m so not a calendar guy but I “have” to become one. I’m thinking about reupping my Fantastical subscription and with new of MCP support that makes it even more likely.
I’ve used it for a couple of days. Works nicely indeed. One issue is that it seems to be packaged in a way that Claude Code in the terminal cannot access it. Need to use the desktop app.
Where did you find this feature? In a beta?
There are fairly simple ways to use an “HTTP Wrapper” to convert a local MCP server to one available online.
Not sure how an HTTP wrapper would help. Claude Code CLI told me:
The Fantastical connector you’re using in the desktop app is a built-in desktop connector, not a standard MCP server — that’s why
claude mcp add-from-claude-desktopfound nothing. It’s baked into the Claude Desktop app itself and doesn’t have an external URL or command you can point the CLI at.So the practical answer: Fantastical access is restricted to the Code tab in the desktop app (or the chat tab). The CLI can’t use it because there’s no standalone Fantastical MCP server to connect to.
And the desktop app has this reminder to itself:
Fantastical is available as an MCP tool when Claude Code runs inside the Claude desktop app (Code tab). The tools are deferred — use ToolSearch to fetch
mcp__Fantastical__queryCalendarItemsbefore calling it. Query with*for all events and a date range string. The CLI commandclaude mcp listwon’t show Fantastical since it’s provided by the desktop app integration, not the CLI config.
@F.Jones: Just like Sparky shows in the video linked by the OP (https://www.youtube.com/watch?v=BcO0R-DfOg4). You browse the connectors on offer in the desktop app. Fantastical was among them, when I was checking what was there a few days ago. Some other very useful things as well.
If anyone is interested in making the Fantastical MCP server available to Claude Code in the CLI/terminal, I figured it out. Once you’ve configured the connector in the desktop app, the server directory will be under ~/Library/Application Support/Claude/Claude Extensions/ant.dir.gh.flexibits.fantastical-mcp. I made a copy of that directory somewhere else (doesn’t matter where) and then asked Claude Code CLI to add it to itself, which it did with claude mcp add --scope user Fantastical "WHEREVER/server/FantasticalMCP.app/Contents/MacOS/FantasticalMCP".
Now I can interact with my calendars in the Claude Code terminal interface.
I fed the logs into Claude and got this response. I have not tried it yet:
The Fantastical MCP connector you installed is a local stdio-based MCP server — it’s a native macOS binary that Claude Desktop launches as a child process and communicates with over stdin/stdout (JSON-RPC). Claude.ai on the web can only connect to remote MCP servers that expose an HTTP endpoint (SSE or streamable HTTP transport).
So the core problem is a transport mismatch: Fantastical speaks stdio, Claude.ai speaks HTTP.
Here are your realistic options:
Option 1: Use an MCP Bridge/Proxy (most practical)
Tools like
mcp-proxyorsupergatewaycan wrap a local stdio MCP server and expose it as an SSE or HTTP endpoint. The flow would be:
- Run a proxy on your Mac that launches the Fantastical binary as a subprocess
- The proxy exposes an HTTP SSE endpoint (e.g.,
http://localhost:8080/sse)- You’d then need to make that endpoint reachable from the internet — via a tunnel like ngrok, Cloudflare Tunnel, or Tailscale Funnel
- Add that public URL as a custom MCP server in Claude.ai
Something like:
bash
npx @anthropic/mcp-proxy --transport sse --port 8080 -- \ "/Users/richardkaplan/Library/Application Support/Claude/Claude Extensions/ant.dir.gh.flexibits.fantastical-mcp/server/FantasticalMCP.app/Contents/MacOS/FantasticalMCP"Then tunnel it with
ngrok http 8080or similar.
Key challenges to be aware of:
- The Fantastical binary likely expects to interact with the Fantastical app on macOS via AppleScript or XPC, so it must run on your Mac — you can’t containerize it elsewhere
- Your Mac needs to be on and running the proxy whenever you want access from Claude.ai
- Security: exposing a local MCP server to the internet means anyone with the URL could potentially read/modify your calendar unless you add auth
I also specifically asked it to comment on the reasoning you got as to why it would not work. This is the response:
That response is partially correct but somewhat misleading. Let me clarify based on the logs you shared earlier:
What’s true: The Fantastical connector is distributed as a “Claude Extension” — a bundled macOS app binary that lives in Claude’s Application Support directory. It’s not a standalone MCP server you installed via
claude mcp addor from a separate repo. In that sense, it is “built-in” to the Claude Desktop ecosystem.What’s misleading: It absolutely is a standard MCP server. Your own logs prove this clearly. It speaks JSON-RPC 2.0 with proper MCP protocol negotiation (
initialize,notifications/initialized,tools/list), it advertises standard MCP capabilities (toolswithlistChanged), and it returns well-formed tool definitions with properinputSchemaand annotation hints. The logs show it implementing the MCP spec to the letter, including the newer2025-03-26protocol version.The distinction isn’t “built-in connector vs. MCP server” — it’s stdio transport vs. HTTP transport. It’s a real MCP server that happens to be distributed as a bundled extension and communicates over stdio.
Why
claude mcp add-from-claude-desktopmay not find it: That command typically looks at theclaude_desktop_config.jsonfile where manually-configured MCP servers are listed. Claude Extensions (the newer distribution mechanism) are managed separately by the desktop app, so they wouldn’t show up there. That’s a config discovery issue, not evidence that it’s “not a real MCP server.”So the bottom line remains what I said before — it’s a legitimate MCP server with a stdio transport, and the proxy/tunnel approach would theoretically work. The binary is the server. The challenge is just bridging stdio to HTTP so Claude.ai can reach it.
I see. I didn’t even imagine running a http server wrapping the MCP. And yeah if you want Claude Code on the web to access it, something like that would be needed. What I was after is accessing it locally from Claude Code CLI in the terminal.
As I reported, the FantasticalMCP.app deeply inside the Claude Extensions folder in Library/Application Support can actually be added to what Claude Code CLI in the terminal sees. It just can’t discover it on your own. The response you got talks about that: “Claude Extensions (the newer distribution mechanism) are managed separately by the desktop app. That’s a config discovery issue”.
I see that this works with my non-Flexibits Premium account. I did purchase Fantastical on all platforms before it went to the subscription model, so I am not sure if it works for non-Premium accounts that are on the most recent free plan.