Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EVE_BINNoPath to the eve CLI binary./opt/homebrew/bin/eve
EVE_MCP_HOSTNoHost address for the HTTP mode (use the Tailscale IP, not 0.0.0.0).
EVE_MCP_PORTNoPort for the HTTP mode (e.g. 8787).
EVE_MCP_TOKENNoBearer token for the HTTP mode. Without it the HTTP mode refuses to start.
EVE_ROXYBOT_DIRNoDirectory where the RoxyBot tools read and write contacts.json, profile.json and log.jsonl.~/Library/Application Support/eve/roxybot/

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
eve_searchA

Full-text search (FTS5) across copied clips and voice transcriptions on this Mac. Use to find a specific item by its words — e.g. 'the URL I copied from Slack', 'what I dictated about the budget'. Returns clips[] and transcriptions[] with match snippets. Default sort is relevance (best matches first, top-N). For chronological paging through many results, set sort to recency/created and a single source (clips OR transcriptions), then page with the returned cursor.

eve_recentA

List the most recent clips or transcriptions, newest first. Use for 'what did I copy/dictate recently' or, with filters, 'recent links from Safari' / 'my longest dictations'. Supports sorting (recency|created|copy_count for clips, duration for transcriptions), favorites, time bounds, and keyset pagination via meta.next_cursor.

eve_activityA

Aggregate counts of clips and transcriptions grouped by app, origin, content_type, hour, or day. Use for 'what apps did I work in today', 'when am I most active this week'. Optionally scope to one app.

eve_getA

Fetch one clip, screen recording, screenshot, or transcription by id with full, untruncated content. Clips: html, rtf size, OCR-extracted blob_text, optionally the linked voice transcription. Recordings (type 'recording'): the full recording row plus transcript_segments — millisecond word positions on the video timeline, the data needed to pick cut ranges for eve_export_clip. Screenshots (type 'screenshot'): full OCR text and the blob hash — resolve it to bytes via the blob-path CLI command / /api/blob route. Transcriptions (type 'transcription'): the full transcription row plus a linked screenshot (blob hash + OCR text), when one was captured at dictation stop. Use after eve_search/eve_recent returns an id.

eve_app_statsA

Statistics for a single source app: total clips, breakdown by content type, first/last seen, favorite count, total copies. Use for 'how much did I copy from Safari this month'.

eve_ingest_recordingA

Deliver a finished persona answer video into eve: copies the file into the user's recording folder, writes the history row and pops the persona bubble in the app. Use after generating a talking-head video for the user. Requires an absolute path to a local mp4/mov file.

eve_get_selectionA

The history entries the user has currently selected in eve's history board — their live focus context. Returns each selected item with a snippet/title. Check updated_at: it is the moment of the last selection change; if it is old, the selection may be stale and worth confirming. Empty items means nothing is selected right now.

eve_export_clipA

Cut a shareable mini-clip out of a screen recording, second-exact. Workflow: call eve_get with type 'recording' to read transcript_segments (millisecond word positions on the video timeline), pick one or more cut ranges, then call this tool. Multiple ranges are stitched into ONE clip in order. The master video is never modified; the clip lands in a clips/ folder next to it and appears as its own row in the app's Aufnahmen tab, carrying a remapped timed transcript of its own.

eve_categoriesA

All user-defined categories with entry counts and purpose descriptions. Categories group mixed history entries (clips, transcriptions, recordings, live talks) into projects; the description states why a category exists. Use the names with eve_recent/eve_search category filters or eve_categorize.

eve_categorizeA

Adds a category to (or removes it from) history entries — the write path for organizing entries into projects from the agent side. Targets are type:id pairs from eve_recent/eve_search/eve_get_selection results. The running app refreshes automatically.

eve_restoreA

Brings soft-deleted history entries back (clears their deleted flag). Find candidates with eve_recent's deleted option. The running app refreshes automatically.

eve_live_talkA

Voice-conversation loop with the user. Call it in a loop: pass your answer to the previous utterance as reply (the app speaks and stores it), then the call blocks up to ~50s and returns the user's next utterance. Rules: after status utterance answer briefly and speakably, then call again with reply. After silence call again immediately (no reply). Stop calling on paused, ended or busy. Pass talk_id verbatim if you received one in the start instruction; on a session-initiated start omit it and send agent_label once.

contacts_resolveA

Find a phone number by name for RoxyBot calls and messages. Matches name or alias, ignoring case and accents; a unique first-name match also counts. Returns {contact: {naam, nummer}} or {contact: null} when nothing or more than one person matches.

profile_getA

Read a saved personal value such as the 'thuis' or 'werk' address. Returns {sleutel, waarde} with waarde null when unknown.

log_appendB

Record one call or message line from the RoxyBot phone: type (call, sms, whatsapp, …), doel, ts (epoch ms), status and optional inhoud. Written to log.jsonl on this Mac only. Returns {ack: true}.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target clearly distinct resources or actions: search vs recent vs get vs selection vs export are separable, and the RoxyBot helpers (contacts_resolve, log_append) and profile_get stand apart. The main overlap is eve_activity vs eve_app_stats, which both produce aggregate counts and differ only in grouping scope; the descriptions help but an agent could pick the wrong one for 'how much did I copy from Safari'.

Naming Consistency4/5

Consistent snake_case throughout, with domain prefixes (eve_, profile_, log_, contacts_) applied predictably to their respective areas. Minor deviation: some eve_ tools are verb-led (eve_search, eve_get, eve_restore, eve_categorize) while others are noun-led (eve_activity, eve_categories, eve_app_stats), so the action isn't always the second token, but the set stays readable.

Tool Count4/5

15 tools covers a genuinely broad surface — clipboard/dictation history, recordings, export, categories, live voice conversation, and phone-side logging/contacts. It sits at the top of the comfortable range but each tool maps to a distinct operation with no obviously redundant entries.

Completeness3/5

Read and organize workflows are well covered (search, recent, get, stats, categories, categorize, restore, export, live talk). Notable gaps: no category create/delete or rename, no way to write profile values (profile_get is read-only), and no entry delete — only restore of soft-deletes — leaving dead ends for common lifecycle operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues