Skip to main content
Resources expose structured read-only context through MCP resources/* APIs. Hyperterse supports both:
  • concrete resources with fixed uri
  • resource templates with parameterized uri_template

Where resource definitions live

Resources use a config.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)
You can override discovery in .hyperterse:
.hyperterse
You can also define concrete resources (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/list for concrete resources
  • resources/templates/list for template resources
  • resources/read for content retrieval
  • resources/subscribe / resources/unsubscribe for update subscriptions
  • completion/complete for template argument completions (when configured)
  • notifications/resources/list_changed when resource definitions change
  • notifications/resources/updated when a concrete resource changes on reload

Content and MIME handling

Hyperterse resolves resource content using these rules:
  1. Use configured mime_type if present.
  2. Otherwise infer from file extension (for file-backed content).
  3. If no MIME can be inferred:
    • text data defaults to text/plain; charset=utf-8
    • binary data defaults to application/octet-stream
File-backed resources return text when content is UTF-8/text; otherwise they return binary blob content.

File paths and safety

  • Relative file and file_template paths are resolved relative to the resource config.terse directory.
  • For file_template, path traversal patterns (..) are rejected after interpolation.

Validation and constraints

Resource configs are validated before runtime:
  • exactly one of uri or uri_template must be set
  • concrete resources require one of text or file
  • template resources require one of text_template or file_template
  • resource URIs must be unique across concrete resources
  • URI templates must be unique across template resources
See Resource configuration reference for full field details.