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
| Field | Required | Description |
|---|---|---|
name | ✅ | Resource name shown in the resource list. Unique per worker. |
uri | ✅ | Fixed resource URI (e.g. picsart://example/info). |
description | Human / model facing description. | |
title | Optional display title. | |
mimeType | MIME type of the returned content. |
Returning content
Build the result with the resourceResult helpers:
| Helper | Returns |
|---|---|
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.