Skip to content

nimwire/extensions

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

Generic, opt-in extension registry and dispatch.

McpExtensionMethodHandler = proc (params: JsonNode; context: McpContext): Future[
McpWireResult] {.closure.}

View source

McpExtensionMethod = object
name*: string
handler*: McpExtensionMethodHandler
inputSchema*: JsonNode
outputSchema*: JsonNode
metadata*: JsonNode
transportRules*: JsonNode

View source

McpExtension = ref object
name*: string
capabilities*: JsonNode
metadata*: JsonNode
methods*: seq[McpExtensionMethod]
requiresClientCapability*: bool

View source

McpExtensionRegistry = ref object

View source

proc newMcpExtension(name: string; capabilities: JsonNode = nil;
metadata: JsonNode = nil; requiresClientCapability = false): McpExtension {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpExtension.

Name Type Default
name string
capabilities JsonNode nil
metadata JsonNode nil
requiresClientCapability inferred false

View source

proc addExtensionMethod(extension: McpExtension; name: string;
handler: McpExtensionMethodHandler;
inputSchema: JsonNode = nil;
outputSchema: JsonNode = nil; metadata: JsonNode = nil;
transportRules: JsonNode = nil) {.
raises: [McpError, Exception], tags: [RootEffect], forbids: [].}
Name Type Default
extension McpExtension
name string
handler McpExtensionMethodHandler
inputSchema JsonNode nil
outputSchema JsonNode nil
metadata JsonNode nil
transportRules JsonNode nil

View source

proc newMcpExtensionRegistry(): McpExtensionRegistry {.raises: [], tags: [],
forbids: [].}

Returns: McpExtensionRegistry.

View source

proc registerExtension(registry: McpExtensionRegistry; extension: McpExtension) {.
raises: [McpError], tags: [], forbids: [].}
Name Type Default
registry McpExtensionRegistry
extension McpExtension

View source

proc finalizeExtension(registry: McpExtensionRegistry; name: string) {.
raises: [McpError], tags: [], forbids: [].}
Name Type Default
registry McpExtensionRegistry
name string

View source

proc hasFinalizedExtension(registry: McpExtensionRegistry; name: string): bool {.
raises: [], tags: [], forbids: [].}

Returns: bool.

Name Type Default
registry McpExtensionRegistry
name string

View source

proc hasDraftExtension(registry: McpExtensionRegistry; name: string): bool {.
raises: [], tags: [], forbids: [].}

Returns: bool.

Name Type Default
registry McpExtensionRegistry
name string

View source

proc finalizedExtensions(registry: McpExtensionRegistry): seq[McpExtension] {.
raises: [], tags: [], forbids: [].}

Returns: seq[McpExtension].

Name Type Default
registry McpExtensionRegistry

View source

proc draftExtensions(registry: McpExtensionRegistry): seq[McpExtension] {.
raises: [], tags: [], forbids: [].}

Returns: seq[McpExtension].

Name Type Default
registry McpExtensionRegistry

View source

proc extensionCapabilities(registry: McpExtensionRegistry): JsonNode {.
raises: [], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
registry McpExtensionRegistry

View source

proc addExtensionMetadata(registry: McpExtensionRegistry; target: JsonNode) {.
raises: [], tags: [], forbids: [].}
Name Type Default
registry McpExtensionRegistry
target JsonNode

View source

proc clientSupportsExtension(context: McpContext; name: string): bool {.
raises: [KeyError], tags: [], forbids: [].}

Returns: bool.

Name Type Default
context McpContext
name string

View source

proc requireClientExtension(context: McpContext; name: string) {.
raises: [KeyError, McpError], tags: [], forbids: [].}
Name Type Default
context McpContext
name string

View source

proc dispatchExtensionAsync(registry: McpExtensionRegistry;
request: McpRpcRequest; context: McpContext): Future[
McpWireResult] {.stackTrace: false,
raises: [Exception, ValueError, McpError, KeyError],
tags: [RootEffect], forbids: [].}

Returns: Future[McpWireResult].

Name Type Default
registry McpExtensionRegistry
request McpRpcRequest
context McpContext

View source