Experiments
FreeNot checkedThis project provides an MCP (Model Context Protocol) server that allows LLMs to perform actions to control a Mac desktop computer using bash and AppleScript.
About
This project provides an MCP (Model Context Protocol) server that allows LLMs to perform actions to control a Mac desktop computer using bash and AppleScript.
README
This repository contains some MCP (Model Context Protocol) servers I've been playing around with for executing Bash and AppleScript commands from large language models (LLMs) on a Mac. I tested it using the Claude Desktop client.
Example Usage
Once the tool is properly configured and loaded into Claude Desktop, you can ask Claude to do new things. The tools available in restricted mode include:
say: Could you please say "Hello World!"whoami: Which user am I running as?
In arbitrary execution mode (described below), you can ask Claude to perform more complicated actions.
Requirements
- macOS (Required for AppleScript tool)
- Claude Desktop, or other MCP client
- Python 3.13 or higher
mcppackage for Pythonpytestpackage for tests
Installation
Clone the repository:
git clone .../mcp-experiments cd mcp-experimentsCreate and activate a virtual environment:
python3 -m venv .venv source .venv/bin/activateInstall the required dependencies:
pip install -r requirements.txtConfigure Claude Desktop for Mac to load the servers.
i. Modify the configuration file located at:
~/Library/Application Support/Claude/claude_desktop_config.json.ii. An example configuration is provided in
claude_decktop_config.example.jsonin this repository.iii. Ensure the
commandandargsfields point to the correct Python interpreter and script path.iv. Ensure that
MCP_EXECUTION_MODEis set to your desired safety level.
{
"mcpServers": {
"applescript": {
"command": "/path/to/mcp-experiments/.venv/bin/python",
"args": [
"/path/to/mcp-experiments/applescript.py"
],
"env": {
"MCP_EXECUTION_MODE": "restricted"
}
},
"bash": {
"command": "/path/to/mcp-experiments/.venv/bin/python",
"args": [
"/path/to/mcp-experiments/bash.py"
],
"env": {
"MCP_EXECUTION_MODE": "restricted"
}
}
}
}
Arbitrary Execution Mode
[!WARNING] Setting the environment variable
MCP_EXECUTION_MODEtoarbitrarywill allow this server to execute arbitrary code generated by the client (LLM) on your computer. This is a security concern and may result in unintended consequences. Please consider using a sandbox to play around with this mode.
TO enable arbitrary execution mode, set the environment variable MCP_EXECUTION_MODE to arbitrary. Two more tools are then exposed to the client:
execute_bash: Runs arbitrary bash script as the current user and returns the result.execute_applescript: Runs arbitrary AppleScript script as the current user and returns the result.
File Structure
applescript.py: A server script that defines theexecute_applescripttool, which uses AppleScript to complete tasks.bash.py: A server script that defines theexecute_bashtool, which uses bash to complete tasks.claude_desktop_config.example.json: Example configuration file for the MCP server. Yours may be located in~/Library/Application Support/Claude.requirements.txt: Python dependencies for the project.test: Pytest unit tests for the applescript and bash tools.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Credits
This project was created by Jordan Perr-Sauer. Github Copilot (with GPT-4o and Claude 3.5 Sonnet) was used to generate some of the content in this repository.
Installing Experiments
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/jordanperr/mcp-experimentsFAQ
Is Experiments MCP free?
Yes, Experiments MCP is free — one-click install via Unyly at no cost.
Does Experiments need an API key?
No, Experiments runs without API keys or environment variables.
Is Experiments hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Experiments in Claude Desktop, Claude Code or Cursor?
Open Experiments on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Experiments with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
