Skip to main content

MCPServer

@codebolt/mcp


Class: MCPServer<T>

Defined in: packages/mcp/src/mcpServer.ts:1221

Class representing a toolbox for FastMCP. Manages tools, resources, and prompts for a Model Context Protocol server.

Extends

  • FastMCPEventEmitter

Type Parameters

Type ParameterDefault type
T extends Record<string, unknown> | undefinedundefined

Constructors

Constructor

new MCPServer<T>(options: ServerOptions<T>): MCPServer<T>;

Defined in: packages/mcp/src/mcpServer.ts:1236

Creates a new ToolBox instance.

Parameters

ParameterTypeDescription
optionsServerOptions<T>Configuration options for the toolbox

Returns

MCPServer<T>

Overrides

FastMCPEventEmitter.constructor

Properties

PropertyModifierTypeDescriptionInherited fromDefined in
_emitterType?publicEventEmitter<DefaultEventMap>-FastMCPEventEmitter. _emitterTypenode_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:5
_emitType?publicFastMCPEvents<FastMCPSessionAuth>-FastMCPEventEmitter. _emitTypenode_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:7
_eventsType?publicFastMCPEvents<FastMCPSessionAuth>-FastMCPEventEmitter. _eventsTypenode_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:6
[captureRejectionSymbol]?public<K>(error: Error, event: string | symbol, ...args: AnyRest) => void-FastMCPEventEmitter.[captureRejectionSymbol]node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:103
optionspublicServerOptions<T>Configuration options for the toolbox-packages/mcp/src/mcpServer.ts:1236

Accessors

sessions

Get Signature

get sessions(): FastMCPSession<T>[];

Defined in: packages/mcp/src/mcpServer.ts:1246

Gets all active sessions.

Returns

FastMCPSession<T>[]

Methods

activate()

activate(options:
| {
transportType: "stdio";
}
| {
sse: {
endpoint: `/${string}`;
port: number;
};
transportType: "sse";
}): Promise<void>;

Defined in: packages/mcp/src/mcpServer.ts:1346

Activates the server.

Parameters

ParameterTypeDescription
options| { transportType: "stdio"; } | { sse: { endpoint: `/$\{string\}`; port: number; }; transportType: "sse"; }Options for the server transport

Returns

Promise<void>


addListener()

Call Signature

addListener<P, T>(
this: T,
event: P,
listener: (...args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>) => void): T;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:17

Type Parameters
Type Parameter
P extends keyof FastMCPEvents<FastMCPSessionAuth>
T
Parameters
ParameterType
thisT
eventP
listener(...args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>) => void
Returns

T

Inherited from
FastMCPEventEmitter.addListener

Call Signature

addListener(event: typeof assignmentCompatibilityHack, listener: (...args: any[]) => any): void;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:18

Parameters
ParameterType
eventtypeof assignmentCompatibilityHack
listener(...args: any[]) => any
Returns

void

Inherited from
FastMCPEventEmitter.addListener

addPrompt()

addPrompt<Args>(prompt: InputPrompt<Args>): void;

Defined in: packages/mcp/src/mcpServer.ts:1284

Adds a prompt to the server.

Type Parameters

Type Parameter
Args extends Readonly<{ complete?: ArgumentValueCompleter; description?: string; enum?: string[]; name: string; required?: boolean; }>[]

Parameters

ParameterTypeDescription
promptInputPrompt<Args>The prompt to add

Returns

void


addResource()

addResource(resource: Resource): void;

Defined in: packages/mcp/src/mcpServer.ts:1264

Adds a resource to the server.

Parameters

ParameterTypeDescription
resourceResourceThe resource to add

Returns

void


addResourceTemplate()

addResourceTemplate<Args>(resource: InputResourceTemplate<Args>): void;

Defined in: packages/mcp/src/mcpServer.ts:1273

Adds a resource template to the server.

Type Parameters

Type Parameter
Args extends Readonly<{ complete?: ArgumentValueCompleter; description?: string; name: string; }>[]

Parameters

ParameterTypeDescription
resourceInputResourceTemplate<Args>The resource template to add

Returns

void


addTool()

addTool<Params>(tool: Tool<T, Params>): void;

Defined in: packages/mcp/src/mcpServer.ts:1255

Adds a tool to the server.

Type Parameters

Type Parameter
Params extends ZodTypeAny

Parameters

ParameterTypeDescription
toolTool<T, Params>The tool to add

Returns

void


emit()

Call Signature

emit<P, T>(
this: T,
event: P, ...
args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>): T;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:27

Type Parameters
Type Parameter
P extends keyof FastMCPEvents<FastMCPSessionAuth>
T
Parameters
ParameterType
thisT
eventP
...argsListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>
Returns

T

Inherited from
FastMCPEventEmitter.emit

Call Signature

emit(event: typeof assignmentCompatibilityHack, ...args: any[]): void;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:28

Parameters
ParameterType
eventtypeof assignmentCompatibilityHack
...argsany[]
Returns

void

Inherited from
FastMCPEventEmitter.emit

eventNames()

eventNames(): (string | symbol)[];

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:968

Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

import { EventEmitter } from 'node:events';

const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]

Returns

(string | symbol)[]

Since

v6.0.0

Inherited from

FastMCPEventEmitter.eventNames

getMaxListeners()

getMaxListeners(): number;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:820

Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.

Returns

number

Since

v1.0.0

Inherited from

FastMCPEventEmitter.getMaxListeners

listenerCount()

listenerCount<K>(eventName: string | symbol, listener?: Function): number;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:914

Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

Type Parameters

Type Parameter
K

Parameters

ParameterTypeDescription
eventNamestring | symbolThe name of the event being listened for
listener?FunctionThe event handler function

Returns

number

Since

v3.2.0

Inherited from

FastMCPEventEmitter.listenerCount

listeners()

listeners<K>(eventName: string | symbol): Function[];

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:833

Returns a copy of the array of listeners for the event named eventName.

server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]

Type Parameters

Type Parameter
K

Parameters

ParameterType
eventNamestring | symbol

Returns

Function[]

Since

v0.1.26

Inherited from

FastMCPEventEmitter.listeners

off()

off<K>(eventName: string | symbol, listener: (...args: any[]) => void): this;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:793

Alias for emitter.removeListener().

Type Parameters

Type Parameter
K

Parameters

ParameterType
eventNamestring | symbol
listener(...args: any[]) => void

Returns

this

Since

v10.0.0

Inherited from

FastMCPEventEmitter.off

on()

Call Signature

on<P, T>(
this: T,
event: P,
listener: (...args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>) => void): T;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:15

Type Parameters
Type Parameter
P extends keyof FastMCPEvents<FastMCPSessionAuth>
T
Parameters
ParameterType
thisT
eventP
listener(...args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>) => void
Returns

T

Inherited from
FastMCPEventEmitter.on

Call Signature

on(event: typeof assignmentCompatibilityHack, listener: (...args: any[]) => any): void;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:16

Parameters
ParameterType
eventtypeof assignmentCompatibilityHack
listener(...args: any[]) => any
Returns

void

Inherited from
FastMCPEventEmitter.on

once()

Call Signature

once<P, T>(
this: T,
event: P,
listener: (...args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>) => void): T;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:25

Type Parameters
Type Parameter
P extends keyof FastMCPEvents<FastMCPSessionAuth>
T
Parameters
ParameterType
thisT
eventP
listener(...args: ListenerType<FastMCPEvents<FastMCPSessionAuth>[P]>) => void
Returns

T

Inherited from
FastMCPEventEmitter.once

Call Signature

once(event: typeof assignmentCompatibilityHack, listener: (...args: any[]) => any): void;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:26

Parameters
ParameterType
eventtypeof assignmentCompatibilityHack
listener(...args: any[]) => any
Returns

void

Inherited from
FastMCPEventEmitter.once

prependListener()

prependListener<K>(eventName: string | symbol, listener: (...args: any[]) => void): this;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:932

Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

server.prependListener('connection', (stream) => {
console.log('someone connected!');
});

Returns a reference to the EventEmitter, so that calls can be chained.

Type Parameters

Type Parameter
K

Parameters

ParameterTypeDescription
eventNamestring | symbolThe name of the event.
listener(...args: any[]) => voidThe callback function

Returns

this

Since

v6.0.0

Inherited from

FastMCPEventEmitter.prependListener

prependOnceListener()

prependOnceListener<K>(eventName: string | symbol, listener: (...args: any[]) => void): this;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:948

Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});

Returns a reference to the EventEmitter, so that calls can be chained.

Type Parameters

Type Parameter
K

Parameters

ParameterTypeDescription
eventNamestring | symbolThe name of the event.
listener(...args: any[]) => voidThe callback function

Returns

this

Since

v6.0.0

Inherited from

FastMCPEventEmitter.prependOnceListener

rawListeners()

rawListeners<K>(eventName: string | symbol): Function[];

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:864

Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));

// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];

// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();

// Logs "log once" to the console and removes the listener
logFnWrapper();

emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');

// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');

Type Parameters

Type Parameter
K

Parameters

ParameterType
eventNamestring | symbol

Returns

Function[]

Since

v9.4.0

Inherited from

FastMCPEventEmitter.rawListeners

removeAllListeners()

removeAllListeners(eventName?: string | symbol): this;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:804

Removes all listeners, or those of the specified eventName.

It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

ParameterType
eventName?string | symbol

Returns

this

Since

v0.1.26

Inherited from

FastMCPEventEmitter.removeAllListeners

removeListener()

Call Signature

removeListener<P, T>(
this: T,
event: P,
listener: (...args: any[]) => any): T;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:21

Type Parameters
Type Parameter
P extends keyof FastMCPEvents<FastMCPSessionAuth>
T
Parameters
ParameterType
thisT
eventP
listener(...args: any[]) => any
Returns

T

Inherited from
FastMCPEventEmitter.removeListener

Call Signature

removeListener(event: typeof assignmentCompatibilityHack, listener: (...args: any[]) => any): void;

Defined in: node_modules/.pnpm/strict-event-emitter-types@2.0.0/node_modules/strict-event-emitter-types/types/src/index.d.ts:22

Parameters
ParameterType
eventtypeof assignmentCompatibilityHack
listener(...args: any[]) => any
Returns

void

Inherited from
FastMCPEventEmitter.removeListener

setMaxListeners()

setMaxListeners(n: number): this;

Defined in: node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts:814

By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

ParameterType
nnumber

Returns

this

Since

v0.3.5

Inherited from

FastMCPEventEmitter.setMaxListeners

start()

start(options:
| {
transportType: "stdio";
}
| {
sse: {
endpoint: `/${string}`;
port: number;
};
transportType: "sse";
}): Promise<void>;

Defined in: packages/mcp/src/mcpServer.ts:1295

Starts the server.

Parameters

ParameterTypeDescription
options| { transportType: "stdio"; } | { sse: { endpoint: `/$\{string\}`; port: number; }; transportType: "sse"; }Options for the server transport

Returns

Promise<void>


stop()

stop(): Promise<void>;

Defined in: packages/mcp/src/mcpServer.ts:1335

Stops the server.

Returns

Promise<void>