McpServer
Constructors
Elicitation
Layers
Signature
declare function layer(options: {
readonly name: string;
readonly version: string;
}): Layer<McpServerClient | McpServer, never, Protocol>;Run the McpServer, using HTTP for input and output.
Signature
declare function layerHttp<I = Default>(options: {
readonly name: string;
readonly path: PathInput;
readonly routerTag?: any;
readonly version: string;
}): Layer<McpServerClient | McpServer>;layerHttpRouter
Added in v1.0.0
Source
Run the McpServer, using HTTP for input and output.
Uses a HttpLayerRouter to register the McpServer routes.
Signature
declare function layerHttpRouter(options: {
readonly name: string;
readonly path: PathInput;
readonly version: string;
}): Layer<McpServerClient | McpServer, never, HttpRouter>;layerStdio
Added in v1.0.0
Source
Run the McpServer, using stdio for input and output.
Signature
declare function layerStdio<EIn, RIn, EOut, ROut>(options: {
readonly name: string;
readonly stdin: Stream<Uint8Array<ArrayBufferLike>, EIn, RIn>;
readonly stdout: Sink<unknown, string | Uint8Array<ArrayBufferLike>, unknown, EOut, ROut>;
readonly version: string;
}): Layer<McpServerClient | McpServer, never, RIn | ROut>;McpServer
Other
ResourceCompletions type
Added in v1.0.0
Source
Signature
type ResourceCompletions<Schemas extends ReadonlyArray<Schema.Schema.Any>> = {
[K in Extract<keyof Schemas, `${number}`>]: (
input: string,
) => Effect.Effect<Array<Schema.Schema.Type<Schemas[K]>>, any, any>;
};ValidateCompletions type
Added in v1.0.0
Source
Signature
type ValidateCompletions<Completions, Keys extends string> = Completions & {
[K in keyof Completions]: K extends Keys ? (input: string) => any : never;
};Prompts
Register a prompt with the McpServer.
Signature
declare function prompt<
E,
R,
Params = {},
ParamsI extends Record<string, string> = {},
ParamsR = never,
Completions extends {
[K in string | number | symbol]: (input: string) => Effect<Array<Params[K]>, any, any>;
} = {},
>(options: {
readonly completion?: ValidateCompletions<Completions, Extract<keyof Params, string>>;
readonly content: (params: Params) => Effect<string | Array<any>, E, R>;
readonly description?: string;
readonly name: string;
readonly parameters?: any;
}): Layer<never, never, Exclude<R, McpServerClient> | Exclude<ParamsR, McpServerClient>>;registerPrompt
Added in v1.0.0
Source
Register a prompt with the McpServer.
Signature
declare function registerPrompt<
E,
R,
Params = {},
ParamsI extends Record<string, string> = {},
ParamsR = never,
Completions extends {
[K in string | number | symbol]: (input: string) => Effect<Array<Params[K]>, any, any>;
} = {},
>(options: {
readonly completion?: ValidateCompletions<Completions, Extract<keyof Params, string>>;
readonly content: (params: Params) => Effect<string | Array<any>, E, R>;
readonly description?: string;
readonly name: string;
readonly parameters?: any;
}): Effect<
void,
never,
McpServer | Exclude<R, McpServerClient> | Exclude<ParamsR, McpServerClient>
>;Resources
registerResource
Added in v1.0.0
Source
Register a resource with the McpServer.
Signature
declare const registerResource: {
<E, R>(options: {
readonly audience?: ReadonlyArray<"user" | "assistant">;
readonly content: Effect.Effect<typeof ReadResourceResult.Type | string | Uint8Array, E, R>;
readonly description?: string;
readonly mimeType?: string;
readonly name: string;
readonly priority?: number;
readonly uri: string;
}): Effect<void, never, McpServer | Exclude<R, McpServerClient>>;
<Schemas extends readonly Array<Any>>(segments: TemplateStringsArray, ...schemas: Schemas & { [K in string | number | symbol]: unknown }): <E, R, Completions extends Partial<ResourceCompletions<Schemas>> = {}>(options: {
readonly audience?: ReadonlyArray<"user" | "assistant">;
readonly completion?: ValidateCompletions<Completions, keyof ResourceCompletions<Schemas>>;
readonly content: (uri: string, ...params: { [K in keyof Schemas]: Schemas[K]["Type"] }) => Effect.Effect<typeof ReadResourceResult.Type | string | Uint8Array, E, R>;
readonly description?: string;
readonly mimeType?: string;
readonly name: string;
readonly priority?: number;
}) => Effect<void, never, McpServer | Exclude<R, McpServerClient> | Exclude<Completions[keyof Completions] extends (input: string) => Ret ? Ret extends Effect<_A, _E, _R> ? _R : never : never, McpServerClient>>;
}Register a resource with the McpServer.
Signature
declare const resource: {
<E, R>(options: {
readonly audience?: ReadonlyArray<"user" | "assistant">;
readonly content: Effect.Effect<typeof ReadResourceResult.Type | string | Uint8Array, E, R>;
readonly description?: string;
readonly mimeType?: string;
readonly name: string;
readonly priority?: number;
readonly uri: string;
}): Layer<never, never, Exclude<R, McpServerClient>>;
<Schemas extends readonly Array<Any>>(segments: TemplateStringsArray, ...schemas: Schemas & { [K in string | number | symbol]: unknown }): <E, R, Completions extends Partial<ResourceCompletions<Schemas>> = {}>(options: {
readonly audience?: ReadonlyArray<"user" | "assistant">;
readonly completion?: ValidateCompletions<Completions, keyof ResourceCompletions<Schemas>>;
readonly content: (uri: string, ...params: { [K in keyof Schemas]: Schemas[K]["Type"] }) => Effect.Effect<typeof ReadResourceResult.Type | string | Uint8Array, E, R>;
readonly description?: string;
readonly mimeType?: string;
readonly name: string;
readonly priority?: number;
}) => Layer<never, never, Exclude<R, McpServerClient> | Exclude<Completions[keyof Completions] extends (input: string) => Ret ? Ret extends Effect<_A, _E, _R> ? _R : never : never, McpServerClient>>;
}Tools
registerToolkit
Added in v1.0.0
Source
Register an AiToolkit with the McpServer.
Signature
declare const registerToolkit: <Tools extends Record<string, AiTool.Any>>(
toolkit: Toolkit.Toolkit<Tools>,
) => Effect.Effect<
void,
never,
McpServer | AiTool.HandlersFor<Tools> | Exclude<AiTool.Requirements<Tools>, McpServerClient>
>;Register an AiToolkit with the McpServer.
Signature
declare function toolkit<Tools extends Record<string, Any>>(
toolkit: Toolkit<Tools>,
): Layer<never, never, HandlersFor<Tools> | Exclude<Requirements<Tools>, McpServerClient>>;
Create an elicitation request