macOS Tools MCP Server
Provides advanced system monitoring and file search capabilities for macOS, including real-time performance tracking, process analysis, and enhanced file search with Spotlight integration
Leverages macOS Spotlight for fast metadata searches with additional capabilities like deep content search, tag management, and advanced filtering options
Uses SQLite database for storing and analyzing system performance data over time, enabling historical tracking with efficient time-series queries
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@macOS Tools MCP Servershow me current CPU and memory usage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
macOS Internal Tools MCP Server
A MCP server for macOS that provides advanced system monitoring and file search capabilities.
Table of Contents
System Performance Monitor
Real-time Monitoring: Track CPU, memory, disk I/O, and network statistics
Process Analysis: View top resource-consuming processes with detailed metrics
Historical Tracking: Store and analyze performance data over time using SQLite
Optimization Suggestions: Get intelligent recommendations to improve system performance
Enhanced File Search
Deep Content Search: Search within file contents using regex or plain text
Spotlight Integration: Leverage macOS Spotlight for fast metadata searches
Tag Management: Create, search, and manage custom file tags using extended attributes
Advanced Features: Fuzzy matching, boolean operators, and file type filtering
Related MCP server: IT-MCP
Installation
Requirements
macOS 10.15 or later
Node.js 18.0.0 or later
npm or yarn package manager
Permissions
For full functionality, the server requires certain permissions:
Full Disk Access (recommended for file search):
System Preferences → Security & Privacy → Privacy → Full Disk Access
Add Terminal
Developer Tools (for process monitoring):
Install Xcode Command Line Tools if not already installed:
xcode-select --install
How to install
Claude Desktop Configuration
To use this MCP server with Claude Desktop:
Open your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the macOS Tools server to your configuration:
{
"mcpServers": {
"macos-tools": {
"command": "npx",
"args": [
"@tgomareli/macos-tools-mcp"
],
"env": {}
}
}
}If you already have other MCP servers configured, add the macos-tools configuration to the existing mcpServers object:
{
"mcpServers": {
"existing-server": {
// ... existing configuration
},
"macos-tools": {
"command": "npx",
"args": [
"@tgomareli/macos-tools-mcp"
],
"env": {}
}
}
}Save the configuration file and restart Claude Desktop.
You should now see the macOS Tools server available in Claude Desktop with two tools:
system_performance- Monitor system resourcesenhanced_search- Advanced file search and tagging
MCP Installer
Or you can use mcp-installer for installing it directly, without opening config files.
Just type in claude
Hey Claude, install the MCP server named macos-tools-mcp
Available Tools
system_performance
Monitor and analyze system performance metrics.
Parameters:
action(required): "current" | "history" | "processes" | "optimize"timeRange(optional): Time range for historical data ("1h", "24h", "7d")metric(optional): Specific metric to analyze ("cpu", "memory", "disk", "network", "all")
Examples:
await callTool("system_performance", {
action: "current",
metric: "all"
});
await callTool("system_performance", {
action: "history",
timeRange: "24h",
metric: "memory"
});
await callTool("system_performance", {
action: "processes",
metric: "cpu"
});
await callTool("system_performance", {
action: "optimize"
});enhanced_search
Advanced file search with content analysis and tagging capabilities.
Parameters:
action(required): "search" | "tag" | "untag"query(optional): Search query (supports regex)searchType(optional): "content" | "filename" | "tags" | "regex"fileTypes(optional): Array of file extensions to includepath(optional): Root directory for searchmaxResults(optional): Maximum number of resultstags(optional): Array of tags to search for or apply
Examples:
// Search for TODO comments in code files
await callTool("enhanced_search", {
action: "search",
query: "TODO|FIXME",
searchType: "regex",
fileTypes: ["js", "ts", "py"],
path: "~/Projects"
});
await callTool("enhanced_search", {
action: "tag",
path: "~/Documents/important.pdf",
tags: ["urgent", "project-x"]
});
await callTool("enhanced_search", {
action: "search",
searchType: "tags",
tags: ["urgent"],
path: "~/Documents"
});
await callTool("enhanced_search", {
action: "search",
query: "apiKey",
searchType: "content",
fileTypes: ["json", "env"],
path: "~/Projects",
maxResults: 50
});Key Features
Native macOS Integration
Uses native commands (ps, mdfind, xattr) for optimal performance
Leverages Spotlight index for fast searches
Supports macOS extended attributes for tagging
Performance Optimization
Multi-level caching system
Debounced operations
Rate limiting for system calls
Streaming for large files
Data Persistence
SQLite database for performance history
Configurable data retention
Efficient time-series queries
License
MIT License - see LICENSE file for details
Testing the Server
Once you've configured the server in Claude Desktop, you can use these prompts to test all functionality:
Quick Test Prompts
Basic Performance Check:
Show me my current system performance metricsProcess Analysis:
What are the top 5 CPU-consuming processes on my system?File Search:
Search for TODO comments in JavaScript files in my current directorySystem Optimization:
Analyze my system and suggest performance optimizations
Comprehensive Test Suite
Use this comprehensive prompt to test all features:
I want to test the macOS Tools MCP server. Please help me:
1. **System Performance Testing**:
- Show me the current system performance metrics (CPU, memory, disk, network)
- Display the top 5 processes consuming the most CPU
- Show me memory usage history for the last hour
- Analyze my system and provide optimization suggestions
- Get the top memory-consuming processes
2. **File Search Testing**:
- Search for all JavaScript and TypeScript files containing "TODO" or "FIXME" comments in my home directory
- Find all files with "test" in their filename in the current project directory
- Search for files containing the word "password" in configuration files (.json, .env, .yml)
- Use regex to find all email addresses in text files
- Search for files modified in the last 24 hours
3. **Tag Management Testing**:
- Tag this file with "important" and "reviewed": /Users/tornikegomareli/Development/macos-tools-mcp/README.md
- Search for all files tagged with "important"
- Remove the "reviewed" tag from the README file
- Tag all TypeScript files in the src directory with "source-code"
4. **Combined Operations**:
- Monitor system performance while performing a large file search
- Find resource-intensive processes and then search for their log files
- Show current disk usage and search for large files (> 100MB)
5. **Edge Cases**:
- Search in a non-existent directory
- Try to tag a file I don't have permission to modify
- Request performance data for an invalid time range
- Search with an invalid regex patternExpected Behaviors
Performance Monitor: Should return real-time metrics, process lists, historical data, and optimization suggestions
File Search: Should find files by content, name, or tags, with support for regex patterns
Tag Operations: Should successfully add/remove tags and search by them
Error Handling: Should gracefully handle permission errors, invalid paths, and malformed queries
Future Enhancements
GPU monitoring support
Network connection analysis
Application-specific performance tracking
Integration with Time Machine for file version search
Available Tools
2 toolsenhanced_searchC
Advanced file search with content analysis and tagging
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Search or manage tags | |
| query | No | Search query (supports regex) | |
| searchType | No | Type of search to perform | |
| fileTypes | No | File extensions to include | |
| path | No | Root directory for search | |
| maxResults | No | Maximum number of results | |
| tags | No | Tags to search for or apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Advanced file search' implies read operations, and 'tagging' suggests mutation capabilities, the description doesn't clarify permissions needed, whether tagging is destructive/reversible, rate limits, or what the response format looks like. For a tool with both search and mutation capabilities, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 7 words, front-loading the core functionality. Every word earns its place by conveying the tool's advanced nature, search capability, content analysis feature, and tagging functionality without any waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain the relationship between search and tagging operations, doesn't clarify behavioral aspects like permissions or side effects, and provides minimal context beyond the basic purpose. The tool appears to have both read and write capabilities which need more explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions 'content analysis' which isn't directly reflected in parameters, but doesn't explain how this relates to the documented parameters like 'searchType' or 'query'. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Advanced file search with content analysis and tagging', which includes a specific verb ('search') and resource ('file') with additional capabilities. However, it doesn't explicitly distinguish this from its sibling tool 'system_performance', which appears unrelated to file search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this tool is appropriate versus other search methods, or any exclusions. The single sibling tool appears unrelated, so no comparative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_performanceC
Monitor system performance and analyze resource usage
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Type of performance analysis | |
| timeRange | No | Time range for historical data (e.g., '1h', '24h', '7d') | |
| metric | No | Specific metric to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'monitor' and 'analyze' imply read-only operations, it doesn't clarify if 'optimize' might involve mutations, rate limits, authentication needs, or what the output looks like. For a tool with an 'optimize' action and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of a single, efficient sentence that directly states the tool's purpose without unnecessary details. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a performance monitoring tool with actions like 'optimize' and no annotations or output schema, the description is incomplete. It fails to address behavioral aspects, usage context, or output expectations, leaving critical gaps for an AI agent to understand how to invoke it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add meaning beyond what the input schema provides, as schema description coverage is 100% with clear parameter descriptions and enums. The baseline score of 3 is appropriate because the schema adequately documents the parameters, and the description doesn't compensate or enhance this information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('monitor' and 'analyze') and resources ('system performance' and 'resource usage'), making it immediately understandable. However, it doesn't differentiate from the sibling tool 'enhanced_search', which might also relate to system analysis, leaving room for potential confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as the sibling 'enhanced_search'. It lacks context about specific scenarios, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
- First observed
enhanced_search - First observed
system_performance
TDQS
The two tools have clearly distinct purposes: enhanced_search focuses on file search and content analysis, while system_performance handles monitoring and resource usage analysis. There is no overlap in functionality, making it easy for an agent to choose the correct tool for each task.
Both tools use snake_case naming, which is consistent. However, with only two tools, it's difficult to assess a full pattern; enhanced_search uses an adjective+noun format, while system_performance uses noun+noun, showing minor deviation in structure but maintaining readability.
With only 2 tools, the server feels thin for a macOS Tools MCP Server, which suggests a broader scope. This limited set may not adequately cover common macOS operations like file management, system settings, or process control, making it under-scoped for its apparent purpose.
The tool surface has significant gaps for a macOS server. While search and performance monitoring are covered, there are no tools for basic operations like file manipulation, system configuration, or process management, which are typical in this domain. This incompleteness could lead to agent failures when handling common tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Gain visibility into the performance, availability, and health of your apps and infrastructure.
ASO analytics and App Store optimization tools for indie iOS developers and AI agents.
Used-Mac market: quality-gated listings with deep links, asking-price stats, trust checks, alerts.
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceProvides comprehensive system diagnostics and hardware analysis through 10 specialized tools for troubleshooting and environment monitoring. Offers targeted information gathering for CPU, memory, network, storage, processes, and security analysis across Windows, macOS, and Linux platforms.10-
- FlicenseNot gradedqualityNot gradedmaintenanceProvides comprehensive macOS, Linux, and Windows system administration, diagnostics, and optimization tools including network inspection, security scanning, compliance auditing, database diagnostics, and structured DevOps task planning.-
- AlicenseNot gradedqualityDmaintenanceEnables real-time monitoring of system resources including CPU, GPU (NVIDIA, Apple Silicon, AMD/Intel), memory, disk, network, and processes across Windows, macOS, and Linux platforms through natural language queries.3MIT
- FlicenseAqualityDmaintenanceProvides tools to monitor host system health including CPU load, disk usage, and network status while enabling file system management tasks like searching and moving files. It includes built-in safety guards to prevent operations on critical system directories.11-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tornikegomareli/macos-tools-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server