Skip to main content
Glama

MCP Server for macOS

by avanomme

MCP (Master Control Program) Server for macOS

A modern, extensible MCP server that allows you to control and interact with various macOS applications through a unified interface.

Features

  • šŸš€ Modern Python-based architecture

  • šŸ”Œ Plugin system for easy extension

  • šŸ”’ Secure communication protocol

  • šŸ“± Native macOS integration

  • šŸ› ļø Easy to extend and customize

  • šŸ“Š Built-in monitoring and logging

Project Structure

mcp_mac/ ā”œā”€ā”€ src/ │ ā”œā”€ā”€ core/ # Core MCP functionality │ ā”œā”€ā”€ plugins/ # Application-specific plugins │ ā”œā”€ā”€ utils/ # Utility functions │ └── api/ # API endpoints ā”œā”€ā”€ tests/ # Test suite ā”œā”€ā”€ config/ # Configuration files └── docs/ # Documentation

Requirements

  • Python 3.9+

  • macOS 10.15+

  • pip (Python package manager)

Installation

  1. Clone the repository:

git clone https://github.com/yourusername/mcp_mac.git cd mcp_mac
  1. Create and activate a virtual environment:

python -m venv venv source venv/bin/activate
  1. Install dependencies:

pip install -r requirements.txt

Usage

  1. Start the MCP server:

python src/main.py
  1. The server will start on localhost:8080 by default.

  2. To add new application support, create a new plugin in the plugins directory.

Creating Custom Plugins

  1. Create a new Python file in the plugins directory

  2. Inherit from the base Plugin class

  3. Implement the required methods

  4. Register your plugin in the plugin registry

Example plugin structure:

from core.plugin import Plugin class MyAppPlugin(Plugin): def __init__(self): super().__init__("my_app") def initialize(self): # Initialize your plugin pass def handle_command(self, command): # Handle incoming commands pass

Configuration

The server can be configured through the config/config.yaml file. Available options:

  • port: Server port (default: 8080)

  • host: Server host (default: localhost)

  • log_level: Logging level (default: INFO)

  • plugins: List of enabled plugins

Security

  • All communication is encrypted using TLS

  • Authentication required for all API endpoints

  • Rate limiting enabled by default

  • Secure plugin sandboxing

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Commit your changes

  4. Push to the branch

  5. Create a Pull Request

License

MIT License - see LICENSE file for details

Support

For support, please open an issue in the GitHub repository or contact the maintainers.

-
security - not tested
F
license - not found
-
quality - not tested

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides tools for Xcode-related operations, making it easier to work with iOS project management, building, testing, archiving, and deploying apps to both simulators and physical devices.
    Last updated -
    9
    37
    7
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    A Python server that enables interaction with macOS native applications (Contacts, Notes, Mail, Messages, Reminders, Calendar, and Maps) through AppleScript, featuring asynchronous operations and type-safe interfaces.
    Last updated -
    16
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables running AppleScript code to interact with Mac applications and system features including Notes, Calendar, Contacts, Messages, file management, and more.
    Last updated -
    1
    122
    378
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A server for managing and controlling Marvin, providing an interface for interacting with the Marvin system.
    Last updated -
    1
    MIT License

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/avanomme/mcp_mac'

If you have feedback or need assistance with the MCP directory API, please join our Discord server