Skip to content

nimwire/resources

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

Resource definitions, URI templates, contents, and safe file helpers.

McpResourceContentKind = enum
mcpResourceText, mcpResourceBlob

View source

McpResourceContent = object
uri*: string
mimeType*: string
case kind*: McpResourceContentKind
of mcpResourceText:
text*: string
of mcpResourceBlob:
blob*: string

View source

McpResourceReadHandler = proc (uri: string; context: McpContext): Future[
seq[McpResourceContent]] {.closure.}

View source

McpResourceSingleReadHandler = proc (uri: string; context: McpContext): Future[
McpResourceContent] {.closure.}

View source

McpSyncResourceReadHandler = proc (uri: string; context: McpContext): seq[
McpResourceContent] {.closure.}

View source

McpSyncResourceSingleReadHandler = proc (uri: string; context: McpContext): McpResourceContent {.
closure.}

View source

McpResourceCompletionHandler = proc (argument, prefix: string;
context: McpContext): Future[seq[string]] {.
closure.}

View source

McpSyncResourceCompletionHandler = proc (argument, prefix: string;
context: McpContext): seq[string] {.closure.}

View source

McpResource = object
uri*: string
name*: string
title*: string
description*: string
icons*: JsonNode
mimeType*: string
size*: int64 ## Untrusted caller-facing metadata; never use it as an authorization policy.
annotations*: JsonNode
contents*: seq[McpResourceContent]

View source

McpResourceTemplate = object
uriTemplate*: string
name*: string
title*: string
description*: string
icons*: JsonNode
mimeType*: string ## Untrusted caller-facing metadata; never use it as an authorization policy.
annotations*: JsonNode

View source

McpResourceTemplateReadHandler = proc (uri: string; arguments: JsonNode;
context: McpContext): Future[
seq[McpResourceContent]] {.closure.}

View source

McpResourceTemplateSingleReadHandler = proc (uri: string; arguments: JsonNode;
context: McpContext): Future[McpResourceContent] {.closure.}

View source

McpSyncResourceTemplateReadHandler = proc (uri: string; arguments: JsonNode;
context: McpContext): seq[McpResourceContent] {.closure.}

View source

McpSyncResourceTemplateSingleReadHandler = proc (uri: string;
arguments: JsonNode; context: McpContext): McpResourceContent {.closure.}

View source

proc validateResourceUri(uriValue: string; context = "resource") {.
raises: [McpError, McpError], tags: [], forbids: [].}
Name Type Default
uriValue string
context inferred "resource"

View source

proc resourceText(uri, text: string; mimeType = ""): McpResourceContent {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpResourceContent.

Name Type Default
uri string
text string
mimeType inferred ""

View source

proc resourceBlob(uri, blob: string; mimeType = ""): McpResourceContent {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpResourceContent.

Name Type Default
uri string
blob string
mimeType inferred ""

View source

proc resourceBytes(uri, data: string; mimeType = ""): McpResourceContent {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpResourceContent.

Name Type Default
uri string
data string
mimeType inferred ""

View source

proc newMcpResource(uri, name: string; contents: seq[McpResourceContent];
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; size: int64 = -1; annotations: JsonNode = nil): McpResource {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResource.

Name Type Default
uri string
name string
contents seq[McpResourceContent]
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

proc newMcpResource(uri, name: string; content: McpResourceContent; title = "";
description = ""; icons: JsonNode = nil; mimeType = "";
size: int64 = -1; annotations: JsonNode = nil): McpResource {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResource.

Name Type Default
uri string
name string
content McpResourceContent
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

proc newMcpResource(uri, name: string; handler: McpResourceReadHandler;
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; size: int64 = -1; annotations: JsonNode = nil): McpResource {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResource.

Name Type Default
uri string
name string
handler McpResourceReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

proc newMcpResource(uri, name: string; handler: McpResourceSingleReadHandler;
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; size: int64 = -1; annotations: JsonNode = nil): McpResource {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResource.

Name Type Default
uri string
name string
handler McpResourceSingleReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

proc newMcpResource(uri, name: string; handler: McpSyncResourceReadHandler;
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; size: int64 = -1; annotations: JsonNode = nil): McpResource {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResource.

Name Type Default
uri string
name string
handler McpSyncResourceReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

proc newMcpResource(uri, name: string;
handler: McpSyncResourceSingleReadHandler; title = "";
description = ""; icons: JsonNode = nil; mimeType = "";
size: int64 = -1; annotations: JsonNode = nil): McpResource {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResource.

Name Type Default
uri string
name string
handler McpSyncResourceSingleReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

proc validateUriTemplate(uriTemplate: string) {.raises: [McpError, McpError],
tags: [], forbids: [].}
Name Type Default
uriTemplate string

View source

proc resourceTemplateVariables(uriTemplate: string): seq[string] {.
raises: [McpError], tags: [], forbids: [].}

Returns: seq[string].

Name Type Default
uriTemplate string

View source

proc newMcpResourceTemplate(uriTemplate, name: string;
handler: McpResourceTemplateReadHandler; title = "";
description = ""; icons: JsonNode = nil;
mimeType = ""; annotations: JsonNode = nil): McpResourceTemplate {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResourceTemplate.

Name Type Default
uriTemplate string
name string
handler McpResourceTemplateReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
annotations JsonNode nil

View source

proc toJson(resource: McpResource): JsonNode {.raises: [], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
resource McpResource

View source

proc toJson(resourceTemplate: McpResourceTemplate): JsonNode {.raises: [],
tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
resourceTemplate McpResourceTemplate

View source

proc newMcpResourceTemplate(uriTemplate, name: string;
handler: McpResourceTemplateSingleReadHandler;
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; annotations: JsonNode = nil): McpResourceTemplate {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResourceTemplate.

Name Type Default
uriTemplate string
name string
handler McpResourceTemplateSingleReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
annotations JsonNode nil

View source

proc newMcpResourceTemplate(uriTemplate, name: string;
handler: McpSyncResourceTemplateReadHandler;
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; annotations: JsonNode = nil): McpResourceTemplate {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResourceTemplate.

Name Type Default
uriTemplate string
name string
handler McpSyncResourceTemplateReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
annotations JsonNode nil

View source

proc newMcpResourceTemplate(uriTemplate, name: string;
handler: McpSyncResourceTemplateSingleReadHandler;
title = ""; description = ""; icons: JsonNode = nil;
mimeType = ""; annotations: JsonNode = nil): McpResourceTemplate {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResourceTemplate.

Name Type Default
uriTemplate string
name string
handler McpSyncResourceTemplateSingleReadHandler
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
annotations JsonNode nil

View source

proc addCompletion(resourceTemplate: var McpResourceTemplate; argument: string;
handler: McpResourceCompletionHandler) {.raises: [McpError],
tags: [], forbids: [].}
Name Type Default
resourceTemplate var McpResourceTemplate
argument string
handler McpResourceCompletionHandler

View source

proc addCompletion(resourceTemplate: var McpResourceTemplate;
completion: McpCompletion) {.raises: [McpError], tags: [],
forbids: [].}
Name Type Default
resourceTemplate var McpResourceTemplate
completion McpCompletion

View source

proc addCompletion(resourceTemplate: var McpResourceTemplate; argument: string;
handler: McpSyncResourceCompletionHandler) {.
raises: [McpError], tags: [], forbids: [].}
Name Type Default
resourceTemplate var McpResourceTemplate
argument string
handler McpSyncResourceCompletionHandler

View source

proc matchResourceTemplate(resourceTemplate: McpResourceTemplate;
uriValue: string): JsonNode {.raises: [McpError],
tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
resourceTemplate McpResourceTemplate
uriValue string

View source

proc readResource(resource: McpResource; uriValue: string; context: McpContext): Future[
seq[McpResourceContent]] {.stackTrace: false,
raises: [Exception, ValueError],
tags: [RootEffect], forbids: [].}

Returns: Future[seq[McpResourceContent]].

Name Type Default
resource McpResource
uriValue string
context McpContext

View source

proc readResourceTemplate(resourceTemplate: McpResourceTemplate;
uriValue: string; arguments: JsonNode;
context: McpContext): Future[seq[McpResourceContent]] {.
stackTrace: false, raises: [Exception, ValueError], tags: [RootEffect],
forbids: [].}

Returns: Future[seq[McpResourceContent]].

Name Type Default
resourceTemplate McpResourceTemplate
uriValue string
arguments JsonNode
context McpContext

View source

proc completeResourceTemplate(resourceTemplate: McpResourceTemplate;
argument, prefix: string; context: McpContext): Future[
seq[string]] {.stackTrace: false, raises: [Exception, ValueError, KeyError],
tags: [RootEffect], forbids: [].}

Returns: Future[seq[string]].

Name Type Default
resourceTemplate McpResourceTemplate
argument string
prefix string
context McpContext

View source

proc resourceContentJson(content: McpResourceContent; defaultMimeType = ""): JsonNode {.
raises: [McpError], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
content McpResourceContent
defaultMimeType inferred ""

View source

proc toJson(content: McpResourceContent): JsonNode {.raises: [McpError],
tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
content McpResourceContent

View source

proc safeResourcePath(root, path: string): string {.raises: [McpError, OSError],
tags: [ReadDirEffect], forbids: [].}

Returns: string.

Name Type Default
root string
path string

View source

proc newFileResource(root, relativePath: string; name = ""; title = "";
description = ""; mimeType = ""; binary = false;
uriValue = ""; icons: JsonNode = nil;
annotations: JsonNode = nil): McpResource {.
raises: [McpError, OSError, KeyError], tags: [ReadDirEffect, ReadIOEffect],
forbids: [].}

Returns: McpResource.

Name Type Default
root string
relativePath string
name inferred ""
title inferred ""
description inferred ""
mimeType inferred ""
binary inferred false
uriValue inferred ""
icons JsonNode nil
annotations JsonNode nil

View source

proc newFileResourceTemplate(root, uriTemplate, name: string;
pathArgument = "path"; title = "";
description = ""; mimeType = ""; binary = false;
icons: JsonNode = nil; annotations: JsonNode = nil): McpResourceTemplate {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpResourceTemplate.

Name Type Default
root string
uriTemplate string
name string
pathArgument inferred "path"
title inferred ""
description inferred ""
mimeType inferred ""
binary inferred false
icons JsonNode nil
annotations JsonNode nil

View source

Concise static or handler-backed resource declaration.

template mcpResource(uri, name: string; value: untyped; title = "";
description = ""; icons: JsonNode = nil; mimeType = "";
size: int64 = -1; annotations: JsonNode = nil): McpResource

Returns: McpResource.

Name Type Default
uri string
name string
value untyped
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
size int64 -1
annotations JsonNode nil

View source

Concise URI-template resource declaration.

template mcpResourceTemplate(uriTemplate, name: string; handler: untyped;
title = ""; description = "";
icons: JsonNode = nil; mimeType = "";
annotations: JsonNode = nil): McpResourceTemplate

Returns: McpResourceTemplate.

Name Type Default
uriTemplate string
name string
handler untyped
title inferred ""
description inferred ""
icons JsonNode nil
mimeType inferred ""
annotations JsonNode nil

View source