kalendia-mcp
An MCP server for Kalendia that enables AI assistants to manage calendar connections, sync rules, scheduling pages, and agenda directly from chat.
README
kalendia-mcp
An MCP server for Kalendia. Drive your calendar sync and scheduling from an MCP client (Claude Code, Claude Desktop): list connections and calendars, read your agenda, and create / delete / run sync rules, all from chat.
Tools (24)
The tool surface mirrors what a user can do in the Kalendia web app (everything reachable by an API token; OAuth-redirect actions like connecting Google/Microsoft or Stripe checkout stay in the web UI, and account deletion is intentionally not exposed).
Reads (read-only):
list_connections— connected calendar accounts (Google, Microsoft, iCloud, ICS, Zoom).list_calendars(connection_id)— live provider calendars under one connection (no Kalendia id).list_all_calendars— every persisted calendar across accounts, with the numeric id used by rules/pages.list_sync_rules— all mirror rules.get_agenda(connection_id, calendar_id, from_iso?, to_iso?)— events in a window.list_scheduling_pages/get_scheduling_page(page_id)— booking pages.get_availability(slug, from_iso?, to_iso?)— bookable slots for a page.get_billing/get_billing_overview— plan, usage, limits.get_audit_log(limit?)— recent account activity.
Writes (the client confirms before firing):
- Sync rules:
create_sync_rule,run_sync_rule,delete_sync_rule(destructive). - Connections/calendars:
connect_icloud,connect_ics,refresh_calendars,discover_calendars,set_active_calendars,rename_calendar,disconnect_connection(destructive). - Scheduling pages:
create_scheduling_page,update_scheduling_page,delete_scheduling_page(destructive).
Setup
- Mint a personal access token in Kalendia: Settings > API tokens. Copy it (shown once; starts with
kld_). - Install deps:
uv sync. - Configure the env: copy
.env.exampleto.envand setKALENDIA_TOKEN(andKALENDIA_API_URLif testing against a local backend).
Run
uv run kalendia-mcp # stdio (default)
uv run kalendia-mcp --http # Streamable HTTP
Register in Claude Code
Add to your MCP config (e.g. ~/.claude.json), filling in the token:
{
"mcpServers": {
"kalendia": {
"command": "uv",
"args": ["run", "--directory", "/Users/bogdan-georgebrad/Claude/Code/personal/kalendia-mcp", "kalendia-mcp"],
"env": {
"KALENDIA_TOKEN": "kld_your_token_here",
"KALENDIA_API_URL": "https://api.kalendia.io"
}
}
}
}
To test against a local backend instead, set KALENDIA_API_URL to http://localhost:8002 and use a
token minted on that backend.
Remote / multi-user (HTTP)
uv run kalendia-mcp --http runs the server over Streamable HTTP as an OAuth 2.0 resource server, so
ONE deployed instance serves many users: each request authenticates with the caller's own kld_
token (no per-user env var). It serves OAuth Protected Resource Metadata at
/.well-known/oauth-protected-resource (advertising Kalendia as the authorization server), rejects
unauthenticated/invalid tokens with 401 + WWW-Authenticate, validates a presented kld_ token
against the Kalendia API, and forwards it to act as that user. Config via env:
KALENDIA_MCP_HOST / KALENDIA_MCP_PORT (bind), KALENDIA_MCP_URL (public URL in the metadata),
KALENDIA_API_URL (the Kalendia API).
Remaining for a public launch (tracked as Phase 2): hosting/deploy of this HTTP server, and full
OAuth authorization-server discovery (dynamic client registration + auth-code + PKCE) so clients can
mint tokens in-flow instead of pasting a kld_ token. Today a client connects by presenting a
kld_ bearer (minted in Settings > API tokens).
Develop
uv run ruff check . && uv run ruff format --check . && uv run pyright && uv run pytest
Security
A token has the user's full account access (no scopes yet). Treat it like a password. Revoke a leaked or stale token in Kalendia: Settings > API tokens.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.