Skip to content

nimwire/prompts

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

Prompt definitions, typed arguments, and prompt messages.

McpPromptRole = enum
mcpPromptUser, mcpPromptAssistant

View source

McpPromptArgument = object
name*: string
description*: string
required*: bool

View source

McpPromptArguments = Table[string, string]

View source

McpPromptMessage = object
role*: McpPromptRole ## Untrusted caller-facing metadata; never use it as an authorization policy.
content*: JsonNode

View source

McpPromptHandler = proc (arguments: McpPromptArguments; context: McpContext): Future[
seq[McpPromptMessage]] {.closure.}

View source

McpPromptSingleHandler = proc (arguments: McpPromptArguments;
context: McpContext): Future[McpPromptMessage] {.
closure.}

View source

McpSyncPromptHandler = proc (arguments: McpPromptArguments; context: McpContext): seq[
McpPromptMessage] {.closure.}

View source

McpSyncPromptSingleHandler = proc (arguments: McpPromptArguments;
context: McpContext): McpPromptMessage {.
closure.}

View source

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

View source

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

View source

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

View source

McpCompletion = object
argument*: string
handler*: McpCompletionHandler

View source

McpPrompt = object
name*: string
title*: string
description*: string
icons*: JsonNode
arguments*: seq[McpPromptArgument]

View source

proc newMcpPromptArgument(name: string; description = ""; required = false): McpPromptArgument {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpPromptArgument.

Name Type Default
name string
description inferred ""
required inferred false

View source

proc validatePromptContent(content: JsonNode) {.raises: [McpError, KeyError],
tags: [], forbids: [].}
Name Type Default
content JsonNode

View source

proc newMcpPromptMessage(role: McpPromptRole; content: JsonNode): McpPromptMessage {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPromptMessage.

Name Type Default
role McpPromptRole
content JsonNode

View source

proc userPrompt(content: JsonNode): McpPromptMessage {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPromptMessage.

Name Type Default
content JsonNode

View source

proc assistantPrompt(content: JsonNode): McpPromptMessage {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPromptMessage.

Name Type Default
content JsonNode

View source

proc userText(text: string; annotations: JsonNode = nil): McpPromptMessage {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPromptMessage.

Name Type Default
text string
annotations JsonNode nil

View source

proc assistantText(text: string; annotations: JsonNode = nil): McpPromptMessage {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPromptMessage.

Name Type Default
text string
annotations JsonNode nil

View source

proc toJson(message: McpPromptMessage): JsonNode {.raises: [], tags: [],
forbids: [].}

Returns: JsonNode.

Name Type Default
message McpPromptMessage

View source

proc newMcpPrompt(name: string; handler: McpPromptHandler; title = "";
description = ""; arguments: seq[McpPromptArgument] = @[];
icons: JsonNode = nil): McpPrompt {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPrompt.

Name Type Default
name string
handler McpPromptHandler
title inferred ""
description inferred ""
arguments seq[McpPromptArgument] @[]
icons JsonNode nil

View source

proc newMcpPrompt(name: string; handler: McpPromptSingleHandler; title = "";
description = ""; arguments: seq[McpPromptArgument] = @[];
icons: JsonNode = nil): McpPrompt {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPrompt.

Name Type Default
name string
handler McpPromptSingleHandler
title inferred ""
description inferred ""
arguments seq[McpPromptArgument] @[]
icons JsonNode nil

View source

proc newMcpPrompt(name: string; handler: McpSyncPromptHandler; title = "";
description = ""; arguments: seq[McpPromptArgument] = @[];
icons: JsonNode = nil): McpPrompt {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPrompt.

Name Type Default
name string
handler McpSyncPromptHandler
title inferred ""
description inferred ""
arguments seq[McpPromptArgument] @[]
icons JsonNode nil

View source

proc newMcpPrompt(name: string; handler: McpSyncPromptSingleHandler; title = "";
description = ""; arguments: seq[McpPromptArgument] = @[];
icons: JsonNode = nil): McpPrompt {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpPrompt.

Name Type Default
name string
handler McpSyncPromptSingleHandler
title inferred ""
description inferred ""
arguments seq[McpPromptArgument] @[]
icons JsonNode nil

View source

proc newMcpCompletion(argument: string; handler: McpCompletionHandler): McpCompletion {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpCompletion.

Name Type Default
argument string
handler McpCompletionHandler

View source

proc newMcpCompletion(argument: string; handler: McpSyncPromptCompletionHandler): McpCompletion {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpCompletion.

Name Type Default
argument string
handler McpSyncPromptCompletionHandler

View source

proc addCompletion(prompt: var McpPrompt; argument: string;
handler: McpPromptCompletionHandler) {.raises: [McpError],
tags: [], forbids: [].}
Name Type Default
prompt var McpPrompt
argument string
handler McpPromptCompletionHandler

View source

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

View source

proc addCompletion(prompt: var McpPrompt; argument: string;
handler: McpSyncPromptCompletionHandler) {.
raises: [McpError], tags: [], forbids: [].}
Name Type Default
prompt var McpPrompt
argument string
handler McpSyncPromptCompletionHandler

View source

proc completePromptArgument(prompt: McpPrompt; argument, prefix: string;
context: McpContext): Future[seq[string]] {.
stackTrace: false, raises: [Exception, ValueError, McpError, KeyError],
tags: [RootEffect], forbids: [].}

Returns: Future[seq[string]].

Name Type Default
prompt McpPrompt
argument string
prefix string
context McpContext

View source

proc toJson(prompt: McpPrompt): JsonNode {.raises: [KeyError], tags: [],
forbids: [].}

Returns: JsonNode.

Name Type Default
prompt McpPrompt

View source

proc decodePromptArguments(prompt: McpPrompt; values: JsonNode): McpPromptArguments {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpPromptArguments.

Name Type Default
prompt McpPrompt
values JsonNode

View source

proc getPromptArgument(arguments: McpPromptArguments; name: string;
required = true): string {.raises: [McpError, KeyError],
tags: [], forbids: [].}

Returns: string.

Name Type Default
arguments McpPromptArguments
name string
required inferred true

View source

proc runPrompt(prompt: McpPrompt; arguments: McpPromptArguments;
context: McpContext): Future[seq[McpPromptMessage]] {.
stackTrace: false, raises: [Exception, ValueError, McpError, KeyError],
tags: [RootEffect], forbids: [].}

Returns: Future[seq[McpPromptMessage]].

Name Type Default
prompt McpPrompt
arguments McpPromptArguments
context McpContext

View source

Reusable prompt/resource-template completion declaration.

template mcpCompletion(argument: string; handler: untyped): McpCompletion

Returns: McpCompletion.

Name Type Default
argument string
handler untyped

View source

Concise prompt declaration; message escaping remains explicit in handlers.

template mcpPrompt(name: string; handler: untyped; title = ""; description = "";
arguments: seq[McpPromptArgument] = @[];
icons: JsonNode = nil): McpPrompt

Returns: McpPrompt.

Name Type Default
name string
handler untyped
title inferred ""
description inferred ""
arguments seq[McpPromptArgument] @[]
icons JsonNode nil

View source