
apple_reminder_mcp_server
一个通过 FastMCP 提供 Apple Reminders 编程访问的 MCP 服务器。
Repository Info
About This Server
一个通过 FastMCP 提供 Apple Reminders 编程访问的 MCP 服务器。
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
Apple Reminders MCP Server - Documentation
README.md
# Apple Reminders MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with Apple Reminders on macOS. This server provides tools to create, read, list, and delete reminders programmatically through AppleScript.
## Features
- ✅ Create reminders with due dates, times, notes, and locations
- 📋 List all reminder lists
- 🔍 Fetch reminders from specific lists (completed or pending)
- 🗑️ Delete reminders by name
- 🤖 Compatible with Claude Desktop and other MCP clients
- 🍎 Native macOS integration via AppleScript
## Prerequisites
- macOS (required for AppleScript)
- Python 3.10 or higher
- Apple Reminders app
## Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/apple-reminder-mcp-server.git
cd apple-reminder-mcp-server
- Create a virtual environment:
python3 -m venv .venv
source .venv/bin/activate # On macOS/Linux
- Install dependencies:
pip install mcp fastmcp python-dotenv
Configuration
The server uses stdio transport by default, no additional configuration needed.
Usage
Running the Server
python3 server.py
Testing with MCP Inspector
The MCP Inspector is a web-based tool for testing MCP servers. Follow these steps to test your server:
1. Launch MCP Inspector
npx @modelcontextprotocol/inspector stdio "python3 server.py"
This will:
- Start a proxy server on
localhost:6277 - Open the inspector interface in your browser at
http://localhost:6274 - Display a session token for authentication
2. Configure Connection Settings
When the inspector opens in your browser, configure the connection with these settings:
- Transport Type:
STDIO - Command:
python3 - Arguments:
/Users/shreyanshjain/apple_reminder_mcp_server/server.py
Note: Replace the path in Arguments with the actual path to your server.py file
3. Connect to the Server
Click "Connect" to establish connection with your MCP server. You should see:
- Server status change to "Connected"
- List of available tools in the interface
4. Test the Tools
Example: Testing create_reminder
- Select
create_reminderfrom the tools list - Fill in the parameters:
{ "title": "Test Reminder", "due_date": "2024-12-25", "due_time": "140000", "notes": "This is a test reminder", "list_name": "Reminder Created using Agent" } - Click "Execute"
- Check the response:
{ "result": "Reminder 'Test Reminder' created successfully in list 'Reminder Created using Agent'. AppleScript Output: " }
Example: Testing list_reminder_lists
- Select
list_reminder_listsfrom the tools list - No parameters needed
- Click "Execute"
- View your reminder lists in the response
Example: Testing get_reminder
- Select
get_reminderfrom the tools list - Fill in parameters:
{ "list_name": "Reminder Created using Agent", "completed": false, "limit": 10 } - Click "Execute"
- View the reminders in the specified list
Integration with Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"apple-reminders": {
"command": "python3",
"args": ["/path/to/your/apple_reminder_mcp_server/server.py"]
}
}
}
Available Tools
1. create_reminder
Creates a new reminder in Apple Reminders.
Parameters:
title(required): The title of the reminderdue_date(required): Due date in YYYY-MM-DD formatdue_time(optional): Time in HHMMSS format (default: 090000 for 9 AM)notes(optional): Additional notes/body textlist_name(optional): Target list name (default: "Reminder Created using Agent")location(optional): Location for location-based reminders
Example Request:
{
"title": "Team Meeting",
"due_date": "2024-12-25",
"due_time": "140000",
"notes": "Discuss Q1 goals",
"list_name": "Work"
}
Example Response:
{
"result": "Reminder 'Team Meeting' created successfully in list 'Work'. AppleScript Output: "
}
2. get_reminder
Fetches reminders from a specific list.
Parameters:
list_name(required): Name of the reminder listcompleted(optional): Whether to fetch completed reminders (default: false)limit(optional): Maximum number of reminders to return (default: 20)
Example Response:
[
{
"name": "Team Meeting",
"body": "Discuss Q1 goals",
"due_date": "Wednesday, December 25, 2024 at 2:00:00 PM",
"completed": false
}
]
3. list_reminder_lists
Returns all available reminder lists.
Parameters: None
Example Response:
[
"Reminders",
"Work",
"Personal",
"Shopping",
"Reminder Created using Agent"
]
4. delete_reminder
Deletes a reminder by name.
Parameters:
name(required): The exact name of the reminder to deletelist_name(optional): Specific list to search in (searches all lists if not provided)
Example Response:
{
"result": "Deleted 1 reminder(s) named 'Team Meeting' from list 'Work'"
}
Output Schema
All tools return responses following this schema:
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": ["result"],
"title": "ToolOutput"
}
Project Structure
apple_reminder_mcp_server/
├── server.py # Main MCP server implementation
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore file
└── README.md # This file
Troubleshooting
Common Issues
-
"spawn python3 ENOENT" error in MCP Inspector
- Use separate fields for command and arguments
- Command:
python3 - Arguments:
/full/path/to/server.py
-
"No reminder list found" error
- Make sure the list name exactly matches (case-sensitive)
- Use
list_reminder_liststo see available lists
-
Permission errors with AppleScript
- Grant Terminal/IDE permission to control Reminders in System Preferences > Security & Privacy > Automation
-
MCP Inspector connection issues
- Ensure the path in Arguments is absolute, not relative
- Check that Python 3 is in your system PATH
- Try using the full Python path:
/usr/bin/python3or/opt/homebrew/bin/python3
Debug Mode
To enable debug logging, modify the logging level in server.py:
logging.basicConfig(level=logging.DEBUG)
Verifying Server Operation
You can verify the server is working by checking the terminal output:
INFO:root:Starting MCP server with stdio transport...
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with FastMCP
- Uses AppleScript for native macOS integration
- Compatible with the Model Context Protocol
Support
For issues and questions:
- Open an issue on GitHub
- Check existing issues for solutions
- Ensure you're running on macOS with proper permissions
Quick Start
Clone the repository
git clone https://github.com/shreyanshjain05/apple_reminder_mcp_serverInstall dependencies
cd apple_reminder_mcp_server
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.