Skip to main content

MCP Resources

A resource is a read-only endpoint a client can read. Declare it with @McpResource on a class that implements McpResourceHandler.

import {
McpResource,
McpResourceHandler,
McpResourceResult,
resourceResult,
} from '@picsart/pa-pluggable-workers-core';

@McpResource({
name: 'example_info',
uri: 'picsart://example/info',
description: 'Static example resource describing this worker.',
mimeType: 'application/json',
})
export class ExampleMcpResource implements McpResourceHandler {

handle(uri: URL): McpResourceResult {
return resourceResult.json({ worker: 'example', uri: uri.toString() });
}
}

Register the class as a provider in your CoreModule, exactly like a tool.

Definition

FieldRequiredDescription
nameResource name shown in the resource list. Unique per worker.
uriFixed resource URI (e.g. picsart://example/info).
descriptionHuman / model facing description.
titleOptional display title.
mimeTypeMIME type of the returned content.

Returning content

Build the result with the resourceResult helpers:

HelperReturns
resourceResult.json(data)JSON content (application/json).
resourceResult.text(str, mimeType?)Plain text content (defaults to text/plain).
note

Resources are read-only and are not charged. Only fixed URIs are supported — URI templates are not available yet.