{"id":47722112,"url":"https://github.com/maycxc/osa-mcp","last_synced_at":"2026-04-05T22:00:35.908Z","repository":{"id":347994183,"uuid":"1196035874","full_name":"MayCXC/osa-mcp","owner":"MayCXC","description":"MCP server that generates tools from macOS scriptable apps via OSA (AppleScript/JXA)","archived":false,"fork":false,"pushed_at":"2026-03-31T23:08:59.000Z","size":111,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T05:38:32.150Z","etag":null,"topics":["applescript","automation","bun","claude","claude-code","homebrew-formula","homebrew-tap","jxa","mcp","npm-package","osa","osascript","ssh"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MayCXC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-30T10:00:35.000Z","updated_at":"2026-04-02T07:00:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"0003b262-ef03-4665-9243-293cc3051d83","html_url":"https://github.com/MayCXC/osa-mcp","commit_stats":null,"previous_names":["maycxc/osa-mcp"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/MayCXC/osa-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayCXC%2Fosa-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayCXC%2Fosa-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayCXC%2Fosa-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayCXC%2Fosa-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MayCXC","download_url":"https://codeload.github.com/MayCXC/osa-mcp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayCXC%2Fosa-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31374051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["applescript","automation","bun","claude","claude-code","homebrew-formula","homebrew-tap","jxa","mcp","npm-package","osa","osascript","ssh"],"created_at":"2026-04-02T19:43:41.974Z","updated_at":"2026-04-03T20:01:15.482Z","avatar_url":"https://github.com/MayCXC.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# osa-mcp\n\n*Give your AI access to every scriptable app on your Mac.*\n\nosa-mcp is an MCP server that automatically discovers all scriptable macOS apps (Mail, Calendar, Finder, Music, Notes, Safari, \u0026c.) and generates tools for them. No configuration, no hardcoded app list. Just connect and go.\n\n## What you do\n\n### npx\n\n```sh\nclaude mcp add my-mac -- npx -y osa-mcp\n```\n\n### bunx\n\n```sh\nclaude mcp add my-mac -- bunx osa-mcp\n```\n\n### Homebrew\n\n```sh\nbrew install MayCXC/osa-mcp/osa-mcp\nclaude mcp add my-mac -- osa-mcp\n```\n\n### Remote Mac via SSH\n\nIf your AI runs on a different machine, connect to your Mac over SSH. Enable [Remote Login in System Settings \u003e General \u003e Sharing](https://support.apple.com/guide/mac-help/allow-a-remote-computer-to-access-your-mac-mchlp1066/mac) first.\n\n```sh\nclaude mcp add my-mac -- npx -y osa-mcp --ssh user@macbook.local\n```\n\n### JSON config\n\nAll of the above can also be added to your MCP settings file directly:\n\n```json\n{\n  \"mcpServers\": {\n    \"my-mac\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"osa-mcp\"]\n    }\n  }\n}\n```\n\nFor SSH, add `\"--ssh\", \"user@macbook.local\"` to the args.\n\n## What you get\n\nOn a typical Mac, osa-mcp generates ~700 tools in ~4 seconds. Every tool includes descriptions pulled from the app's scripting dictionary, so your AI knows what each tool does, what parameters it takes, and what values they accept.\n\n**Commands** let your AI perform actions:\n- `mail_send`, `mail_reply`, `mail_forward`\n- `finder_reveal`, `finder_move`, `finder_duplicate`\n- `music_play`, `music_pause`, `music_search`\n- `calendar_show`, `reminders_show`, `notes_show`\n- `safari_do_javascript`, `safari_search_the_web`\n- `messages_send`, `terminal_do_script`\n\n**Lists and gets** let your AI read data:\n- `mail_list_messages`, `mail_get_message`\n- `calendar_list_events`, `calendar_list_calendars`\n- `finder_list_files`, `finder_list_disks`\n- `notes_list_notes`, `reminders_list_reminders`\n- `safari_list_tabs`, `safari_list_documents`\n\n**Application properties** expose app settings:\n- `mail_get_application` returns inbox, fetch interval, primary email, etc.\n- `finder_get_application` returns desktop, trash, home, startup disk, etc.\n- `music_get_application` returns current track, player state, etc.\n\n**Execute** runs arbitrary AppleScript or JXA for anything the generated tools don't cover.\n\n## Navigating the object hierarchy\n\nMany tools accept a `parent` parameter for navigating into nested objects:\n\n```jsonc\n// List events in a specific calendar\n{ \"parent\": [\"calendars\", \"byName\", [\"Work\"]] }\n\n// List messages in the inbox\n{ \"parent\": [\"inbox\"] }\n\n// Get the first window's current tab\n{ \"parent\": [\"windows\", 0] }\n```\n\nPath steps: `\"key\"` accesses a property, `0` accesses by index, `[]` calls a method, `[\"arg\"]` calls with arguments.\n\n## Install from source\n\n```sh\ngit clone https://github.com/MayCXC/osa-mcp.git\ncd osa-mcp\nbun install\nbun link\nclaude mcp add my-mac -- osa-mcp\n```\n\nRequires [Bun](https://bun.sh).\n\n## License\n\nBSD 3-Clause. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaycxc%2Fosa-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaycxc%2Fosa-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaycxc%2Fosa-mcp/lists"}