resources/* APIs. Hyperterse supports both:
- concrete resources with fixed
uri - resource templates with parameterized
uri_template
Where resource definitions live
By default, resource config files are discovered from:app/resources/**/config.terse
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
app/resources/release-notes/config.terse
Resource templates
Templates define parameterized URIs and template-based content:- inline
text_template, or - file-backed
file_template
app/resources/order-by-id/config.terse
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