nimwire/tasks
This page is generated from the module’s exported API and ## documentation comments.
Opt-in MCP tasks extension with scoped, expiring task storage.
Constants
Section titled “Constants”mcpTasksExtensionName
Section titled “mcpTasksExtensionName”mcpTasksExtensionName = "io.modelcontextprotocol/tasks"McpTaskStatus
Section titled “McpTaskStatus”McpTaskStatus = enum mcpTaskWorking, mcpTaskInputRequired, mcpTaskCompleted, mcpTaskFailed, mcpTaskCancelledMcpTaskHandler
Section titled “McpTaskHandler”McpTaskHandler = proc (arguments: JsonNode; context: McpContext): Future[ McpWireResult] {.closure.}McpTaskCreateProc
Section titled “McpTaskCreateProc”McpTaskCreateProc = proc (task: McpTask) {.closure.}McpTaskGetProc
Section titled “McpTaskGetProc”McpTaskGetProc = proc (taskId, subject: string): McpTask {.closure.}McpTaskUpdateProc
Section titled “McpTaskUpdateProc”McpTaskUpdateProc = proc (task: McpTask) {.closure.}McpTask
Section titled “McpTask”McpTask = ref object taskId*: string status*: McpTaskStatus statusMessage*: string createdAt*: string lastUpdatedAt*: string ttlMs*: int pollIntervalMs*: int progress*: float hasProgress*: bool total*: float hasTotal*: bool inputRequests*: JsonNode result*: McpWireResult hasResult*: bool error*: McpRpcError hasError*: bool owner*: string expiresAt*: int64 cancellation*: McpCancellationMcpTaskStore
Section titled “McpTaskStore”Implement create/get/update for durable storage, or use the in-memory backend created by newMcpTaskStore.
McpTaskStore = ref object create*: McpTaskCreateProc get*: McpTaskGetProc update*: McpTaskUpdateProcProcedures
Section titled “Procedures”taskStatusName
Section titled “taskStatusName”proc taskStatusName(status: McpTaskStatus): string {.raises: [], tags: [], forbids: [].}Returns: string.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
status |
McpTaskStatus |
newMcpTaskStore
Section titled “newMcpTaskStore”proc newMcpTaskStore(ttlMs = 3600000; maxTasks = 10000; pollIntervalMs = 5000): McpTaskStore {. raises: [McpError], tags: [], forbids: [].}Returns: McpTaskStore.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
ttlMs |
inferred |
3600000 |
maxTasks |
inferred |
10000 |
pollIntervalMs |
inferred |
5000 |
newMcpTaskStoreBackend
Section titled “newMcpTaskStoreBackend”proc newMcpTaskStoreBackend(create: McpTaskCreateProc; get: McpTaskGetProc; update: McpTaskUpdateProc; ttlMs = 3600000; pollIntervalMs = 5000): McpTaskStore {. raises: [McpError], tags: [], forbids: [].}Returns: McpTaskStore.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
create |
McpTaskCreateProc |
|
get |
McpTaskGetProc |
|
update |
McpTaskUpdateProc |
|
ttlMs |
inferred |
3600000 |
pollIntervalMs |
inferred |
5000 |
newMcpTaskResult
Section titled “newMcpTaskResult”proc newMcpTaskResult(task: McpTask): McpWireResult {. raises: [McpError, KeyError], tags: [], forbids: [].}Returns: McpWireResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
task |
McpTask |
newMcpTaskGetResult
Section titled “newMcpTaskGetResult”proc newMcpTaskGetResult(task: McpTask): McpWireResult {. raises: [McpError, KeyError], tags: [], forbids: [].}Returns: McpWireResult.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
task |
McpTask |
startMcpTask
Section titled “startMcpTask”proc startMcpTask(store: McpTaskStore; handler: McpTaskHandler; arguments: JsonNode; context: McpContext; outputSchema: JsonNode = nil): McpTask {. raises: [McpError, OSError, Exception], tags: [TimeEffect, RootEffect], forbids: [].}Returns: McpTask.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
store |
McpTaskStore |
|
handler |
McpTaskHandler |
|
arguments |
JsonNode |
|
context |
McpContext |
|
outputSchema |
JsonNode |
nil |
getMcpTask
Section titled “getMcpTask”proc getMcpTask(store: McpTaskStore; taskId: string; context: McpContext): McpTask {. raises: [Exception, McpError], tags: [RootEffect, TimeEffect], forbids: [].}Returns: McpTask.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
store |
McpTaskStore |
|
taskId |
string |
|
context |
McpContext |
updateMcpTask
Section titled “updateMcpTask”proc updateMcpTask(store: McpTaskStore; taskId: string; responses: JsonNode; context: McpContext) {. raises: [Exception, McpError, KeyError], tags: [RootEffect, TimeEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
store |
McpTaskStore |
|
taskId |
string |
|
responses |
JsonNode |
|
context |
McpContext |
cancelMcpTask
Section titled “cancelMcpTask”proc cancelMcpTask(store: McpTaskStore; taskId: string; context: McpContext) {. raises: [Exception, McpError], tags: [RootEffect, TimeEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
store |
McpTaskStore |
|
taskId |
string |
|
context |
McpContext |
newMcpTasksExtension
Section titled “newMcpTasksExtension”proc newMcpTasksExtension(store: McpTaskStore): McpExtension {. raises: [McpError, Exception], tags: [RootEffect], forbids: [].}Returns: McpExtension.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
store |
McpTaskStore |