nimwire/middleware
This page is generated from the module’s exported API and ## documentation comments.
Composable request middleware for tool handlers.
McpToolNext
Section titled “McpToolNext”McpToolNext = proc (): Future[McpToolResult] {.closure.}McpToolMiddleware
Section titled “McpToolMiddleware”McpToolMiddleware = proc (name: string; arguments: JsonNode; context: McpContext; next: McpToolNext): Future[ McpToolResult] {.closure.}McpToolAuthorization
Section titled “McpToolAuthorization”McpToolAuthorization = proc (name: string; principal: McpPrincipal): bool {. closure.}McpToolPolicy
Section titled “McpToolPolicy”McpToolPolicy = proc (name: string; arguments: JsonNode; context: McpContext): bool {. closure.}McpToolValidation
Section titled “McpToolValidation”McpToolValidation = proc (name: string; arguments: JsonNode; context: McpContext) {. closure.}McpToolTimingHook
Section titled “McpToolTimingHook”McpToolTimingHook = proc (name: string; durationMs: float) {.closure.}McpToolRetryPredicate
Section titled “McpToolRetryPredicate”McpToolRetryPredicate = proc (error: ref CatchableError): bool {.closure.}McpToolApprovalDecision
Section titled “McpToolApprovalDecision”McpToolApprovalDecision = enum mcpApprovalAllow, mcpApprovalDenyMcpToolApprovalPolicy
Section titled “McpToolApprovalPolicy”McpToolApprovalPolicy = proc (name: string; arguments: JsonNode; context: McpContext): Future[ McpToolApprovalDecision] {.closure.}McpSyncToolApprovalPolicy
Section titled “McpSyncToolApprovalPolicy”McpSyncToolApprovalPolicy = proc (name: string; arguments: JsonNode; context: McpContext): McpToolApprovalDecision {. closure.}Procedures
Section titled “Procedures”mcpAuthMiddleware
Section titled “mcpAuthMiddleware”proc mcpAuthMiddleware(authorize: McpToolAuthorization): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
authorize |
McpToolAuthorization |
mcpValidationMiddleware
Section titled “mcpValidationMiddleware”proc mcpValidationMiddleware(validate: McpToolValidation): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
validate |
McpToolValidation |
mcpTimingMiddleware
Section titled “mcpTimingMiddleware”proc mcpTimingMiddleware(timing: McpToolTimingHook): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
timing |
McpToolTimingHook |
defaultMcpRetry
Section titled “defaultMcpRetry”proc defaultMcpRetry(error: ref CatchableError): bool {.raises: [], tags: [], forbids: [].}Returns: bool.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
error |
ref CatchableError |
mcpRetryMiddleware
Section titled “mcpRetryMiddleware”proc mcpRetryMiddleware(maxAttempts = 2; delayMs = 0; retryOn: McpToolRetryPredicate = nil): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
maxAttempts |
inferred |
2 |
delayMs |
inferred |
0 |
retryOn |
McpToolRetryPredicate |
nil |
mcpPolicyMiddleware
Section titled “mcpPolicyMiddleware”proc mcpPolicyMiddleware(policy: McpToolPolicy): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
policy |
McpToolPolicy |
mcpApprovalMiddleware (overload 1)
Section titled “mcpApprovalMiddleware (overload 1)”proc mcpApprovalMiddleware(policy: McpToolApprovalPolicy): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
policy |
McpToolApprovalPolicy |
mcpApprovalMiddleware (overload 2)
Section titled “mcpApprovalMiddleware (overload 2)”proc mcpApprovalMiddleware(policy: McpSyncToolApprovalPolicy): McpToolMiddleware {. raises: [McpError], tags: [], forbids: [].}Returns: McpToolMiddleware.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
policy |
McpSyncToolApprovalPolicy |
runMcpToolMiddleware
Section titled “runMcpToolMiddleware”proc runMcpToolMiddleware(middlewares: seq[McpToolMiddleware]; index: int; name: string; arguments: JsonNode; context: McpContext; terminal: McpToolNext): Future[ McpToolResult] {.stackTrace: false, raises: [Exception, ValueError], tags: [RootEffect], forbids: [].}Returns: Future[McpToolResult].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
middlewares |
seq[McpToolMiddleware] |
|
index |
int |
|
name |
string |
|
arguments |
JsonNode |
|
context |
McpContext |
|
terminal |
McpToolNext |