resources/* APIs. Hyperterse supports both:
- concrete resources with fixed
uri - resource templates with parameterized
uri_template
Where resource definitions live
Resources use aconfig.terse per logical item, often with sibling content files. Default layout and discovery are covered in Project structure.
Each resource typically has its own folder containing:
config.terse(required)- optional resource content files (for example
release-notes.md,1001.json, images, or other formats)
.hyperterse:
.hyperterse
resources) and templates (resource_templates) inline in .hyperterse. See Root configuration.
Concrete resources
Concrete resources define a fixed URI and one content source:- inline
text, or - file-backed
file
Resource templates
Templates define parameterized URIs and template-based content:- inline
text_template, or - file-backed
file_template
Runtime behavior
Loaded resource definitions are exposed through MCP:resources/listfor concrete resourcesresources/templates/listfor template resourcesresources/readfor content retrievalresources/subscribe/resources/unsubscribefor update subscriptionscompletion/completefor template argument completions (when configured)notifications/resources/list_changedwhen resource definitions changenotifications/resources/updatedwhen a concrete resource changes on reload
Content and MIME handling
Hyperterse resolves resource content using these rules:- Use configured
mime_typeif present. - Otherwise infer from file extension (for file-backed content).
- If no MIME can be inferred:
- text data defaults to
text/plain; charset=utf-8 - binary data defaults to
application/octet-stream
- text data defaults to
File paths and safety
- Relative
fileandfile_templatepaths are resolved relative to the resourceconfig.tersedirectory. - For
file_template, path traversal patterns (..) are rejected after interpolation.
Validation and constraints
Resource configs are validated before runtime:- exactly one of
urioruri_templatemust be set - concrete resources require one of
textorfile - template resources require one of
text_templateorfile_template - resource URIs must be unique across concrete resources
- URI templates must be unique across template resources