thermia-kb-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| list_sectionsB | List all numbered sections of the knowledge base (id, title, level). lang: 'en' or 'pt'. |
| get_sectionA | Return the full Markdown of a section. A top-level id like '6' includes its subsections; '6.1' returns only that subsection. lang: 'en' or 'pt'. |
| search_kbA | Keyword search over paragraphs, list items and table rows (accent-insensitive). Returns the best matching blocks with their section id; read the section with get_section for context. lang: 'en' or 'pt'. |
| lookup_terminalB | Every table row / note mentioning a terminal of the heat pump, expansion card or cooling module, e.g. '211', '303', '1L1', 'PE5', '251', '357'. Gives function, wiring, wire number and source page. |
| lookup_registerA | Everything about one EXT-bus register (ThermIQ map, as used by esphome-thermia): accepts 'r32', '0x32' or '32' (hex). Returns the register-map rows with meaning, unit, range, matching pump menu parameter and whether it is confirmed on real hardware. |
| list_imagesB | Names of the rendered schematic / drawing images. Names encode source and PDF page, e.g. 'ELEC_p040_Duo12-400V_sheet2_control-unit-E1.png' = electrical installation manual, PDF page 40. |
| get_imageA | Return one image (PNG/JPG; SVG is returned as an image with format svg+xml). Accepts the exact name or a unique fragment such as 'ELEC_p040' or 'sheet3_external'. |
| list_source_documentsA | The original PDF manuals the knowledge base was built from: tag (as used in citations like [ELEC p.40]), file name, page count and title. |
| get_source_pageA | Render one page of an original PDF so you can check a citation or read a schematic yourself. source: tag INST, ELEC, USER, EXP1, EXP2, COOL or FAN. page: PDF page number exactly as cited in the knowledge base (e.g. [ELEC p.40] -> source='ELEC', page=40). dpi 50–300; use ~200 for dense schematics. |
| get_source_page_textA | Extract the text layer of one page of an original PDF (same arguments as get_source_page). Schematic pages contain little text; render them with get_source_page instead. |
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 10 tools
Each tool has a distinct role: section browsing (list_sections/get_section) vs. free-text search (search_kb), and two orthogonal technical lookups (lookup_terminal for wiring terminals, lookup_register for EXT-bus registers). The only mild overlap is get_image (pre-rendered schematics) vs. get_source_page (render any PDF page), but the descriptions make the boundary reasonably clear.
Consistent snake_case verb_noun pattern throughout (list_sections, get_section, search_kb, lookup_terminal, lookup_register, list_images, get_image, list_source_documents, get_source_page, get_source_page_text). Suffixed variants like get_source_page_text logically extend their base tool rather than breaking the convention.
10 tools is well within the ideal 3-15 range and each earns its place: browsing, search, two specialized lookups, image access, and raw PDF access. No redundant or filler tools.
Read-only KB coverage is strong: navigation, search, targeted technical lookups, images, and access to original PDFs (both render and text layer) cover the main workflows. Minor gap: lookup_terminal and lookup_register require a known key and offer no way to enumerate all terminals or registers, which could stall an exploratory query.