MacOS Resource Monitor MCP Server
by Pratyay
A lightweight MCP server that identifies resource-intensive processes on macOS across CPU, memory, and network usage. It exposes an MCP endpoint for monitoring system resources and returns data in a structured JSON format.
Last updated: N/A
MacOS Resource Monitor MCP Server
A Model Context Protocol (MCP) server that identifies resource-intensive processes on macOS across CPU, memory, and network usage.
Overview
MacOS Resource Monitor is a lightweight MCP server that exposes an MCP endpoint for monitoring system resources. It analyzes CPU, memory, and network usage, and identifies the most resource-intensive processes on your Mac, returning data in a structured JSON format.
Requirements
- macOS operating system
- Python 3.7+
- MCP server library
Installation
-
Clone this repository:
git clone https://github.com/Pratyay/mac-monitor-mcp.git cd mac-monitor-mcp
-
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate
-
Install the required dependencies:
pip install mcp
Usage
-
Start the MCP server:
python src/monitor.py
-
You should see the message:
Simple MacOS Resource Monitor MCP server starting... Monitoring CPU, Memory, and Network resource usage...
-
The server will start and expose the MCP endpoint, which can be accessed by an LLM or other client.
Using the Tool
The server exposes a single tool:
get_resource_intensive_processes()
: Returns information about the most resource-intensive processes
When called, this tool will return a JSON object containing information about the top resource consumers in each category (CPU, memory, and network).
Sample Output
{
"cpu_intensive_processes": [
{
"pid": "1234",
"cpu_percent": 45.2,
"command": "firefox"
},
{
"pid": "5678",
"cpu_percent": 32.1,
"command": "Chrome"
}
],
"memory_intensive_processes": [
{
"pid": "1234",
"memory_percent": 8.5,
"resident_memory_kb": 1048576,
"command": "firefox"
},
{
"pid": "8901",
"memory_percent": 6.2,
"resident_memory_kb": 768432,
"command": "Docker"
}
],
"network_intensive_processes": [
{
"command": "Dropbox",
"network_connections": 12
},
{
"command": "Spotify",
"network_connections": 8
}
]
}
How It Works
The MacOS Resource Monitor uses built-in macOS command-line utilities:
ps
: To identify top CPU and memory consuming processeslsof
: To monitor network connections and identify network-intensive processes
Data is collected when the tool is invoked, providing a real-time snapshot of system resource usage.
Integration with LLMs
This MCP server is designed to work with Large Language Models (LLMs) that support the Model Context Protocol. The LLM can use the get_resource_intensive_processes
tool to access system resource information and provide intelligent analysis.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Potential Improvements
Here are some ways you could enhance this monitor:
- Add disk I/O monitoring
- Improve network usage monitoring to include bandwidth
- Add visualization capabilities
- Extend compatibility to other operating systems