Mcp server with singular tool communication to agent using o4-mini with OpenAI Agent SDK integration to manage google/apple calendar.
Configuration
View docs{
"mcpServers": {
"kristofferv98-mcp_calender_agent": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp_calender_agent",
"run",
"mcp-ical"
],
"env": {
"OPENAI_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}The MCP iCal Server provides an agent-powered interface to macOS Calendar, allowing natural language interactions to create, manage, and query calendar events through a single MCP tool that delegates to a calendar agent. This approach simplifies client integration and enables Stateful conversations across requests within the same session.
Use this server with an MCP-compatible client to perform calendar operations through natural language. You can ask it to schedule events, check availability, move or update events, and manage multiple calendars. The server uses a single MCP tool (send_to_calendar_agent) that hands the request to a calendar agent, which processes the language and returns structured results ready for the client.
Prerequisites and installation flow focus on setting up the MCP server with Claude for Desktop, as described in the README. Follow these concrete steps to get up and running.
# Prerequisites
uv package manager
macOS with Calendar app configured
An MCP client - Claude for desktop is recommended
OPENAI_API_KEY environment variable set to your API key
# Installation steps
# Clone the repository
git clone https://github.com/yourusername/mcp-ical.git
cd mcp-ical
# Install dependencies
uv sync
# Configure Claude for Desktop with API Key
# Create or edit the Claude desktop config file
# Path: ~/Library/Application Support/Claude/claude_desktop_config.json
# Include your OpenAI API key as an environment variable in the mcpServers entry
# Example content (shown in README):
```
{
"mcpServers": {
"mcp-ical": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-ical",
"run",
"mcp-ical"
],
"env": {
"OPENAI_API_KEY": "your-api-key-here"
}
}
}
}
```
# Start Claude and access the calendar
# Launch Claude from the terminal to request calendar permissions properly
/Applications/Claude.app/Contents/MacOS/Claude
# Start using
# Try a calendar query or an event creation request like:
# "What's my schedule looking like for next week?"The server is configured for silent, zero-config operation where natural language is translated into calendar actions by a dedicated agent. The README describes using Claude for Desktop as the client and a local MCP runtime managed by the UV tool. The key runtime command shown for starting the MCP server is the UV runtime with a directory pointing to the local project and the script name to run, along with an API key provided via environment variables.
The project includes a testing workflow to ensure calendar operations work as expected. It uses the UV tool to install development dependencies and run tests. Follow these steps to run tests locally.
# Install dev dependencies
uv sync --dev
# Run test suite
uv run pytest testsThe implementation exposes a single MCP tool named send_to_calendar_agent. When invoked, it forwards the request to a calendar agent built with the OpenAI Agent SDK. The agent interprets the natural language request, performs the corresponding calendar operations, and returns formatted results to the client. This approach simplifies client integration, preserves context across a session, and enables natural calendar interactions.
Compared to earlier MCP implementations, this server uses an agent-based processing layer to interpret language rather than exposing multiple individual tools. It retains core calendar functionality while reimplementing the user interaction layer to support Stateful conversations.
Single MCP tool that delegates to a specialized calendar agent to process natural language calendar requests and perform the corresponding calendar operations