Skip to content

nimwire/transport

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

Transport-neutral MCP messages and request/response handling.

McpTransportRequest = proc (message: McpJsonRpcMessage): Future[
McpJsonRpcMessage] {.closure.}

View source

McpTransportNotification = proc (message: McpJsonRpcMessage): Future[void] {.
closure.}

View source

McpTransportClose = proc () {.closure.}

View source

A message transport carries already validated JSON-RPC values. It does not know about servers, HTTP, stdio, or any higher-level client API.

McpMessageTransport = ref object

View source

Small client-side request/response helper shared by proxies and clients.

McpPeer = ref object
transport*: McpMessageTransport
metadata*: McpRequestMeta

View source

proc newMcpRequestMeta(clientName = "nimwire"; clientVersion = "0.1.0";
clientCapabilities: JsonNode = nil): McpRequestMeta {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpRequestMeta.

Name Type Default
clientName inferred "nimwire"
clientVersion inferred "0.1.0"
clientCapabilities JsonNode nil

View source

proc newMcpParams(values: JsonNode = nil; metadata = McpRequestMeta()): McpParams {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpParams.

Name Type Default
values JsonNode nil
metadata inferred McpRequestMeta()

View source

proc newMcpRequest(id: McpId; methodName: string; values: JsonNode = nil;
metadata = McpRequestMeta()): McpRpcRequest {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpRpcRequest.

Name Type Default
id McpId
methodName string
values JsonNode nil
metadata inferred McpRequestMeta()

View source

proc newMcpNotification(methodName: string; values: JsonNode = nil;
metadata = McpRequestMeta()): McpRpcRequest {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpRpcRequest.

Name Type Default
methodName string
values JsonNode nil
metadata inferred McpRequestMeta()

View source

proc newMcpMessageTransport(request: McpTransportRequest;
notification: McpTransportNotification = nil;
close: McpTransportClose = nil): McpMessageTransport {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpMessageTransport.

Name Type Default
request McpTransportRequest
notification McpTransportNotification nil
close McpTransportClose nil

View source

proc isClosed(transport: McpMessageTransport): bool {.raises: [], tags: [],
forbids: [].}

Returns: bool.

Name Type Default
transport McpMessageTransport

View source

proc requestAsync(transport: McpMessageTransport; message: McpJsonRpcMessage): Future[
McpJsonRpcMessage] {.stackTrace: false,
raises: [Exception, ValueError, McpError],
tags: [RootEffect], forbids: [].}

Returns: Future[McpJsonRpcMessage].

Name Type Default
transport McpMessageTransport
message McpJsonRpcMessage

View source

proc notifyAsync(transport: McpMessageTransport; message: McpJsonRpcMessage): Future[
void] {.stackTrace: false, raises: [Exception, McpError, ValueError],
tags: [RootEffect], forbids: [].}

Returns: Future[void].

Name Type Default
transport McpMessageTransport
message McpJsonRpcMessage

View source

proc close(transport: McpMessageTransport) {.raises: [Exception],
tags: [RootEffect], forbids: [].}
Name Type Default
transport McpMessageTransport

View source

proc newMcpPeer(transport: McpMessageTransport; metadata = McpRequestMeta()): McpPeer {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpPeer.

Name Type Default
transport McpMessageTransport
metadata inferred McpRequestMeta()

View source

proc requestAsync(peer: McpPeer; methodName: string; values: JsonNode = nil): Future[
McpWireResult] {.stackTrace: false,
raises: [Exception, ValueError, McpError],
tags: [RootEffect], forbids: [].}

Returns: Future[McpWireResult].

Name Type Default
peer McpPeer
methodName string
values JsonNode nil

View source

proc request(peer: McpPeer; methodName: string; values: JsonNode = nil): McpWireResult {.
raises: [ValueError, Exception, OSError, McpError],
tags: [TimeEffect, RootEffect], forbids: [].}

Returns: McpWireResult.

Name Type Default
peer McpPeer
methodName string
values JsonNode nil

View source

proc notifyAsync(peer: McpPeer; methodName: string; values: JsonNode = nil): Future[
void] {.stackTrace: false, raises: [Exception, McpError, ValueError],
tags: [RootEffect], forbids: [].}

Returns: Future[void].

Name Type Default
peer McpPeer
methodName string
values JsonNode nil

View source

proc notify(peer: McpPeer; methodName: string; values: JsonNode = nil) {.
raises: [ValueError, Exception, OSError, McpError],
tags: [TimeEffect, RootEffect], forbids: [].}
Name Type Default
peer McpPeer
methodName string
values JsonNode nil

View source

proc close(peer: McpPeer) {.raises: [Exception], tags: [RootEffect], forbids: [].}
Name Type Default
peer McpPeer

View source