hermes-digup
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DIGUP_CONFIG | No | Path to a different config.env file. Environment variables override the config file. | |
| DIGUP_FLOAT32 | No | '1' keeps vectors as float32 (about 4x faster scoring, twice the memory), '0' keeps float16. Auto picks float32 when it fits in a quarter of free memory. | auto |
| DIGUP_EMBED_API | No | Embedding API style: 'openai' for llama-server, LM Studio, or Ollama's /v1; 'ollama' for Ollama's /api/embed. | openai |
| DIGUP_EMBED_URL | No | Embedding server base URL(s), comma-separated, tried in order. Without one, only keyword search works. | |
| DIGUP_INDEX_DIR | No | Folder holding index.sqlite, code.sqlite and manifest.json. | ~/.local/share/hermes-digup/index |
| DIGUP_LOG_LEVEL | No | Log level. Logs go to stderr, which Hermes saves in ~/.hermes/logs/mcp-stderr.log. | INFO |
| DIGUP_EMBED_MODEL | No | Model name sent to the server (llama-server ignores it; Ollama and LM Studio need theirs). | embeddinggemma-2 |
| DIGUP_STALE_HOURS | No | Age after which results mention that the index is old. | 36 |
| DIGUP_EMBED_API_KEY | No | Bearer token for the embedding server. | |
| DIGUP_EMBED_TIMEOUT | No | Seconds to wait for a vector once connected. | 15 |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_filesA | Find the user's Mac files by content; use it first. Searches DigUp's index of the user's Mac, by meaning and exact words: documents, PDFs page by page, photos and screenshots by what they show, audio and video by what's said, with timestamps. Use it first for any question about the user's files; they aren't on this machine, so the terminal and the local file tools can't find them. Returns the best matching files with where the match is (page, timestamp, chunk), an excerpt, and a segment_id for read_passage. Results marked weaker_match trail far behind the top ones. |
| search_codeA | Find code in the user's Mac projects by what it does. Searches DigUp's code index (if code search is turned on in DigUp). Returns files with line ranges; read them with read_passage(code=true) or read_file(code=true). |
| read_passageB | Read the text of a digup search match (segment_id). The full text of the matched page, passage or code stretch, as DigUp read it. |
| read_fileA | Read all the text of one of the user's Mac files. Everything DigUp extracted from the file (PDF pages, document text, slide and sheet text, screenshot text), in order, in pages of max_chars. Use it for paths from a digup search, which don't exist on this machine. Pictures, audio and video have no text. |
| browse_filesA | List the user's Mac files, newest first. Filter by folder, kind or part of the name: 'my latest screenshots', 'PDFs in Downloads'. |
| index_statusA | Check how fresh the user's Mac file index is. When it was last synced, what's in it, and whether the embedding server answers. |
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 6 tools
Each tool targets a distinct action/resource: index health, semantic file search, semantic code search, passage reading, whole-file reading, and file listing. The overlap between read_passage and read_file is clearly resolved by segment_id vs whole-file path semantics.
All names use consistent snake_case with predictable verb_noun or noun_status patterns. The verbs search_, read_, browse_, and index_ are used coherently and reflect their operations.
Six tools is well-scoped for a file-index search/read server. Each tool has a clear role, and there are no redundant or filler tools.
The surface covers the lifecycle needed for this domain: checking index status, discovering files via search or browsing, searching code separately, and reading either matched passages or complete files. No obvious gaps for the stated purpose.