sommus-laptop
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GMAIL_ADDRESS | No | Gmail address for the Gmail node (IMAP/SMTP). | |
| ANTHROPIC_API_KEY | Yes | Your Anthropic API key required for the agent loop. | |
| GMAIL_APP_PASSWORD | No | App password for the Gmail account (16-character). | |
| TELEGRAM_BOT_TOKEN | No | Telegram bot token from BotFather. | |
| TELEGRAM_ALLOWED_IDS | No | Comma-separated list of allowed Telegram chat IDs (empty initially). |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_batteryA | Get the MacBook's battery percentage, charging state, and time remaining. |
| get_volumeA | Get the Mac's output volume (0-100) and whether sound is muted — also answers "is it loud". |
| set_volumeA | Set the output volume and unmute. |
| set_muteA | Mute or unmute sound output without changing the volume level. |
| list_appsA | List the apps currently open (the ones shown in the Dock), which one is in front, and which can't be quit. |
| open_appA | Open an app, or bring it to the front if it's already running. |
| quit_appA | Quit a running app. The app may still ask to save unsaved work. |
| open_urlB | Open a web page in the default browser. |
| media_controlA | Play, pause or skip whatever is playing (Spotify, Music, YouTube in a browser...). |
| notifyA | Show a macOS notification banner right now. For a reminder at a later time, use create_reminder. |
| lock_screenA | Lock the screen immediately. Apps keep running; unlocking needs the password or Touch ID. |
| sleep_displayA | Turn the display off. Apps and downloads keep running. |
| sleep_computerA | Put the whole MacBook to sleep. Sommus stops responding until the lid is opened or a key is pressed. |
| get_brightnessA | Get the built-in display's brightness as a percentage. |
| set_brightnessA | Set the built-in display's brightness (external monitors aren't supported). |
| get_wifiA | Check whether Wi-Fi is on and which network the Mac is joined to. |
| set_wifiA | Turn Wi-Fi on or off. Turning it off cuts the internet, including Sommus's own connection. |
| press_keysA | Send a keyboard shortcut to an app — for actions with no dedicated tool. |
| get_now_playingA | Get the track and artist currently playing in Spotify or Music. |
| list_shortcutsA | List the macOS Shortcuts available to run. Use this to find capabilities Sommus has no tool for. |
| run_shortcutA | Run one of the user's macOS Shortcuts. This covers things with no dedicated tool, such as Focus modes. |
| create_reminderA | Add a reminder in the Reminders app. Unlike a notification, this persists and syncs to the iPhone. |
| list_remindersB | List the user's unfinished reminders. |
| get_clipboardA | Read what's currently on the clipboard. |
| set_clipboardC | Put text on the clipboard, ready to paste. |
| find_filesB | Search the Mac for files and folders by name (Spotlight). |
| read_pdfA | Read a PDF as text, scanned ones included — far cheaper than screenshotting page by page. |
| list_embedded_filesA | URLs of files embedded in a page (PDF viewers, iframes) — the real file behind a viewer. |
| save_browser_tabA | Save a browser tab's file to disk (Cmd+S) — the way to get a PDF that sits behind a login. |
| read_fileB | Read a text file, or list a folder's contents. Long files are truncated. |
| append_to_fileA | Add a line to the end of a text file, creating the file if needed. |
| open_fileB | Open a file or folder in its default app (Finder for folders, Preview for PDFs...). |
| list_browser_tabsA | List every open Chrome tab with its window.tab number, title and URL. |
| read_browser_tabB | Read the visible text of a Chrome tab — the way to see what's on a page. |
| list_page_linksA | List a page's links and buttons as "text -> url". Use this instead of guessing where to click. |
| click_page_linkA | Click a link or button on a page by its visible text — works inside web apps like LEARN and Gmail. |
| compose_emailA | Open a pre-filled Gmail draft in the browser for Jashan to look over. To send, use send_email. |
| close_browser_tabsA | Close Chrome tabs. List them first, then pass the ones to close. Closed tabs come back with Cmd+Shift+T. |
| focus_browser_tabA | Bring a Chrome tab to the front. |
| type_textA | Type text into an app — for writing into a document, a form, a chat box. |
| run_shellA | Run a shell command and read its output. The way to do anything with no dedicated tool. |
| screenshotA | Take a screenshot and look at it. Use this to see an app's state, then click what you see. Click coordinates refer to this image. |
| clickA | Click somewhere on screen, using coordinates from the most recent screenshot. |
| waitA | Pause before the next step — for pages, apps or downloads that need a moment. |
| download_urlA | Download a file straight to disk. Works for public URLs; pages behind a login don't. |
| find_contactA | Look up someone's phone number and email in Contacts. Use this before messaging or emailing a person. |
| list_contactsA | List everyone in the Contacts app with their numbers and emails. |
| send_messageA | Send an iMessage. This reaches another person and can't be unsent. |
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 48 tools
Most tools target a clearly distinct resource+action (battery, volume, brightness, wifi, clipboard, apps), and descriptions proactively disambiguate tricky pairs like notify vs create_reminder, sleep_display vs sleep_computer, and type_text vs run_shell. A few pairs remain close (click vs click_page_link, save_browser_tab vs download_url vs list_embedded_files, list_page_links vs read_browser_tab), but the guidance largely resolves them.
The set sticks mostly to a verbose verb_noun pattern (get_battery, set_volume, list_apps, create_reminder, read_browser_tab), which is highly predictable. Minor deviations exist: bare verbs (notify, click, wait, screenshot), one noun_verb (media_control), and slightly inconsistent qualifiers (page vs browser_tab for the same concept).
At 48 tools this is a very heavy surface, well beyond the 15-25 range that already feels crowded, even accounting for the broad macOS-automation domain spanning browser, files, system, media, contacts and messaging. Individual tools are mostly justified, but the sheer count raises selection cost and overlap risk.
Coverage is broad and self-aware, with escape hatches (run_shell, run_shortcut, press_keys) for anything lacking a dedicated tool, and files/reminders/system state reasonably covered. Gaps remain: compose_email references a nonexistent send_email, and reminders/contacts/messages lack full update-delete lifecycle coverage.