Hookmark MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOOK_CLI | No | Path to the hook CLI binary | /opt/homebrew/lib/ruby/gems/4.0.0/bin/hook |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hookmark_linkA | Generate a hook:// URL for a file or web URL and copy it to the clipboard. Returns the hook:// URL that Hookmark assigned to the item. Use this URL as a stable reference to the item when calling hookmark_connect. Accepts an absolute file path (e.g. '/Users/you/note.md') or any URL (e.g. 'https://example.com'). |
| hookmark_connectA | Create a bidirectional hook (link) between two items. Both items must be referenced by their file path, URL, or hook:// URL. After this call, each item will appear in the other's hook list. Use hookmark_link or hookmark_frontmost to obtain hook:// URLs first. |
| hookmark_listA | List all items hooked to a given file or URL. Returns one item per line in the requested format. Use format 'paths' (default) for plain paths/URLs, 'markdown' for clickable links, 'hooks' for hook:// URLs only, or 'verbose' for full details. Accepts an absolute file path, URL, or hook:// URL. Call with no item to list all Hookmark bookmarks. |
| hookmark_searchA | Search Hookmark bookmarks by keyword. Searches both bookmark names and URLs by default. Returns matching items, one per line. Use format 'paths' (default), 'markdown', 'hooks', or 'verbose' to control output. Use names_only to restrict the search to bookmark names only. |
| hookmark_removeA | Remove a bidirectional hook between two items. Both items must be referenced by their file path, URL, or hook:// URL. This removes the link from both directions — after this call neither item will appear in the other's hook list. |
| hookmark_cloneA | Clone all hooks from one item onto another. Every item hooked to the source will also become hooked to the destination. The source item's hooks are not modified — this is a copy operation. Useful when duplicating a file or moving content to a new location. |
| hookmark_frontmostA | Get the hook:// URL for the active document or window in the frontmost macOS application. Brings the specified application to the foreground and creates a Hookmark bookmark for whatever is currently active in that app (document, email, note, task, etc.). Returns the hook:// URL that can be used with hookmark_connect to link it to other items. Specify the app name without the '.app' suffix, e.g. 'Finder', 'Mail', 'Obsidian', 'Bear'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no overlap: clone copies hooks, connect creates links, frontmost gets active app URLs, link generates URLs, list shows hooked items, remove deletes links, and search finds bookmarks. The descriptions reinforce these unique functions, making misselection unlikely.
All tools follow a consistent 'hookmark_verb' pattern (e.g., hookmark_clone, hookmark_connect), using snake_case throughout. This predictability makes the tool set easy to navigate and understand at a glance.
With 7 tools, the server is well-scoped for managing Hookmark bookmarks and links. Each tool serves a specific, necessary function in the workflow—from creating and listing hooks to searching and removing them—without feeling bloated or sparse.
The tool set provides complete coverage for the Hookmark domain: it supports creating (connect, link, frontmost), reading (list, search), updating (clone), and deleting (remove) hooks, with no obvious gaps. Agents can perform all core operations without dead ends.