Skip to content

nimwire/mrtr

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

Multi round-trip requests and low-level input handling.

McpElicitationMode = enum
mcpElicitationForm, mcpElicitationUrl

View source

McpElicitationRequest = object
mode*: McpElicitationMode
message*: string
requestedSchema*: JsonNode
url*: string

View source

McpElicitationAction = enum
mcpElicitationAccept, mcpElicitationDecline, mcpElicitationCancel

View source

McpElicitationResult = object
action*: McpElicitationAction
content*: JsonNode

View source

McpInputRequests = Table[string, McpInputRequest]

View source

McpElicitationHandler = proc (request: McpElicitationRequest): McpElicitationResult {.
closure.}

View source

McpInputResponseHandler = proc (request: McpInputRequest): JsonNode {.closure.}

View source

McpInputClient = ref object
elicitationHandler*: McpElicitationHandler
samplingHandler*: McpInputResponseHandler
rootsHandler*: McpInputResponseHandler

View source

proc newMcpInputRequest(methodName: string; params: JsonNode = nil): McpInputRequest {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpInputRequest.

Name Type Default
methodName string
params JsonNode nil

View source

proc newMcpElicitationFormRequest(message: string; requestedSchema: JsonNode): McpInputRequest {.
raises: [McpError, Exception, KeyError], tags: [RootEffect], forbids: [].}

Returns: McpInputRequest.

Name Type Default
message string
requestedSchema JsonNode

View source

proc newMcpElicitationUrlRequest(message, url: string): McpInputRequest {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpInputRequest.

Name Type Default
message string
url string

View source

proc toJson(value: McpInputRequest): JsonNode {.raises: [], tags: [],
forbids: [].}

Returns: JsonNode.

Name Type Default
value McpInputRequest

View source

proc parseMcpInputRequest(node: JsonNode): McpInputRequest {.
raises: [KeyError, McpError], tags: [], forbids: [].}

Returns: McpInputRequest.

Name Type Default
node JsonNode

View source

proc inputRequestsJson(inputRequests: McpInputRequests): JsonNode {.
raises: [McpError], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
inputRequests McpInputRequests

View source

proc newMcpInputRequiredResult(inputRequests: JsonNode = nil; requestState = ""): McpWireResult {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpWireResult.

Name Type Default
inputRequests JsonNode nil
requestState inferred ""

View source

proc newMcpInputRequiredResult(inputRequests: McpInputRequests;
requestState = ""): McpWireResult {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpWireResult.

Name Type Default
inputRequests McpInputRequests
requestState inferred ""

View source

proc newMcpInputRequiredResult(entries: openArray[(string, McpInputRequest)];
requestState = ""): McpWireResult {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpWireResult.

Name Type Default
entries openArray[(string, McpInputRequest)]
requestState inferred ""

View source

proc parseInputRequests(value: McpWireResult): McpInputRequests {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpInputRequests.

Name Type Default
value McpWireResult

View source

proc parseMcpElicitationRequest(request: McpInputRequest): McpElicitationRequest {.
raises: [McpError, KeyError, Exception], tags: [RootEffect], forbids: [].}

Returns: McpElicitationRequest.

Name Type Default
request McpInputRequest

View source

proc newMcpElicitationResult(action: McpElicitationAction;
content: JsonNode = nil): McpElicitationResult {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpElicitationResult.

Name Type Default
action McpElicitationAction
content JsonNode nil

View source

proc acceptElicitation(content: JsonNode = nil): McpElicitationResult {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpElicitationResult.

Name Type Default
content JsonNode nil

View source

proc declineElicitation(): McpElicitationResult {.raises: [McpError], tags: [],
forbids: [].}

Returns: McpElicitationResult.

View source

proc cancelElicitation(): McpElicitationResult {.raises: [McpError], tags: [],
forbids: [].}

Returns: McpElicitationResult.

View source

proc toJson(value: McpElicitationResult): JsonNode {.raises: [], tags: [],
forbids: [].}

Returns: JsonNode.

Name Type Default
value McpElicitationResult

View source

proc parseMcpElicitationResult(node: JsonNode): McpElicitationResult {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpElicitationResult.

Name Type Default
node JsonNode

View source

proc validateElicitationResponse(request: McpElicitationRequest;
response: McpElicitationResult) {.
raises: [McpError, Exception, KeyError], tags: [RootEffect], forbids: [].}
Name Type Default
request McpElicitationRequest
response McpElicitationResult

View source

proc newMcpInputClient(firstRequestId = 1'i64;
elicitationHandler: McpElicitationHandler = nil;
samplingHandler: McpInputResponseHandler = nil;
rootsHandler: McpInputResponseHandler = nil): McpInputClient {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpInputClient.

Name Type Default
firstRequestId inferred 1'i64
elicitationHandler McpElicitationHandler nil
samplingHandler McpInputResponseHandler nil
rootsHandler McpInputResponseHandler nil

View source

proc setElicitationHandler(client: McpInputClient;
handler: McpElicitationHandler) {.raises: [],
tags: [], forbids: [].}
Name Type Default
client McpInputClient
handler McpElicitationHandler

View source

proc setSamplingHandler(client: McpInputClient; handler: McpInputResponseHandler) {.
raises: [], tags: [], forbids: [].}
Name Type Default
client McpInputClient
handler McpInputResponseHandler

View source

proc setRootsHandler(client: McpInputClient; handler: McpInputResponseHandler) {.
raises: [], tags: [], forbids: [].}
Name Type Default
client McpInputClient
handler McpInputResponseHandler

View source

proc rememberRequest(client: McpInputClient; id: McpId) {.raises: [McpError],
tags: [], forbids: [].}
Name Type Default
client McpInputClient
id McpId

View source

proc freshRequestId(client: McpInputClient): McpId {.raises: [McpError],
tags: [], forbids: [].}

Returns: McpId.

Name Type Default
client McpInputClient

View source

proc retryInputRequired(client: McpInputClient;
original, response: McpJsonRpcMessage; retryId: McpId): McpJsonRpcMessage {.
raises: [McpError, KeyError, Exception], tags: [RootEffect], forbids: [].}

Returns: McpJsonRpcMessage.

Name Type Default
client McpInputClient
original McpJsonRpcMessage
response McpJsonRpcMessage
retryId McpId

View source

proc retryInputRequired(client: McpInputClient;
original, response: McpJsonRpcMessage): McpJsonRpcMessage {.
raises: [McpError, KeyError, Exception], tags: [RootEffect], forbids: [].}

Returns: McpJsonRpcMessage.

Name Type Default
client McpInputClient
original McpJsonRpcMessage
response McpJsonRpcMessage

View source