This is the documentation for the v2 beta — looking for the v1 documentation?
Skip to content

MCP TypeScript SDK (V2) / @modelcontextprotocol/server / server/completable

server/completable

Type Aliases

CompletableMeta

CompletableMeta<T> = object

Defined in: packages/server/src/server/completable.ts:12

Type Parameters

T

T extends StandardSchemaV1 = StandardSchemaV1

Properties

complete

complete: CompleteCallback<T>

Defined in: packages/server/src/server/completable.ts:13


CompletableSchema

CompletableSchema<T> = T & object

Defined in: packages/server/src/server/completable.ts:16

Type Declaration

[COMPLETABLE_SYMBOL]

[COMPLETABLE_SYMBOL]: CompletableMeta<T>

Type Parameters

T

T extends StandardSchemaV1


CompleteCallback

CompleteCallback<T> = (value, context?) => InferInput<T>[] | Promise<InferInput<T>[]>

Defined in: packages/server/src/server/completable.ts:5

Type Parameters

T

T extends StandardSchemaV1 = StandardSchemaV1

Parameters

value

InferInput<T>

context?
arguments?

Record<string, string>

Returns

InferInput<T>[] | Promise<InferInput<T>[]>

Variables

COMPLETABLE_SYMBOL

const COMPLETABLE_SYMBOL: unique symbol

Defined in: packages/server/src/server/completable.ts:3

Functions

completable()

completable<T>(schema, complete): CompletableSchema<T>

Defined in: packages/server/src/server/completable.ts:51

Wraps a schema to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.

Type Parameters

T

T extends StandardSchemaV1<unknown, unknown>

Parameters

schema

T

complete

CompleteCallback<T>

Returns

CompletableSchema<T>

Example

ts
server.registerPrompt(
    'review-code',
    {
        title: 'Code Review',
        argsSchema: z.object({
            language: completable(z.string().describe('Programming language'), value =>
                ['typescript', 'javascript', 'python', 'rust', 'go'].filter(lang => lang.startsWith(value))
            )
        })
    },
    ({ language }) => ({
        messages: [
            {
                role: 'user' as const,
                content: {
                    type: 'text' as const,
                    text: `Review this ${language} code.`
                }
            }
        ]
    })
);

See

McpServer.registerPrompt for using completable schemas in prompt argument definitions


getCompleter()

getCompleter<T>(schema): CompleteCallback<T> | undefined

Defined in: packages/server/src/server/completable.ts:71

Gets the completer callback from a completable schema, if it exists.

Type Parameters

T

T extends StandardSchemaV1<unknown, unknown>

Parameters

schema

T

Returns

CompleteCallback<T> | undefined


isCompletable()

isCompletable(schema): schema is CompletableSchema<StandardSchemaV1<unknown, unknown>>

Defined in: packages/server/src/server/completable.ts:64

Checks if a schema is completable (has completion metadata).

Parameters

schema

unknown

Returns

schema is CompletableSchema<StandardSchemaV1<unknown, unknown>>