Abstract Class: BaseModel
Defined in: packages/core/src/domain/BaseModel.ts:22
Base class for all MCP domain model entities.
Provides common metadata properties shared by all MCP domain objects (tools, resources, prompts, groups). Every entity has a name, optional title, description, meta, and icons.
Example
// BaseModel is abstract — use concrete subclasses:
const tool = new Tool('read_file');
tool.title = 'Read File';
tool.description = 'Read a file from the filesystem';
tool.meta = new Map([['version', '1.0']]);See
Extended by
Properties
description
description: string | undefined;Defined in: packages/core/src/domain/BaseModel.ts:33
Detailed description of this entity's purpose
icons
icons: Icon[] | undefined;Defined in: packages/core/src/domain/BaseModel.ts:37
Visual icons associated with this entity
meta
meta: Map<string, unknown> | undefined;Defined in: packages/core/src/domain/BaseModel.ts:35
Arbitrary key-value metadata for extensibility
name
readonly name: string;Defined in: packages/core/src/domain/BaseModel.ts:29
Unique identifier within the parent scope
nameSeparator
readonly nameSeparator: string;Defined in: packages/core/src/domain/BaseModel.ts:27
Separator character for constructing fully qualified names
title
title: string | undefined;Defined in: packages/core/src/domain/BaseModel.ts:31
Human-readable display title
DEFAULT_SEPARATOR
readonly static DEFAULT_SEPARATOR: string = ".";Defined in: packages/core/src/domain/BaseModel.ts:24
Default separator used in fully qualified names
Methods
getFullyQualifiedName()
abstract getFullyQualifiedName(): string;Defined in: packages/core/src/domain/BaseModel.ts:55
Returns the fully qualified name including all ancestor paths.
Returns
string
Example
const parent = new Group('api');
const child = new Group('v2');
parent.addChildGroup(child);
child.getFullyQualifiedName(); // "api.v2"