Show HN: MCP server that generates macOS tools via Open Scripting Architecture
github.comCf. The Claude computer use beta. Their own docs state that MCP servers are preferable to computer use [1]:
----
Claude has several ways to interact with an app or service. Computer use is the broadest and slowest, so Claude tries the most precise tool first:
- If you have an MCP server for the service, Claude uses that.
- If the task is a shell command, Claude uses Bash.
- If the task is browser work and you have Claude in Chrome set up, Claude uses that.
- If none of those apply, Claude uses computer use.
----
So osa-mcp adds an MCP server with tools for every AppleScript/JXA app it can find on the host, in order to maximize the first/best case. I've verified that it works with claude code and cowork, but it should work with any other MCP client as well. It also supports Remote Login via SSH [2].
This enables some pretty cool workflows and custom skills, e.g. "Read today's inbox in Mail and give me a summary. Check to see if I should schedule any additional meetings in Calendar, and if they conflict with the plans I made with anyone in Messages let them know. Then organize my notes for each meeting, and update their descriptions." Thus the capabilities of AppleScript are made available with natural language.
Inspiration is credited to [3] and [4] but neither exposes the entirety of OSA with MCP like this in a dynamic manner. Feedback is appreciated, I think it is pretty much an unofficial preview of the inevitable agentic Siri that will be released in a future OSX update.
[1] https://code.claude.com/docs/en/computer-use
[2] https://support.apple.com/guide/mac-help/allow-a-remote-comp...
[3] https://github.com/joshrutkowski/applescript-mcp
[4] https://github.com/supermemoryai/apple-mcp Cool) I'm doing something similar atm for iOS simulators instead of macOS / same idea though, giving Claude direct access through MCP instead of going through computer use. The latency difference is huge when you skip the screenshot-parse-click loop. tell me more about you handle tool discovery... With macOS scripting there could be a ton of possible actions. I ended up with 49 and already feel like thats a lot for the context window. yep, it generates 700 tools on my mac. I consider discovery context a separate problem, there is no more reasonable way to ask an MCP to limit the number of tools it exposes IMO, than there is to ask a linux distribution to paginate /bin. for the context problem, you would want the harness to use vector search on the list of tools to find the ones relevant to the given prompt instead. not sure if any do this currently.