Lets agents control local or remote macOS desktops for automation without extra API keys.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add remote-macos-use --env MACOS_USERNAME='<MACOS_USERNAME>' --env MACOS_PASSWORD='<MACOS_PASSWORD>' --env MACOS_HOST='<MACOS_HOST>' -- docker run -i -e 'MACOS_USERNAME={{config.MACOS_USERNAME}}' -e 'MACOS_PASSWORD={{config.MACOS_PASSWORD}}' -e 'MACOS_HOST={{config.MACOS_HOST}}' --rm buryhuang/mcp-remote-macos-use:latest~/.codex/config.toml
[mcp_servers.remote-macos-use]
command = "docker"
args = ["run", "-i", "-e", "MACOS_USERNAME={{config.MACOS_USERNAME}}", "-e", "MACOS_PASSWORD={{config.MACOS_PASSWORD}}", "-e", "MACOS_HOST={{config.MACOS_HOST}}", "--rm", "buryhuang/mcp-remote-macos-use:latest"]
env = { MACOS_USERNAME = "<MACOS_USERNAME>", MACOS_PASSWORD = "<MACOS_PASSWORD>", MACOS_HOST = "<MACOS_HOST>" }
# codex mcp add remote-macos-use --env MACOS_USERNAME='<MACOS_USERNAME>' --env MACOS_PASSWORD='<MACOS_PASSWORD>' --env MACOS_HOST='<MACOS_HOST>' -- docker run -i -e 'MACOS_USERNAME={{config.MACOS_USERNAME}}' -e 'MACOS_PASSWORD={{config.MACOS_PASSWORD}}' -e 'MACOS_HOST={{config.MACOS_HOST}}' --rm buryhuang/mcp-remote-macos-use:latest~/.cursor/mcp.json
{
"mcpServers": {
"remote-macos-use": {
"command": "docker",
"args": [
"run",
"-i",
"-e",
"MACOS_USERNAME={{config.MACOS_USERNAME}}",
"-e",
"MACOS_PASSWORD={{config.MACOS_PASSWORD}}",
"-e",
"MACOS_HOST={{config.MACOS_HOST}}",
"--rm",
"buryhuang/mcp-remote-macos-use:latest"
],
"env": {
"MACOS_USERNAME": "<MACOS_USERNAME>",
"MACOS_PASSWORD": "<MACOS_PASSWORD>",
"MACOS_HOST": "<MACOS_HOST>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"remote-macos-use": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"-e",
"MACOS_USERNAME={{config.MACOS_USERNAME}}",
"-e",
"MACOS_PASSWORD={{config.MACOS_PASSWORD}}",
"-e",
"MACOS_HOST={{config.MACOS_HOST}}",
"--rm",
"buryhuang/mcp-remote-macos-use:latest"
],
"env": {
"MACOS_USERNAME": "<MACOS_USERNAME>",
"MACOS_PASSWORD": "<MACOS_PASSWORD>",
"MACOS_HOST": "<MACOS_HOST>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"remote-macos-use": {
"command": "docker",
"args": [
"run",
"-i",
"-e",
"MACOS_USERNAME={{config.MACOS_USERNAME}}",
"-e",
"MACOS_PASSWORD={{config.MACOS_PASSWORD}}",
"-e",
"MACOS_HOST={{config.MACOS_HOST}}",
"--rm",
"buryhuang/mcp-remote-macos-use:latest"
],
"env": {
"MACOS_USERNAME": "<MACOS_USERNAME>",
"MACOS_PASSWORD": "<MACOS_PASSWORD>",
"MACOS_HOST": "<MACOS_HOST>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"remote-macos-use": {
"command": "docker",
"args": [
"run",
"-i",
"-e",
"MACOS_USERNAME={{config.MACOS_USERNAME}}",
"-e",
"MACOS_PASSWORD={{config.MACOS_PASSWORD}}",
"-e",
"MACOS_HOST={{config.MACOS_HOST}}",
"--rm",
"buryhuang/mcp-remote-macos-use:latest"
],
"env": {
"MACOS_USERNAME": "<MACOS_USERNAME>",
"MACOS_PASSWORD": "<MACOS_PASSWORD>",
"MACOS_HOST": "<MACOS_HOST>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"remote-macos-use": {
"command": "docker",
"args": [
"run",
"-i",
"-e",
"MACOS_USERNAME={{config.MACOS_USERNAME}}",
"-e",
"MACOS_PASSWORD={{config.MACOS_PASSWORD}}",
"-e",
"MACOS_HOST={{config.MACOS_HOST}}",
"--rm",
"buryhuang/mcp-remote-macos-use:latest"
],
"env": {
"MACOS_USERNAME": "<MACOS_USERNAME>",
"MACOS_PASSWORD": "<MACOS_PASSWORD>",
"MACOS_HOST": "<MACOS_HOST>"
}
}
}
}Environment variables
MACOS_USERNAMEMACOS_PASSWORDMACOS_HOST
Replace the placeholders with your own credentials and keep them out of version control.