MorgenMCP
MCP server for Morgen calendar API - manage calendars and events via Claude Desktop
Install / Use
claude mcp add k3KAW8Pnf7mkmdSMPHz27 -- npx -y github:k3KAW8Pnf7mkmdSMPHz27/MorgenMCPIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Skill content
View source on GitHubMorgenMCP
An MCP server for the Morgen calendar API.
Requirements
- uv - Install with
brew install uv - mise - Install with
brew install mise(used to manage theMORGEN_API_KEYenvironment variable during local development) - A Morgen API key - Get one from Morgen Developer Portal
Installation
No installation required! MCP clients run the server directly from GitHub.
Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"morgen": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/k3KAW8Pnf7mkmdSMPHz27/MorgenMCP@main",
"morgenmcp"
],
"env": {
"MORGEN_API_KEY": "your_api_key_here"
}
}
}
}
To pin to a specific version, replace @main with a version tag (e.g., @v0.1.0).
Available Tools
22 tools across accounts, calendars, events, tasks, and tags — 6 read-only, 16 mutating:
- Accounts & calendars:
list_accounts,list_calendars,update_calendar_metadata - Events:
list_events,create_event,update_event,delete_event,batch_update_events,batch_delete_events - Tasks:
list_tasks,get_task,create_task,update_task,move_task,complete_task,reopen_task,delete_task,batch_delete_tasks - Tags:
list_tags,create_tag,update_tag,delete_tag
Pass --read-only (or set MORGENMCP_READ_ONLY=1) to expose only the 6 read-only tools. For the exact live list with schemas and annotations, connect any MCP client or run the MCP Inspector.
Configuration
MORGEN_API_KEY is required; everything else is optional. Each setting has an
equivalent CLI flag, and the flag wins over the environment variable.
| Environment variable | CLI flag | Default | Description |
|---|---|---|---|
| MORGEN_API_KEY | — | (required) | Morgen API key. The server refuses to start without it. |
| MORGENMCP_READ_ONLY | --read-only | off | Truthy (1/true/yes/on) exposes only the 6 read tools, disabling all 16 mutating ones. |
| MORGENMCP_TASKS_LIMIT | --tasks-limit N | 100 | Default limit sent to /tasks/list. Integer 1–100. |
| MORGENMCP_TAGS_LIMIT | --tags-limit N | (unset) | Default limit sent to /tags/list. Integer ≥ 1, no upper bound. Unset returns all tags. |
| MORGENMCP_DISPLAY_TZ | — | system local | IANA timezone (e.g. America/Chicago) for rendering compact event times. |
| MORGENMCP_DATA_DIR | — | platform data dir | Override the virtual-ID persistence directory. |
An invalid limit fails at startup with a clear error rather than silently returning fewer results:
$ uv run morgenmcp --tasks-limit 500
morgenmcp: error: --tasks-limit must be <= 100 (got 500)
The two list limits are deliberately asymmetric, because Morgen documents the
two endpoints differently: /tasks/list documents a default of 100 and a
maximum of 100, while /tags/list documents neither and returns all tags when
the parameter is omitted. A per-call limit argument on the tool always
overrides both the flag and the environment variable.
Note:
MORGENMCP_TASKS_LIMITdefaults to100because Morgen's/tasks/listreturns a single task whenlimitis omitted, despite documenting the default as 100. The server sends the documented value explicitly to compensate.
Development
# Clone the repository
git clone https://github.com/k3KAW8Pnf7mkmdSMPHz27/MorgenMCP.git
cd MorgenMCP
# Install dependencies
uv sync --all-extras
# Run tests
uv run pytest
Environment Setup
The server reads MORGEN_API_KEY from the process environment — it does not load a .env file itself. This repo ships a mise.toml that declares MORGEN_API_KEY as required; set the actual value via mise, which writes it to a gitignored mise.local.toml rather than the committed config:
mise trust
mise set --file mise.local.toml MORGEN_API_KEY=your_api_key
Then run the server:
uv run morgenmcp
Local Debugging with MCP Inspector
The MCP Inspector provides a web UI for testing tools and inspecting requests/responses:
npx @modelcontextprotocol/inspector uv run morgenmcp
Opens at http://localhost:6274
Releasing
Releases are managed via git tags:
git tag -a v0.1.0 -m "Release v0.1.0"
git push origin v0.1.0
Users can then reference the specific version in their MCP client configuration.
Contributing
See AGENTS.md for environment setup, conventions, and the checks to run before handing off changes.
AI-assisted contributions are welcome and must be disclosed — see AI_POLICY.md, adapted from the Ghostty project's AI policy (MIT).
License
Related Skills
Agent-Reach
80.6kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ruflo
72.4k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
headroom
72.0kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.0kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install. (formerly chatgpt-on-wechat)
