McpServer.ResourceTemplate (HTTP MCP Server v0.6.0)

View Source

Represents a templated resource with URI variables.

Resource templates allow dynamic resource URIs with variables like {id}. These variables can be completed using the completion callback.

Fields

  • name - Unique resource identifier
  • uri_template - URI template with {variable} placeholders
  • description - Human-readable description (optional)
  • mime_type - MIME type of the resource (optional)
  • title - Display title (optional)

Examples

iex> template = McpServer.ResourceTemplate.new(
...>   name: "user",
...>   uri_template: "https://api.example.com/users/{id}",
...>   description: "User profile data",
...>   mime_type: "application/json"
...> )
%McpServer.ResourceTemplate{
  name: "user",
  uri_template: "https://api.example.com/users/{id}",
  description: "User profile data",
  mime_type: "application/json"
}

Summary

Functions

Creates a new ResourceTemplate struct.

Types

t()

@type t() :: %McpServer.ResourceTemplate{
  description: String.t() | nil,
  mime_type: String.t() | nil,
  name: String.t(),
  title: String.t() | nil,
  uri_template: String.t()
}

Functions

new(opts)

@spec new(keyword()) :: t()

Creates a new ResourceTemplate struct.

Parameters

  • opts - Keyword list of resource template options:
    • :name (required) - Unique resource identifier
    • :uri_template (required) - URI template with variables
    • :description - Human-readable description
    • :mime_type - MIME type
    • :title - Display title

Examples

iex> McpServer.ResourceTemplate.new(
...>   name: "user",
...>   uri_template: "https://api.example.com/users/{id}"
...> )
%McpServer.ResourceTemplate{
  name: "user",
  uri_template: "https://api.example.com/users/{id}"
}

iex> McpServer.ResourceTemplate.new(
...>   name: "document",
...>   uri_template: "file:///docs/{category}/{id}.md",
...>   description: "Documentation files",
...>   mime_type: "text/markdown",
...>   title: "Docs"
...> )
%McpServer.ResourceTemplate{
  name: "document",
  uri_template: "file:///docs/{category}/{id}.md",
  description: "Documentation files",
  mime_type: "text/markdown",
  title: "Docs"
}