The two-step split is the whole design decision, and it is the right one: listing returns metadata only, so a large library costs almost nothing to search, and the full body arrives only for the snippet you actually chose. Filters on language, tag and group narrow it further before anything is fetched.
A bridge to CodeMenu, the macOS snippet manager. It reads your snippet library through CodeMenu's local API so an assistant can search it and quote from it.
- Snippets listed without their code bodies — id, title, description, language, abbreviation, tags and group — which keeps a large library from filling the context (list_snippets)
- Filtering on that same list by search query, language, tag or group
- One snippet fetched in full, code included, once you know which one you want (get_snippet)
- The tags and groups you have defined, listed (list_tags, list_groups)
CodeMenu running on the Mac with its API turned on in settings. Node.js. If you enabled key protection in CodeMenu, that key is supplied as an environment setting; otherwise there is nothing to configure. Everything stays local — the API listens on the loopback address.
One command — npm install -g git+https://github.com/Extiri/codemenu-mcp.git
