Skip to content

Documentation / @agentick/mcp / MCPServerOptions

Interface: MCPServerOptions

Defined in: protocol/types.ts:156

Configuration for creating an MCPServer.

Named MCPServerOptions (not MCPServerConfig) to avoid collision with the existing cursor-style MCPServerConfig in core/src/mcp/types.ts.

Properties

apps?

optional apps: MCPAppDefinition[]

Defined in: protocol/types.ts:182


contextProvider()?

optional contextProvider: (extra) => MCPRequestContext | Promise<MCPRequestContext>

Defined in: protocol/types.ts:240

Called per-request to build MCPRequestContext from SDK's RequestHandlerExtra. Runs BEFORE the security pipeline.

Parameters

extra

MCPHandlerExtra

Returns

MCPRequestContext | Promise<MCPRequestContext>


description?

optional description: string

Defined in: protocol/types.ts:164

Human-readable description of the server's purpose. Sent to clients in the initialize response as part of serverInfo.


instructions?

optional instructions: string | () => string

Defined in: protocol/types.ts:177

Instructions describing how to use the server and its features. Sent to MCP clients in the initialize response and injected into the LLM's context to improve understanding of available tools, resources, and workflows.

Can be a function for per-session dynamic instructions (e.g., injecting authenticated user context). The function is called when each new client session initializes — Context.tryGet()?.user is available at that point for HTTP sessions authenticated via the gateway.


logging?

optional logging: object

Defined in: protocol/types.ts:232

level?

optional level: "error" | "debug" | "info" | "warn"


name

name: string

Defined in: protocol/types.ts:157


prompts?

optional prompts: MCPPromptDefinition[]

Defined in: protocol/types.ts:183


resources?

optional resources: MCPStaticResource[]

Defined in: protocol/types.ts:180


resourceTemplates?

optional resourceTemplates: MCPResourceTemplateDefinition[]

Defined in: protocol/types.ts:181


security?

optional security: object

Defined in: protocol/types.ts:218

Security — all function types, transport-aware defaults. HTTP: localOnlyGuard + rejectAllAuth. In-process/stdio: allowAll.

authenticator?

optional authenticator: Authenticator

authorizer?

optional authorizer: Authorizer

connectionGuard?

optional connectionGuard: ConnectionGuard

inputSanitizer?

optional inputSanitizer: InputSanitizer

rateLimiter?

optional rateLimiter: RateLimiter


securitySchemes?

optional securitySchemes: object[]

Defined in: protocol/types.ts:212

Default security schemes applied to all tools on tools/list. Emitted as _meta.securitySchemes per the MCP spec, so hosts (ChatGPT, Claude, etc.) know which tools require authentication.

Individual tools can override by setting _meta.securitySchemes on their own definition.

scopes?

optional scopes: string[]

type

type: string

Example

ts
securitySchemes: [{ type: "oauth2", scopes: ["read"] }]

sessions?

optional sessions: object

Defined in: protocol/types.ts:226

cleanupIntervalMs?

optional cleanupIntervalMs: number

idleTtlMs?

optional idleTtlMs: number

maxSessions?

optional maxSessions: number


toolFilter()?

optional toolFilter: (tool, ctx) => boolean

Defined in: protocol/types.ts:189

Per-call tool authorization. Called at tools/call time. Return false to reject the tool call for this request context.

Parameters

tool

MCPToolDefinition

ctx

MCPRequestContext

Returns

boolean


tools?

optional tools: MCPToolDefinition[]

Defined in: protocol/types.ts:179


toolTransform()?

optional toolTransform: (tool, ctx) => MCPToolDefinition | null

Defined in: protocol/types.ts:197

Transform tool definitions per session before tools/list response. Called for each tool with the request context. Return a modified definition to inject per-session context (e.g., user info into description), or return the original unchanged. Return null to remove the tool from the list.

Parameters

tool

MCPToolDefinition

ctx

MCPRequestContext

Returns

MCPToolDefinition | null


version

version: string

Defined in: protocol/types.ts:158

Released under the ISC License.