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?
optionalapps:MCPAppDefinition[]
Defined in: protocol/types.ts:182
contextProvider()?
optionalcontextProvider: (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
Returns
MCPRequestContext | Promise<MCPRequestContext>
description?
optionaldescription: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?
optionalinstructions: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?
optionallogging:object
Defined in: protocol/types.ts:232
level?
optionallevel:"error"|"debug"|"info"|"warn"
name
name:
string
Defined in: protocol/types.ts:157
prompts?
optionalprompts:MCPPromptDefinition[]
Defined in: protocol/types.ts:183
resources?
optionalresources:MCPStaticResource[]
Defined in: protocol/types.ts:180
resourceTemplates?
optionalresourceTemplates:MCPResourceTemplateDefinition[]
Defined in: protocol/types.ts:181
security?
optionalsecurity:object
Defined in: protocol/types.ts:218
Security — all function types, transport-aware defaults. HTTP: localOnlyGuard + rejectAllAuth. In-process/stdio: allowAll.
authenticator?
optionalauthenticator:Authenticator
authorizer?
optionalauthorizer:Authorizer
connectionGuard?
optionalconnectionGuard:ConnectionGuard
inputSanitizer?
optionalinputSanitizer:InputSanitizer
rateLimiter?
optionalrateLimiter:RateLimiter
securitySchemes?
optionalsecuritySchemes: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?
optionalscopes:string[]
type
type:
string
Example
securitySchemes: [{ type: "oauth2", scopes: ["read"] }]sessions?
optionalsessions:object
Defined in: protocol/types.ts:226
cleanupIntervalMs?
optionalcleanupIntervalMs:number
idleTtlMs?
optionalidleTtlMs:number
maxSessions?
optionalmaxSessions:number
toolFilter()?
optionaltoolFilter: (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
ctx
Returns
boolean
tools?
optionaltools:MCPToolDefinition[]
Defined in: protocol/types.ts:179
toolTransform()?
optionaltoolTransform: (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
ctx
Returns
MCPToolDefinition | null
version
version:
string
Defined in: protocol/types.ts:158