Skip to content

MCP-Web Bridge API

MCPWebBridge

Classpackages/bridge/src/core.ts

Core bridge server that connects web frontends to AI agents via MCP.

MCPWebBridge manages WebSocket connections from frontends, routes tool calls, handles queries, and exposes an HTTP API for MCP clients. It is runtime-agnostic and delegates I/O operations to adapters.

Properties:

ts
MCP_SESSION_IDLE_TIMEOUT_MS: any

Accessors:

ts
get config(): MCPWebConfigOutput

The validated bridge configuration.

Methods:

ts
getHandlers(): BridgeHandlers

Returns handlers for wiring to runtime-specific I/O.

Use these handlers to connect the bridge to your runtime's WebSocket and HTTP servers. Pre-built adapters (Node, Bun, Deno, PartyKit) handle this automatically.

ts
close(): Promise<void>

Gracefully shuts down the bridge.

Closes all WebSocket connections, cancels scheduled tasks, and clears all internal state. Call this when shutting down your server.

AuthenticateMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'authenticate'
ts
sessionId: string
ts
authToken: string
ts
origin: string
ts
pageTitle?: string
ts
sessionName?: string
ts
userAgent?: string
ts
timestamp: number

AuthenticatedMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'authenticated'
ts
mcpPort?: number
ts
sessionId: string
ts
success: boolean

AuthenticationFailedMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'authentication-failed'
ts
error: string
ts
code: string

RegisterToolMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'register-tool'
ts
tool: {
    name: string;
    description: string;
    inputSchema?: z.core.JSONSchema.JSONSchema;
    outputSchema?: z.core.JSONSchema.JSONSchema;
    _meta?: Record<string, unknown>;
  }

RegisterResourceMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'register-resource'
ts
resource: ResourceMetadata

ResourceReadMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'resource-read'
ts
requestId: string
ts
uri: string

ResourceResponseMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'resource-response'
ts
requestId: string
ts
content?: string
ts
blob?: string
ts
mimeType: string
ts
error?: string

ActivityMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'activity'
ts
timestamp: number

ToolCallMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'tool-call'
ts
requestId: string
ts
toolName: string
ts
toolInput?: Record<string, unknown>
ts
queryId?: string

ToolRegistrationErrorMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'tool-registration-error'
ts
toolName: string
ts
error: string
ts
message: string

ToolResponseMessage

Interfacepackages/bridge/src/types.ts

Properties:

ts
type: 'tool-response'
ts
requestId: string
ts
result: unknown

TrackedToolCall

Interfacepackages/bridge/src/types.ts

Properties:

ts
tool: string
ts
arguments: unknown
ts
result: unknown

QueryTracking

Interfacepackages/bridge/src/types.ts

Properties:

ts
sessionId: string
ts
responseTool?: string
ts
toolCalls: TrackedToolCall[]
ts
ws: WS.WebSocket
ts
state: QueryState
ts
tools?: ToolMetadata[]
ts
restrictTools?: boolean

McpRequest

Interfacepackages/bridge/src/types.ts

Properties:

ts
jsonrpc: string
ts
id: string | number
ts
method: string
ts
params?: {
    name?: string;
    arguments?: Record<string, unknown>;
    _meta?: McpRequestMetaParams;
  }

McpResponse

Interfacepackages/bridge/src/types.ts

Properties:

ts
jsonrpc: string
ts
id: string | number
ts
result?: unknown
ts
error?: {
    code: number;
    message: string;
    data?: unknown;
  }

ToolDefinition

Interfacepackages/bridge/src/types.ts

Properties:

ts
name: string
ts
description: string
ts
inputSchema?: z.core.JSONSchema.JSONSchema
ts
outputSchema?: z.core.JSONSchema.JSONSchema
ts
handler?: string

SessionData

Interfacepackages/bridge/src/types.ts

Properties:

ts
ws: WS.WebSocket
ts
authToken: string
ts
origin: string
ts
pageTitle?: string
ts
sessionName?: string
ts
userAgent?: string
ts
connectedAt: number
ts
lastActivity: number
ts
tools: Map<string, ToolDefinition>
ts
resources: Map<string, ResourceMetadata>

FrontendMessage

Typepackages/bridge/src/types.ts

ts
| AuthenticateMessage
  | RegisterToolMessage
  | RegisterResourceMessage
  | ActivityMessage
  | ToolResponseMessage
  | ResourceResponseMessage
  | QueryMessage
  | QueryCompleteClientMessage
  | QueryProgressMessage
  | QueryCancelMessage

BridgeMessage

Typepackages/bridge/src/types.ts

ts
| AuthenticatedMessage
  | AuthenticationFailedMessage
  | ToolCallMessage
  | ToolRegistrationErrorMessage
  | ResourceReadMessage
  | QueryAcceptedMessage
  | QueryProgressMessage
  | QueryCompleteBridgeMessage
  | QueryFailureMessage
  | QueryCancelMessage

QueryState

Typepackages/bridge/src/types.ts

ts
'active' | 'completed' | 'failed' | 'cancelled'

MissingAuthenticationErrorMessage

Variablepackages/bridge/src/schemas.ts

ts
unknown

MissingAuthenticationErrorMessageSchema

Variablepackages/bridge/src/schemas.ts

ts
unknown

InvalidAuthenticationErrorMessage

Variablepackages/bridge/src/schemas.ts

ts
unknown

InvalidAuthenticationErrorMessageSchema

Variablepackages/bridge/src/schemas.ts

ts
unknown