Skip to main content
Resources provide readable data to load into the model’s context. Define fixed Resources (a concrete uri) or ResourceTemplates (an RFC 6570 uriTemplate).

Minimal resource

import { Resource } from '@frontmcp/sdk';

@Resource({
  name: 'docs-home',
  title: 'Docs Home',
  uri: 'https://example.com/docs',
  mimeType: 'text/html',
})
export default class DocsHome {
  async execute(uri: string) {
    return { contents: [{ uri, text: 'Welcome to the docs!' }] };
  }
}

Minimal resource template

import { ResourceTemplate } from '@frontmcp/sdk';

@ResourceTemplate({
  name: 'repo-readme',
  title: 'GitHub README',
  uriTemplate: 'https://raw.githubusercontent.com/{owner}/{repo}/main/README.md',
  mimeType: 'text/markdown',
})
export default class RepoReadme {}

Resource metadata

@Resource({
  name: string,
  title?: string,
  uri: string,
  description?: string,
  mimeType?: string,
  icons?: Icon[],
})

Resource template metadata

@ResourceTemplate({
  name: string,
  title?: string,
  uriTemplate: string,    // RFC 6570
  description?: string,
  mimeType?: string,
  icons?: Icon[],
})
Tips
  • Use resources to preload long-form text, schemas, or docs the model should see before calling tools.
  • Prefer templates when the shape is stable but the identifiers vary.