Skip to content

nimwire/subscriptions

This page is generated from the module’s exported API and ## documentation comments.

In-process change notification bus for modern MCP subscriptions.

McpSubscriptionEventKind = enum
mcpToolsListChanged, mcpPromptsListChanged, mcpResourcesListChanged,
mcpResourceUpdated

View source

McpSubscriptionFilter = object
toolsListChanged*: bool
promptsListChanged*: bool
resourcesListChanged*: bool
resourceSubscriptions*: seq[string]

View source

McpSubscriptionEvent = object
kind*: McpSubscriptionEventKind
uri*: string

View source

McpSubscriptionMessageHandler = proc (message: JsonNode) {.closure.}

View source

McpEventPublisher = proc (event: McpSubscriptionEvent) {.closure.}

View source

McpSubscriptionCloseHandler = proc (subscription: McpSubscription;
graceful: bool) {.closure.}

View source

McpSubscription = ref object
id*: McpId
filter*: McpSubscriptionFilter
active*: bool

View source

McpEventBus = ref object

View source

proc newMcpEventBus(publisher: McpEventPublisher = nil): McpEventBus {.
raises: [], tags: [], forbids: [].}

Returns: McpEventBus.

Name Type Default
publisher McpEventPublisher nil

View source

proc subscribe(bus: McpEventBus; id: McpId; filter: McpSubscriptionFilter;
handler: McpSubscriptionMessageHandler): McpSubscription {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpSubscription.

Name Type Default
bus McpEventBus
id McpId
filter McpSubscriptionFilter
handler McpSubscriptionMessageHandler

View source

proc activate(subscription: McpSubscription) {.raises: [], tags: [], forbids: [].}
Name Type Default
subscription McpSubscription

View source

proc unsubscribe(bus: McpEventBus; subscription: McpSubscription): bool {.
raises: [Exception], tags: [RootEffect], forbids: [].}

Returns: bool.

Name Type Default
bus McpEventBus
subscription McpSubscription

View source

proc setCloseHandler(subscription: McpSubscription;
handler: McpSubscriptionCloseHandler) {.raises: [],
tags: [], forbids: [].}
Name Type Default
subscription McpSubscription
handler McpSubscriptionCloseHandler

View source

proc close(subscription: McpSubscription; graceful = true) {.
raises: [Exception], tags: [RootEffect], forbids: [].}
Name Type Default
subscription McpSubscription
graceful inferred true

View source

proc isActive(subscription: McpSubscription): bool {.raises: [], tags: [],
forbids: [].}

Returns: bool.

Name Type Default
subscription McpSubscription

View source

proc waitClosed(subscription: McpSubscription): Future[void] {.
raises: [McpError], tags: [], forbids: [].}

Returns: Future[void].

Name Type Default
subscription McpSubscription

View source

proc notification(subscription: McpSubscription; event: McpSubscriptionEvent): JsonNode {.
raises: [KeyError], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
subscription McpSubscription
event McpSubscriptionEvent

View source

proc deliver(subscription: McpSubscription; message: JsonNode) {.
raises: [Exception], tags: [RootEffect], forbids: [].}
Name Type Default
subscription McpSubscription
message JsonNode

View source

proc publish(bus: McpEventBus; event: McpSubscriptionEvent) {.
raises: [Exception, KeyError], tags: [RootEffect], forbids: [].}
Name Type Default
bus McpEventBus
event McpSubscriptionEvent

View source

proc publishToolsChanged(bus: McpEventBus) {.raises: [Exception, KeyError],
tags: [RootEffect], forbids: [].}
Name Type Default
bus McpEventBus

View source

proc publishPromptsChanged(bus: McpEventBus) {.raises: [Exception, KeyError],
tags: [RootEffect], forbids: [].}
Name Type Default
bus McpEventBus

View source

proc publishResourcesChanged(bus: McpEventBus) {.raises: [Exception, KeyError],
tags: [RootEffect], forbids: [].}
Name Type Default
bus McpEventBus

View source

proc publishResourceUpdated(bus: McpEventBus; uri: string) {.
raises: [Exception, KeyError], tags: [RootEffect], forbids: [].}
Name Type Default
bus McpEventBus
uri string

View source