Skip to content

Class: Resource

Defined in: packages/core/src/domain/Resource.ts:27

Represents an MCP Resource — a data source accessible via URI.

Resources are leaf nodes in the domain model hierarchy. They expose data that LLMs can read (e.g., files, database records, API responses).

Example

typescript
import { Resource, createAnnotations, Role } from '@vinkius-core/mcp-fusion';

const resource = new Resource('config');
resource.uri = 'file:///etc/app/config.json';
resource.mimeType = 'application/json';
resource.size = 1024;
resource.annotations = createAnnotations({
    audience: [Role.ASSISTANT],
    priority: 0.8,
});

See

Extends

Constructors

Constructor

ts
new Resource(name): Resource;

Defined in: packages/core/src/domain/Resource.ts:37

Parameters

ParameterType
namestring

Returns

Resource

Overrides

ts
GroupItem.constructor

Properties

annotations

ts
annotations: Annotations | undefined;

Defined in: packages/core/src/domain/Resource.ts:35

Resource annotations for audience, priority, and freshness


description

ts
description: string | undefined;

Defined in: packages/core/src/domain/BaseModel.ts:33

Detailed description of this entity's purpose

Inherited from

GroupItem.description


icons

ts
icons: Icon[] | undefined;

Defined in: packages/core/src/domain/BaseModel.ts:37

Visual icons associated with this entity

Inherited from

GroupItem.icons


meta

ts
meta: Map<string, unknown> | undefined;

Defined in: packages/core/src/domain/BaseModel.ts:35

Arbitrary key-value metadata for extensibility

Inherited from

GroupItem.meta


mimeType

ts
mimeType: string | undefined;

Defined in: packages/core/src/domain/Resource.ts:33

MIME type of the resource content (e.g. "application/json")


name

ts
readonly name: string;

Defined in: packages/core/src/domain/BaseModel.ts:29

Unique identifier within the parent scope

Inherited from

GroupItem.name


nameSeparator

ts
readonly nameSeparator: string;

Defined in: packages/core/src/domain/BaseModel.ts:27

Separator character for constructing fully qualified names

Inherited from

GroupItem.nameSeparator


parentGroups

ts
readonly parentGroups: Group[];

Defined in: packages/core/src/domain/GroupItem.ts:28

Groups that contain this item (many-to-many relationship)

Inherited from

GroupItem.parentGroups


size

ts
size: number | undefined;

Defined in: packages/core/src/domain/Resource.ts:31

Size in bytes (if known)


title

ts
title: string | undefined;

Defined in: packages/core/src/domain/BaseModel.ts:31

Human-readable display title

Inherited from

GroupItem.title


uri

ts
uri: string | undefined;

Defined in: packages/core/src/domain/Resource.ts:29

URI that uniquely identifies this resource


DEFAULT_SEPARATOR

ts
readonly static DEFAULT_SEPARATOR: string = ".";

Defined in: packages/core/src/domain/BaseModel.ts:24

Default separator used in fully qualified names

Inherited from

GroupItem.DEFAULT_SEPARATOR

Methods

addParentGroup()

ts
addParentGroup(parentGroup): boolean;

Defined in: packages/core/src/domain/GroupItem.ts:41

Add this item to a parent group.

Parameters

ParameterTypeDescription
parentGroupGroupThe group to join

Returns

boolean

false if already a member, true if added

Inherited from

GroupItem.addParentGroup


getFullyQualifiedName()

ts
getFullyQualifiedName(): string;

Defined in: packages/core/src/domain/GroupItem.ts:58

Returns the simple name (leaf items have no hierarchy prefix)

Returns

string

Inherited from

GroupItem.getFullyQualifiedName


removeParentGroup()

ts
removeParentGroup(parentGroup): boolean;

Defined in: packages/core/src/domain/GroupItem.ts:53

Remove this item from a parent group.

Parameters

ParameterTypeDescription
parentGroupGroupThe group to leave

Returns

boolean

false if not found, true if removed

Inherited from

GroupItem.removeParentGroup