Skip to content

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

typescript
// 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

ts
description: string | undefined;

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

Detailed description of this entity's purpose


icons

ts
icons: Icon[] | undefined;

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

Visual icons associated with this entity


meta

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

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

Arbitrary key-value metadata for extensibility


name

ts
readonly name: string;

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

Unique identifier within the parent scope


nameSeparator

ts
readonly nameSeparator: string;

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

Separator character for constructing fully qualified names


title

ts
title: string | undefined;

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

Human-readable display title


DEFAULT_SEPARATOR

ts
readonly static DEFAULT_SEPARATOR: string = ".";

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

Default separator used in fully qualified names

Methods

getFullyQualifiedName()

ts
abstract getFullyQualifiedName(): string;

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

Returns the fully qualified name including all ancestor paths.

Returns

string

Example

typescript
const parent = new Group('api');
const child = new Group('v2');
parent.addChildGroup(child);
child.getFullyQualifiedName(); // "api.v2"