nimgent/mcp
This page is generated from the module’s exported API and ## documentation comments.
MCP 2026-07-28 client over stdio and Streamable HTTP.
The client deliberately pins the modern stateless revision. It discovers tools, resources, prompts, completions, subscriptions, and task handles, then adapts remote tools to nimgent’s normal Tool type.
Constants
Section titled “Constants”mcpProtocolVersion
Section titled “mcpProtocolVersion”MCP revision used by the client.
mcpProtocolVersion = "2026-07-28"McpRequestOptions
Section titled “McpRequestOptions”Optional request metadata sent in the MCP _meta object.
McpRequestOptions = object progressToken*: JsonNode logLevel*: string traceContext*: JsonNode metadata*: JsonNodeMcpInputRequest
Section titled “McpInputRequest”One input request from an input_required result.
McpInputRequest = object key*: string methodName*: string params*: JsonNode raw*: JsonNodeMcpInputHandler
Section titled “McpInputHandler”McpInputHandler = proc (request: McpInputRequest): JsonNode {.closure.}McpProgressHandler
Section titled “McpProgressHandler”McpProgressHandler = proc (progress, total: float; message: string) {.closure.}McpNotificationHandler
Section titled “McpNotificationHandler”McpNotificationHandler = proc (methodName: string; params: JsonNode) {.closure.}McpClientError
Section titled “McpClientError”Error returned by an MCP client operation.
McpClientError = object of CatchableError code*: int data*: JsonNodeMcpToolInfo
Section titled “McpToolInfo”Discovered MCP tool metadata.
McpToolInfo = object name*: string description*: string inputSchema*: JsonNode outputSchema*: JsonNode title*: string icons*: JsonNode annotations*: JsonNodeMcpResourceInfo
Section titled “McpResourceInfo”Discovered MCP resource metadata.
McpResourceInfo = object uri*: string uriTemplate*: string name*: string title*: string description*: string icons*: JsonNode mimeType*: string size*: int64 annotations*: JsonNodeMcpResourceContent
Section titled “McpResourceContent”Text or base64-encoded binary resource content.
McpResourceContent = object uri*: string mimeType*: string text*: string blob*: string isBlob*: bool raw*: JsonNodeMcpResourceReadResult
Section titled “McpResourceReadResult”McpResourceReadResult = object resultType*: string contents*: seq[McpResourceContent] ttlMs*: int64 cacheScope*: string inputRequests*: JsonNode requestState*: string raw*: JsonNodeMcpPromptArgumentInfo
Section titled “McpPromptArgumentInfo”McpPromptArgumentInfo = object name*: string description*: string required*: boolMcpPromptInfo
Section titled “McpPromptInfo”Discovered MCP prompt metadata.
McpPromptInfo = object name*: string title*: string description*: string icons*: JsonNode arguments*: seq[McpPromptArgumentInfo]McpPromptMessage
Section titled “McpPromptMessage”McpPromptMessage = object role*: string content*: JsonNode raw*: JsonNodeMcpPromptResult
Section titled “McpPromptResult”McpPromptResult = object resultType*: string description*: string messages*: seq[McpPromptMessage] inputRequests*: JsonNode requestState*: string raw*: JsonNodeMcpCompletionResult
Section titled “McpCompletionResult”McpCompletionResult = object values*: seq[string] total*: int hasMore*: bool raw*: JsonNodeMcpTaskInfo
Section titled “McpTaskInfo”Task handle and current state returned by the Tasks extension.
McpTaskInfo = object taskId*: string status*: string statusMessage*: string createdAt*: string lastUpdatedAt*: string ttlMs*: int64 pollIntervalMs*: int progress*: float hasProgress*: bool total*: float hasTotal*: bool inputRequests*: JsonNode result*: JsonNode error*: JsonNode raw*: JsonNodeMcpCallResult
Section titled “McpCallResult”Content and status returned by an MCP tool call.
McpCallResult = object content*: JsonNode structuredContent*: JsonNode isError*: bool resultType*: string inputRequests*: JsonNode requestState*: string task*: McpTaskInfo raw*: JsonNodeMcpSubscriptionFilter
Section titled “McpSubscriptionFilter”Change streams requested from subscriptions/listen.
McpSubscriptionFilter = object toolsListChanged*: bool promptsListChanged*: bool resourcesListChanged*: bool resourceSubscriptions*: seq[string]McpSubscription
Section titled “McpSubscription”A live MCP subscription backed by a pull-based event stream.
McpSubscription = ref object id*: int filter*: McpSubscriptionFilter queue*: FutureStream[JsonNode] acknowledged*: Future[JsonNode] closed*: Future[void]McpSubscriptionMessageHandler
Section titled “McpSubscriptionMessageHandler”McpSubscriptionMessageHandler = proc (message: JsonNode) {.closure.}McpClient
Section titled “McpClient”Client connected to an MCP server over stdio or Streamable HTTP.
McpClient = ref object progressHandler*: McpProgressHandler notificationHandler*: McpNotificationHandler serverInfo*: JsonNode discovery*: JsonNodeProcedures
Section titled “Procedures”close (overload 1)
Section titled “close (overload 1)”Close the MCP process and pending requests.
proc close(client: McpClient) {.raises: [ValueError, Exception], tags: [RootEffect, WriteIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
requestAsync
Section titled “requestAsync”Send a raw MCP request and return its complete result object.
proc requestAsync(client: McpClient; methodName: string; params: JsonNode = nil; options = McpRequestOptions()): Future[JsonNode] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[JsonNode].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
methodName |
string |
|
params |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
notifyAsync
Section titled “notifyAsync”Send an MCP notification without waiting for a response.
proc notifyAsync(client: McpClient; methodName: string; params: JsonNode = nil; options = McpRequestOptions()): Future[void] {. stackTrace: false, raises: [Exception, McpClientError, KeyError, LibraryError, SslError, IOError, ValueError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
methodName |
string |
|
params |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
notify
Section titled “notify”proc notify(client: McpClient; methodName: string; params: JsonNode = nil; options = McpRequestOptions()) {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
methodName |
string |
|
params |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
setClientCapabilities
Section titled “setClientCapabilities”proc setClientCapabilities(client: McpClient; capabilities: JsonNode) {. raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
capabilities |
JsonNode |
setInputHandler
Section titled “setInputHandler”proc setInputHandler(client: McpClient; methodName: string; handler: McpInputHandler) {.raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
methodName |
string |
|
handler |
McpInputHandler |
setElicitationHandler
Section titled “setElicitationHandler”proc setElicitationHandler(client: McpClient; handler: McpInputHandler) {. raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
handler |
McpInputHandler |
setSamplingHandler
Section titled “setSamplingHandler”proc setSamplingHandler(client: McpClient; handler: McpInputHandler) {. raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
handler |
McpInputHandler |
setRootsHandler
Section titled “setRootsHandler”proc setRootsHandler(client: McpClient; handler: McpInputHandler) {. raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
handler |
McpInputHandler |
setNotificationHandler
Section titled “setNotificationHandler”proc setNotificationHandler(client: McpClient; handler: McpNotificationHandler) {. raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
handler |
McpNotificationHandler |
setProgressHandler
Section titled “setProgressHandler”proc setProgressHandler(client: McpClient; handler: McpProgressHandler) {. raises: [McpClientError], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
handler |
McpProgressHandler |
discoverAsync
Section titled “discoverAsync”Discover and validate the MCP server protocol and metadata.
proc discoverAsync(client: McpClient; options = McpRequestOptions()): Future[ JsonNode] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[JsonNode].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
pingAsync
Section titled “pingAsync”Check that the connected MCP server is responsive.
proc pingAsync(client: McpClient; options = McpRequestOptions()): Future[ JsonNode] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[JsonNode].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
proc ping(client: McpClient; options = McpRequestOptions()): JsonNode {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: JsonNode.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
connectMcpHttpAsync
Section titled “connectMcpHttpAsync”Connect to a stateless MCP Streamable HTTP endpoint.
proc connectMcpHttpAsync(endpoint: string; bearerToken = ""; headers: HttpHeaders = nil; clientName = "nimgent"; clientVersion = "0.1.0"; clientCapabilities: JsonNode = nil): Future[McpClient] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, CatchableError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpClient].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
endpoint |
string |
|
bearerToken |
inferred |
"" |
headers |
HttpHeaders |
nil |
clientName |
inferred |
"nimgent" |
clientVersion |
inferred |
"0.1.0" |
clientCapabilities |
JsonNode |
nil |
connectMcpHttp
Section titled “connectMcpHttp”proc connectMcpHttp(endpoint: string; bearerToken = ""; headers: HttpHeaders = nil; clientName = "nimgent"; clientVersion = "0.1.0"; clientCapabilities: JsonNode = nil): McpClient {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, CatchableError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpClient.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
endpoint |
string |
|
bearerToken |
inferred |
"" |
headers |
HttpHeaders |
nil |
clientName |
inferred |
"nimgent" |
clientVersion |
inferred |
"0.1.0" |
clientCapabilities |
JsonNode |
nil |
connectMcpStreamableHttpAsync
Section titled “connectMcpStreamableHttpAsync”Alias with the transport name used by MCP documentation.
proc connectMcpStreamableHttpAsync(endpoint: string; bearerToken = ""; headers: HttpHeaders = nil; clientName = "nimgent"; clientVersion = "0.1.0"; clientCapabilities: JsonNode = nil): Future[ McpClient] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, CatchableError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpClient].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
endpoint |
string |
|
bearerToken |
inferred |
"" |
headers |
HttpHeaders |
nil |
clientName |
inferred |
"nimgent" |
clientVersion |
inferred |
"0.1.0" |
clientCapabilities |
JsonNode |
nil |
connectMcpStreamableHttp
Section titled “connectMcpStreamableHttp”proc connectMcpStreamableHttp(endpoint: string; bearerToken = ""; headers: HttpHeaders = nil; clientName = "nimgent"; clientVersion = "0.1.0"; clientCapabilities: JsonNode = nil): McpClient {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, CatchableError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpClient.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
endpoint |
string |
|
bearerToken |
inferred |
"" |
headers |
HttpHeaders |
nil |
clientName |
inferred |
"nimgent" |
clientVersion |
inferred |
"0.1.0" |
clientCapabilities |
JsonNode |
nil |
connectMcpStdioAsync
Section titled “connectMcpStdioAsync”Start an MCP server process and connect to it over stdio.
proc connectMcpStdioAsync(command: seq[string]; workingDir = ""; env: StringTableRef = nil; clientName = "nimgent"; clientVersion = "0.1.0"; clientCapabilities: JsonNode = nil): Future[McpClient] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, OSError, IOError, CatchableError], tags: [RootEffect, ExecIOEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, ReadDirEffect, TimeEffect], forbids: [].}Returns: Future[McpClient].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
command |
seq[string] |
|
workingDir |
inferred |
"" |
env |
StringTableRef |
nil |
clientName |
inferred |
"nimgent" |
clientVersion |
inferred |
"0.1.0" |
clientCapabilities |
JsonNode |
nil |
connectMcpStdio
Section titled “connectMcpStdio”Synchronously start and connect to an MCP server over stdio.
proc connectMcpStdio(command: seq[string]; workingDir = ""; env: StringTableRef = nil; clientName = "nimgent"; clientVersion = "0.1.0"; clientCapabilities: JsonNode = nil): McpClient {.raises: [ ValueError, Exception, OSError, McpClientError, IOError, CatchableError], tags: [ TimeEffect, RootEffect, ExecIOEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, ReadDirEffect], forbids: [].}Returns: McpClient.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
command |
seq[string] |
|
workingDir |
inferred |
"" |
env |
StringTableRef |
nil |
clientName |
inferred |
"nimgent" |
clientVersion |
inferred |
"0.1.0" |
clientCapabilities |
JsonNode |
nil |
listToolsAsync
Section titled “listToolsAsync”Discover the tools exposed by the connected MCP server.
proc listToolsAsync(client: McpClient; options = McpRequestOptions()): Future[ seq[McpToolInfo]] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[seq[McpToolInfo]].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listTools
Section titled “listTools”Synchronously discover the connected server’s tools.
proc listTools(client: McpClient; options = McpRequestOptions()): seq[ McpToolInfo] {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: seq[McpToolInfo].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listResourcesAsync
Section titled “listResourcesAsync”Discover all static MCP resources, following pagination cursors.
proc listResourcesAsync(client: McpClient; options = McpRequestOptions()): Future[ seq[McpResourceInfo]] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[seq[McpResourceInfo]].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listResources
Section titled “listResources”proc listResources(client: McpClient; options = McpRequestOptions()): seq[ McpResourceInfo] {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: seq[McpResourceInfo].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listResourceTemplatesAsync
Section titled “listResourceTemplatesAsync”Discover all URI-template resources, following pagination cursors.
proc listResourceTemplatesAsync(client: McpClient; options = McpRequestOptions()): Future[ seq[McpResourceInfo]] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[seq[McpResourceInfo]].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listResourceTemplates
Section titled “listResourceTemplates”proc listResourceTemplates(client: McpClient; options = McpRequestOptions()): seq[ McpResourceInfo] {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: seq[McpResourceInfo].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listPromptsAsync
Section titled “listPromptsAsync”Discover all MCP prompts, following pagination cursors.
proc listPromptsAsync(client: McpClient; options = McpRequestOptions()): Future[ seq[McpPromptInfo]] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[seq[McpPromptInfo]].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
listPrompts
Section titled “listPrompts”proc listPrompts(client: McpClient; options = McpRequestOptions()): seq[ McpPromptInfo] {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: seq[McpPromptInfo].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
options |
inferred |
McpRequestOptions() |
requestWithInputAsync
Section titled “requestWithInputAsync”Complete stateless input-required retries with the configured handlers.
proc requestWithInputAsync(client: McpClient; methodName: string; params: JsonNode = nil; options = McpRequestOptions(); maxInputRounds = 8): Future[ JsonNode] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[JsonNode].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
methodName |
string |
|
params |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
maxInputRounds |
inferred |
8 |
requestWithInput
Section titled “requestWithInput”proc requestWithInput(client: McpClient; methodName: string; params: JsonNode = nil; options = McpRequestOptions(); maxInputRounds = 8): JsonNode {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: JsonNode.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
methodName |
string |
|
params |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
maxInputRounds |
inferred |
8 |
readResourceAsync
Section titled “readResourceAsync”Read a static resource or URI-template instance.
proc readResourceAsync(client: McpClient; uri: string; options = McpRequestOptions()): Future[ McpResourceReadResult] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpResourceReadResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
uri |
string |
|
options |
inferred |
McpRequestOptions() |
readResource
Section titled “readResource”proc readResource(client: McpClient; uri: string; options = McpRequestOptions()): McpResourceReadResult {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpResourceReadResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
uri |
string |
|
options |
inferred |
McpRequestOptions() |
readResourceContentsAsync
Section titled “readResourceContentsAsync”proc readResourceContentsAsync(client: McpClient; uri: string; options = McpRequestOptions()): Future[ seq[McpResourceContent]] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[seq[McpResourceContent]].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
uri |
string |
|
options |
inferred |
McpRequestOptions() |
readResourceContents
Section titled “readResourceContents”proc readResourceContents(client: McpClient; uri: string; options = McpRequestOptions()): seq[McpResourceContent] {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: seq[McpResourceContent].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
uri |
string |
|
options |
inferred |
McpRequestOptions() |
getPromptAsync
Section titled “getPromptAsync”Render a prompt with its string arguments.
proc getPromptAsync(client: McpClient; name: string; arguments: JsonNode = nil; options = McpRequestOptions()): Future[McpPromptResult] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpPromptResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
name |
string |
|
arguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
getPrompt
Section titled “getPrompt”proc getPrompt(client: McpClient; name: string; arguments: JsonNode = nil; options = McpRequestOptions()): McpPromptResult {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpPromptResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
name |
string |
|
arguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
completeAsync
Section titled “completeAsync”Complete a prompt or resource-template argument.
proc completeAsync(client: McpClient; reference: JsonNode; argument: string; prefix: string; contextArguments: JsonNode = nil; options = McpRequestOptions()): Future[McpCompletionResult] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpCompletionResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
reference |
JsonNode |
|
argument |
string |
|
prefix |
string |
|
contextArguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
complete
Section titled “complete”proc complete(client: McpClient; reference: JsonNode; argument, prefix: string; contextArguments: JsonNode = nil; options = McpRequestOptions()): McpCompletionResult {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpCompletionResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
reference |
JsonNode |
|
argument |
string |
|
prefix |
string |
|
contextArguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
completePromptArgumentAsync
Section titled “completePromptArgumentAsync”proc completePromptArgumentAsync(client: McpClient; prompt, argument, prefix: string; contextArguments: JsonNode = nil; options = McpRequestOptions()): Future[ McpCompletionResult] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpCompletionResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
prompt |
string |
|
argument |
string |
|
prefix |
string |
|
contextArguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
completeResourceArgumentAsync
Section titled “completeResourceArgumentAsync”proc completeResourceArgumentAsync(client: McpClient; uriTemplate, argument, prefix: string; contextArguments: JsonNode = nil; options = McpRequestOptions()): Future[ McpCompletionResult] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpCompletionResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
uriTemplate |
string |
|
argument |
string |
|
prefix |
string |
|
contextArguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
completePromptArgument
Section titled “completePromptArgument”proc completePromptArgument(client: McpClient; prompt, argument, prefix: string; contextArguments: JsonNode = nil; options = McpRequestOptions()): McpCompletionResult {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpCompletionResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
prompt |
string |
|
argument |
string |
|
prefix |
string |
|
contextArguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
completeResourceArgument
Section titled “completeResourceArgument”proc completeResourceArgument(client: McpClient; uriTemplate, argument, prefix: string; contextArguments: JsonNode = nil; options = McpRequestOptions()): McpCompletionResult {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpCompletionResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
uriTemplate |
string |
|
argument |
string |
|
prefix |
string |
|
contextArguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
callToolAsync
Section titled “callToolAsync”Call a remote MCP tool asynchronously.
proc callToolAsync(client: McpClient; name: string; arguments: JsonNode = nil; options = McpRequestOptions()): Future[McpCallResult] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpCallResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
name |
string |
|
arguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
callTool
Section titled “callTool”Synchronously call a remote MCP tool.
proc callTool(client: McpClient; name: string; arguments: JsonNode = nil; options = McpRequestOptions()): McpCallResult {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpCallResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
name |
string |
|
arguments |
JsonNode |
nil |
options |
inferred |
McpRequestOptions() |
getTaskAsync
Section titled “getTaskAsync”Read the current state of a task returned by a tool call.
proc getTaskAsync(client: McpClient; taskId: string; options = McpRequestOptions()): Future[McpTaskInfo] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpTaskInfo].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
taskId |
string |
|
options |
inferred |
McpRequestOptions() |
getTask
Section titled “getTask”proc getTask(client: McpClient; taskId: string; options = McpRequestOptions()): McpTaskInfo {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpTaskInfo.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
taskId |
string |
|
options |
inferred |
McpRequestOptions() |
updateTaskAsync
Section titled “updateTaskAsync”Supply responses for pending task input and resume the task.
proc updateTaskAsync(client: McpClient; taskId: string; inputResponses: JsonNode; requestState = ""; options = McpRequestOptions()): Future[void] {. stackTrace: false, raises: [Exception, McpClientError, ValueError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
taskId |
string |
|
inputResponses |
JsonNode |
|
requestState |
inferred |
"" |
options |
inferred |
McpRequestOptions() |
updateTask
Section titled “updateTask”proc updateTask(client: McpClient; taskId: string; inputResponses: JsonNode; requestState = ""; options = McpRequestOptions()) {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
taskId |
string |
|
inputResponses |
JsonNode |
|
requestState |
inferred |
"" |
options |
inferred |
McpRequestOptions() |
cancelTaskAsync
Section titled “cancelTaskAsync”Cancel a running task.
proc cancelTaskAsync(client: McpClient; taskId: string; options = McpRequestOptions()): Future[void] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
taskId |
string |
|
options |
inferred |
McpRequestOptions() |
cancelTask
Section titled “cancelTask”proc cancelTask(client: McpClient; taskId: string; options = McpRequestOptions()) {.raises: [ ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
taskId |
string |
|
options |
inferred |
McpRequestOptions() |
cancelRequestAsync
Section titled “cancelRequestAsync”Ask the server to cancel an in-flight request or subscription.
proc cancelRequestAsync(client: McpClient; requestId: int; reason = ""; options = McpRequestOptions()): Future[void] {. stackTrace: false, raises: [Exception, McpClientError, KeyError, LibraryError, SslError, IOError, ValueError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
requestId |
int |
|
reason |
inferred |
"" |
options |
inferred |
McpRequestOptions() |
cancelRequest
Section titled “cancelRequest”proc cancelRequest(client: McpClient; requestId: int; reason = ""; options = McpRequestOptions()) {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
requestId |
int |
|
reason |
inferred |
"" |
options |
inferred |
McpRequestOptions() |
proc read(subscription: McpSubscription): Future[(bool, JsonNode)] {. raises: [McpClientError, ValueError, Exception], tags: [RootEffect], forbids: [].}Returns: Future[(bool, JsonNode)].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
subscription |
McpSubscription |
waitAcknowledged
Section titled “waitAcknowledged”proc waitAcknowledged(subscription: McpSubscription): Future[JsonNode] {. raises: [McpClientError], tags: [], forbids: [].}Returns: Future[JsonNode].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
subscription |
McpSubscription |
waitClosed
Section titled “waitClosed”proc waitClosed(subscription: McpSubscription): Future[void] {. raises: [McpClientError], tags: [], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
subscription |
McpSubscription |
isActive
Section titled “isActive”proc isActive(subscription: McpSubscription): bool {.raises: [], tags: [], forbids: [].}Returns: bool.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
subscription |
McpSubscription |
subscribeAsync (overload 1)
Section titled “subscribeAsync (overload 1)”Open a live tools, prompts, or resources change stream.
proc subscribeAsync(client: McpClient; filter: McpSubscriptionFilter; handler: McpSubscriptionMessageHandler = nil): Future[ McpSubscription] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, CatchableError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpSubscription].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
filter |
McpSubscriptionFilter |
|
handler |
McpSubscriptionMessageHandler |
nil |
subscribe (overload 1)
Section titled “subscribe (overload 1)”proc subscribe(client: McpClient; filter: McpSubscriptionFilter; handler: McpSubscriptionMessageHandler = nil): McpSubscription {. raises: [ValueError, Exception, OSError, McpClientError, CatchableError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpSubscription.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
filter |
McpSubscriptionFilter |
|
handler |
McpSubscriptionMessageHandler |
nil |
subscribeAsync (overload 2)
Section titled “subscribeAsync (overload 2)”proc subscribeAsync(client: McpClient; notifications: JsonNode; handler: McpSubscriptionMessageHandler = nil): Future[ McpSubscription] {.stackTrace: false, raises: [Exception, ValueError, McpClientError, CatchableError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpSubscription].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
notifications |
JsonNode |
|
handler |
McpSubscriptionMessageHandler |
nil |
subscribe (overload 2)
Section titled “subscribe (overload 2)”proc subscribe(client: McpClient; notifications: JsonNode; handler: McpSubscriptionMessageHandler = nil): McpSubscription {. raises: [ValueError, Exception, OSError, McpClientError, CatchableError], tags: [ TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: McpSubscription.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
notifications |
JsonNode |
|
handler |
McpSubscriptionMessageHandler |
nil |
asToolsAsync
Section titled “asToolsAsync”Adapt discovered MCP tools into executable nimgent tools.
proc asToolsAsync(client: McpClient; prefix = ""): Future[seq[Tool]] {. stackTrace: false, raises: [Exception, ValueError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[seq[Tool]].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
prefix |
inferred |
"" |
asTools
Section titled “asTools”Synchronously adapt discovered MCP tools into executable tools.
proc asTools(client: McpClient; prefix = ""): seq[Tool] {.raises: [ValueError, Exception, OSError, McpClientError, KeyError, LibraryError, SslError, IOError], tags: [TimeEffect, RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: seq[Tool].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
client |
McpClient |
|
prefix |
inferred |
"" |
closeAsync
Section titled “closeAsync”Stop a live MCP subscription and release its local event stream.
proc closeAsync(subscription: McpSubscription): Future[void] {. stackTrace: false, raises: [Exception, McpClientError, KeyError, LibraryError, SslError, IOError, ValueError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
subscription |
McpSubscription |
close (overload 2)
Section titled “close (overload 2)”proc close(subscription: McpSubscription) {.raises: [Exception, McpClientError, KeyError, LibraryError, SslError, IOError, ValueError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
subscription |
McpSubscription |