handy_prompt_lab
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LM_STUDIO_HOME | No | Path to LM Studio home directory | ~/.lmstudio |
| HANDY_HISTORY_DB | No | Path to Handy history database | ~/Library/Application Support/com.pais.handy/history.db |
| HANDY_PROMPTS_DB | No | Path to prompt-lab data SQLite database | ./data/handy-prompts.sqlite |
| LM_STUDIO_BASE_URL | No | Base URL for LM Studio API | http://127.0.0.1:1234 |
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
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| capability_reportB | Reports client information and capabilities advertised to this MCP server. |
| sync_handy_historyA | Reads Handy's local history database without modifying it and imports new raw transcripts into the prompt lab. |
| list_transcripts_needing_proposalsA | Returns a bounded batch of raw transcripts. Generate a conservative corrected transcript for every record, then call save_correction_proposals. |
| save_correction_proposalsA | Stores Codex-generated proposals for later user review. Proposals do not enter the evaluation set until the user approves them. |
| show_annotation_labC | Opens a widget for editing and approving a batch of Codex transcript proposals. |
| annotation_summaryA | Returns counts for imported, proposed, approved, edited, and skipped transcripts. |
| load_annotation_recordC | Loads a record from the current annotation widget batch. |
| save_annotation_and_nextB | Saves a user-reviewed transcript target, then returns the next record in the widget batch. |
| prepare_optimization_datasetA | Creates a chronological development/holdout split and locks annotation access. Call only from a fresh Codex task that has not seen transcript proposals. |
| get_development_examplesB | Returns approved raw/target pairs from the development split. Holdout records are never returned. |
| list_lm_studio_modelsA | Lists downloaded local models and loaded instances from LM Studio. It does not download or change models. |
| create_prompt_candidateB | Stores an immutable Handy-compatible prompt template, model, and inference settings for evaluation. The prompt must contain ${output}. |
| run_development_evalA | Sequentially evaluates a candidate against development examples, recording exact-match and latency metrics. LM Studio's prior model state is restored afterward. |
| get_development_failuresA | Returns detailed failed examples for a development evaluation. Holdout evaluation details are never exposed. |
| freeze_prompt_candidateC | Freezes a candidate before sealed holdout evaluation. |
| run_holdout_evalA | Evaluates a frozen candidate on the sealed holdout. Returns aggregate metrics only. |
| plan_lm_studio_promotionA | Shows the exact LM Studio per-model defaults file and fields that would be changed for a candidate. Makes no changes. |
| promote_candidate_to_lm_studioA | After form confirmation, backs up and updates LM Studio's per-model defaults for a frozen candidate that completed holdout evaluation. Handy remains read-only. |
| begin_annotation_cycleA | Unlocks annotation access for newly collected Handy transcripts after explicit confirmation. Use from a fresh annotation task. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| propose-handy-correction | Conservative instructions for generating a user-reviewable correction. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| handy-annotation-lab | Review Codex proposals and save user-approved transcript targets. |
| handy-prompts-about | Current workflow, paths, and privacy boundaries. |
TDQS
Scored across 19 tools
Each tool has a clearly distinct purpose. Overlaps are minimal; descriptions effectively differentiate between similar operations like annotation workflow steps and evaluation functions.
Most tools follow a consistent verb_noun pattern (e.g., get_development_failures, freeze_prompt_candidate). However, 'annotation_summary' and 'capability_report' are noun-only, creating minor inconsistency.
19 tools appropriately cover the full prompt lab lifecycle: data import, annotation, candidate creation, evaluation, and deployment. The count feels well-scoped without being overwhelming or insufficient.
The toolset covers main workflows (sync, annotate, create, evaluate, promote). Minor gaps exist (no delete/update for candidates, no undo for promotion), but these are likely intentional and do not block core use.