macOS MCP Servers
Enables Claude Desktop and GitHub Copilot to interact with native macOS applications including Spotify, Apple Music, Notes, Calendar, FaceTime, and Contacts through natural language commands. Provides comprehensive control over music playback, note management, calendar events, video calls, and contact operations using AppleScript integration.
README
macOS MCP Servers for Claude Desktop
A collection of Model Context Protocol (MCP) servers that enable Claude Desktop to interact with native macOS applications including Spotify, Apple Music, Notes, Calendar, FaceTime, and Contacts.
Overview
This project provides 6 MCP servers that bridge the gap between Claude Desktop and your macOS native applications, with full GitHub Copilot integration for VS Code users:
- Spotify MCP Server: Control Spotify playback, search tracks, manage playlists
- Apple Music MCP Server: Control Apple Music, browse library, manage playlists
- Notes MCP Server: Create, read, search, and manage Apple Notes
- Calendar MCP Server: View and create calendar events, manage schedules
- FaceTime MCP Server: Initiate video/audio calls, manage call settings
- Contacts MCP Server: Search, create, update, and manage contacts
🚀 NEW: GitHub Copilot Integration
In addition to Claude Desktop, you can now use these servers directly in VS Code through GitHub Copilot Chat! Ask Copilot to control your macOS apps using natural language.
Prerequisites
- macOS (tested on macOS 13+)
- Node.js 18+
- Claude Desktop app
- AppleScript permissions for the applications you want to control
Installation
For Claude Desktop
-
Clone the repository:
git clone <repository-url> cd project-2 -
Install dependencies:
npm install -
Build the TypeScript code:
npm run build -
Configure Claude Desktop:
Copy the provided
claude_desktop_config.jsonto your Claude Desktop configuration directory:# On macOS, the config file should be placed at: cp claude_desktop_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.jsonOr manually add the server configurations to your existing Claude Desktop config file.
For GitHub Copilot (VS Code)
-
Complete the Claude Desktop installation steps above first
-
Install the VS Code extension:
cd vscode-extension npm install npm run compile -
Install the extension in VS Code:
# Package the extension (run from vscode-extension directory) cd vscode-extension npx vsce package # Install in VS Code code --install-extension macos-mcp-servers-vscode-1.0.0.vsix -
Configure the extension:
- Open VS Code settings (Cmd+,)
- Search for "macOS MCP"
- Set the project path to your compiled dist directory (e.g.,
/path/to/project-2/dist) - Or enable auto-detection if the project is in your workspace
-
Grant necessary permissions:
When you first use each server, macOS will prompt you to grant permissions for:
- System Events (for keyboard shortcuts)
- Individual apps (Spotify, Music, Notes, Calendar, FaceTime, Contacts)
Grant these permissions in System Preferences > Security & Privacy > Privacy.
Configuration
The claude_desktop_config.json file contains the configuration for all 6 MCP servers. Make sure the paths point to your built JavaScript files:
{
"mcpServers": {
"spotify-mcp-server": {
"command": "node",
"args": ["/absolute/path/to/project-2/dist/spotify/index.js"]
},
// ... other servers
}
}
Available Tools
Spotify MCP Server
get_current_track- Get information about the currently playing trackplay_pause- Toggle play/pausenext_track/previous_track- Skip tracksset_volume- Control volume (0-100)search_tracks- Search for tracksget_playlists- List user playlistsplay_playlist- Play a specific playlisttoggle_shuffle/toggle_repeat- Control playback modesset_position- Seek to specific position in track
Apple Music MCP Server
get_current_track- Get currently playing song infoplay_pause- Toggle playbacknext_track/previous_track- Skip tracksset_volume- Control volumesearch_library- Search Apple Music librarysearch_artist- Find artistsget_playlists- List playlistsplay_playlist- Play specific playlisttoggle_shuffle/toggle_repeat- Playback controlsget_library_stats- Get library statistics
Notes MCP Server
create_note- Create new note with title and contentget_note- Retrieve specific note by titlesearch_notes- Search notes by content or titleupdate_note- Modify existing note contentdelete_note- Remove a notelist_notes- Get all notes with basic infoget_folders- List note folderscreate_folder- Create new note folder
Calendar MCP Server
get_today_events- Show today's calendar eventsget_upcoming_events- Show future events (next 7 days)create_event- Create new calendar eventsearch_events- Find events by title or contentget_event_details- Get detailed event informationlist_calendars- Show available calendarsget_events_for_date- Get events for specific date
FaceTime MCP Server
start_facetime_call- Start video call with contactstart_facetime_audio_call- Start audio-only callcheck_facetime_status- Check FaceTime availabilityend_current_call- End active calltoggle_mute- Mute/unmute microphonetoggle_video- Turn camera on/off
Contacts MCP Server
search_contacts- Find contacts by name, email, or phoneget_contact_details- Get full contact informationcreate_contact- Add new contactupdate_contact- Modify contact informationdelete_contact- Remove contactget_all_contacts- List all contacts (limited to 50)get_contact_groups- Show contact groupsget_recent_contacts- Show recently added contacts
Usage Examples
Claude Desktop
Once configured, you can interact with your macOS apps through Claude Desktop:
- "Play my workout playlist on Spotify"
- "Create a note about today's meeting"
- "What's on my calendar for tomorrow?"
- "Start a FaceTime call with John"
- "Find all contacts from Apple Inc"
- "Pause the music and turn up the volume"
GitHub Copilot in VS Code
With the VS Code extension installed, you can use GitHub Copilot Chat with the @macos-mcp participant:
Chat Commands
@macos-mcp play my favorite playlist on Spotify@macos-mcp create a note called "Meeting Notes"@macos-mcp what's on my calendar today?@macos-mcp call mom on FaceTime@macos-mcp search contacts for John@macos-mcp pause the music
Command Palette
You can also use VS Code's Command Palette (Cmd+Shift+P) to access quick actions:
- macOS MCP: Get Current Spotify Track
- macOS MCP: Spotify Play/Pause
- macOS MCP: Create Apple Note
- macOS MCP: Get Today's Calendar Events
- macOS MCP: Search Contacts
- macOS MCP: Start FaceTime Call
Example Conversations
Music Control:
You: @macos-mcp what's currently playing on Spotify?
Copilot: 🎵 Current Track: "Bohemian Rhapsody" by Queen (4:32 remaining)
You: @macos-mcp pause it and set volume to 50
Copilot: 🎵 Paused playback
🔊 Volume set to 50%
Notes and Calendar:
You: @macos-mcp create a note about the team meeting and check my calendar
Copilot: 📝 Created note: "Team Meeting Notes"
📅 Today's Events: Daily Standup (10:00 AM), Team Meeting (2:00 PM)
Development
Building the VS Code Extension
cd vscode-extension
npm run compile
Packaging the Extension
cd vscode-extension
npm install -g vsce
vsce package
Testing Individual Servers
You can test each server individually:
# Test Spotify server
node dist/spotify/index.js
# Test Notes server
node dist/notes/index.js
Adding New Features
Each server follows the same pattern:
- Define Zod schemas for input validation
- Implement tool handlers using AppleScript
- Register tools with the MCP server
- Handle errors gracefully
Troubleshooting
Common Issues
-
Permission Denied Errors
- Ensure you've granted the necessary permissions in System Preferences
- Try running the failing operation manually first
-
App Not Found Errors
- Make sure the target application is installed
- Verify the application name in the AppleScript
-
Claude Desktop Not Recognizing Servers
- Check that the config file is in the correct location
- Verify all file paths are absolute and correct
- Restart Claude Desktop after configuration changes
-
VS Code Extension Not Working
- Ensure the extension is properly installed and activated
- Check the project path in extension settings
- Verify the MCP servers are built in the dist directory
- Restart VS Code after configuration changes
-
GitHub Copilot Chat Participant Not Available
- Make sure you have GitHub Copilot subscription
- Verify the extension is activated (check Extensions view)
- Try reloading the VS Code window (Cmd+R)
-
Build Errors
- Run
npm installto ensure all dependencies are installed - Check TypeScript compilation with
npm run build
- Run
Debug Mode
For debugging Claude Desktop servers, you can run servers with additional logging:
DEBUG=* node dist/spotify/index.js
For debugging the VS Code extension:
- Open the extension development host (F5 in the extension folder)
- Check the Output panel for "macOS MCP Servers" logs
- Use Developer Tools (Help > Toggle Developer Tools) for detailed debugging
Security Considerations
- These servers use AppleScript to control macOS applications
- All operations require explicit user permission grants
- No sensitive data is stored or transmitted
- All interactions are local to your machine
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on macOS
- Submit a pull request
License
This project is provided as-is for educational and personal use. Please respect the terms of service of the applications you're integrating with.
Support
If you encounter issues:
- Check the troubleshooting section above
- Verify your macOS permissions
- Ensure all applications are properly installed
- Check Claude Desktop logs for error details
Note: This project requires macOS and uses AppleScript for native app integration. It will not work on other operating systems.
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
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.