Clippy Vision
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CLIPPY_PYTHON | No | Path to a specific Python interpreter for Clippy to use. The packaged app runs CLIPPY_PYTHON if set, otherwise `python3` (Linux/macOS) or `python` (Windows) from PATH. Advanced: point Clippy at a specific interpreter before launch, e.g. `$env:CLIPPY_PYTHON = "C:\path\to\python.exe"` or `export CLIPPY_PYTHON=/path/to/venv/bin/python3`. |
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 |
|---|---|
| search_sessions_toolA | Search session summaries in the activity database. Use for: broad time windows (yesterday, this week), daily/weekly overviews, what-did-I-work-on questions, project topics, task recaps. Returns paragraph summaries — NOT granular event detail. If the result says the info isn't there, call search_events_tool next. For exact date ranges prefer list_sessions_tool or search_bounded_tool. |
| search_events_toolA | Search individual events in the activity database. Use for: specific messages, OCR screen text, exact URLs, clipboard content, app usage, WhatsApp/email content, fine-grained timestamps, copy-paste history. Returns raw event rows with screen/OCR data. If the result says the info isn't there, call search_sessions_tool next. For exact date ranges prefer search_bounded_tool. |
| search_bounded_toolA | Keyword search with explicit time bounds (no LLM date guessing). start/end: epoch seconds or YYYY-MM-DD (local). table: 'events' or 'sessions'. Use when you know the calendar window and need pagination via limit/offset. |
| list_sessions_toolA | Chronological deduped session list for a time window. Prefer this over search_sessions_tool for day/week timelines. start/end: epoch or YYYY-MM-DD. |
| activity_coverage_toolB | Hourly (or custom) event-count buckets so capture gaps are honest. Empty buckets mean no events that hour — often capture was off. start required (epoch or YYYY-MM-DD); end defaults to now. |
| app_time_summary_toolB | Approximate per-app foreground time from event gaps in a window. start/end: epoch or YYYY-MM-DD. Durations are approximate (gaps capped at 5 min). |
| list_urls_toolB | Distinct URLs seen in active_url / OCR within a time window. pattern filters substring (e.g. 'greenhouse'). Deduped with counts. |
| list_screenshots_toolB | List screenshots (or OCR-backed stubs) in a time window. image_available=false means the JPEG expired; OCR preview may still be present. |
| get_screenshot_toolB | Fetch one screenshot by filename or unix timestamp. Returns redacted screen text. The image file path is not included. Screenshots use adaptive TTL (important frames kept longer, capped). |
| recall_memory_toolA | List long-term memory clusters ranked by freshness score. Pass query to run semantic recall instead of listing. Clusters below min_freshness are hidden unless include_stale=true. |
| fetch_cluster_toolA | Get all facts stored in a named memory cluster (with freshness annotations). Use after recall_memory_tool to get the full content of a specific topic. Pass the cluster label exactly as returned by recall_memory_tool. |
| save_identity_toolA | Save a personal fact about the user. op='set' for scalar facts (name, location, job). op='add_items' with items=[] for adding to a list (hobbies, skills). op='override' only when the user explicitly corrects a previous fact. op='remove_items' with items=[] to remove from a list. |
| remember_turn_toolA | Store durable facts from the user's own words. Call after the user tells you something about themselves, their preferences, relationships, plans, or anything they would want recalled later. Pass only the user's message, not your reply. Skip for activity questions, file search, and one-off tasks. Secrets, passwords, and API keys are not stored. |
| save_note_toolB | Save a free-form note or reminder the user wants remembered. |
| delete_note_toolA | Delete a note or memory fact the user wants forgotten. Use when the user says 'forget', 'delete', 'remove', or 'don't remember that'. Matches by substring — pass the key phrase or exact text from the note. |
| find_files_toolC | Search trusted workspace roots for a filename or substring. |
| list_workspace_roots_toolA | List folders Clippy may search with find_files_tool. |
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 17 tools
Several tools have overlapping search purposes: search_sessions_tool, search_events_tool, search_bounded_tool, and list_sessions_tool all query the activity database, and descriptions only partially disambiguate (e.g. 'if result says not there, call the other one'). Memory tools recall_memory_tool, fetch_cluster_tool, save_identity_tool, remember_turn_tool, save_note_tool, and delete_note_tool overlap around memory storage/retrieval.
All 17 tools follow a consistent snake_case verb_noun or noun_verb pattern (get_screenshot_tool, recall_memory_tool, find_files_tool, list_urls_tool), with the uniform '_tool' suffix making the set predictably uniform.
17 tools is on the heavy side for a screen/memory assistant, and several pairs (search_sessions vs list_sessions, search_events vs search_bounded) could likely be collapsed without losing capability.
The surface covers capture (screenshots), memory storage/retrieval, note lifecycle (save/delete), file search, and rich activity querying with coverage/app-time/URL listing. Minor gaps like note editing/updating or explicit screenshot deletion exist but agents can work around them.