This page is generated from the module’s exported API and ## documentation comments.
Request-scoped context and explicit application state handles.
mcpTransportUnknown, mcpTransportStdio, mcpTransportHttp,
View source
McpTransportInfo = object
View source
McpPrincipal = ref object
View source
McpCancellation = ref object
View source
McpLogger = proc (level: McpLogLevel; message: string) {.closure.}
View source
McpProgressReporter = proc (progress, total: float; message: string): Future[
View source
McpNotificationSender = proc (message: JsonNode): Future[void] {.closure.}
View source
McpRequestStateSealer = proc (payload: JsonNode; context: McpContext): string {.
View source
McpRequestStateVerifier = proc (state: string; context: McpContext): JsonNode {.
View source
View source
McpStateStore = ref object
View source
This object is created once per request and must not be shared.
metadata*: McpRequestMeta
cancellation*: McpCancellation
progress*: McpProgressReporter
transport*: McpTransportInfo
extensionState*: JsonNode
completionArguments*: JsonNode
inputResponses*: JsonNode
requestStatePayload*: JsonNode
requestStateSealer*: McpRequestStateSealer
requestStateVerifier*: McpRequestStateVerifier
stateStore*: McpStateStore
notificationSender*: McpNotificationSender
hasReportedProgress*: bool
inputRequired*: McpWireResult
View source
proc newMcpPrincipal(subject: string; claims: JsonNode = nil; issuer = "";
scopes: seq[string] = @[]): McpPrincipal {.
raises: [McpError], tags: [], forbids: [].}
Returns: McpPrincipal.
| Name |
Type |
Default |
subject |
string |
|
claims |
JsonNode |
nil |
issuer |
inferred |
"" |
scopes |
seq[string] |
@[] |
View source
proc newMcpCancellation(): McpCancellation {.raises: [], tags: [], forbids: [].}
Returns: McpCancellation.
View source
proc cancel(cancellation: McpCancellation; reason = "") {.raises: [Exception],
tags: [RootEffect], forbids: [].}
| Name |
Type |
Default |
cancellation |
McpCancellation |
|
reason |
inferred |
"" |
View source
proc waitCancelled(cancellation: McpCancellation): Future[void] {.
raises: [McpError], tags: [], forbids: [].}
Returns: Future[void].
| Name |
Type |
Default |
cancellation |
McpCancellation |
|
View source
proc isCancelled(cancellation: McpCancellation): bool {.raises: [], tags: [],
Returns: bool.
| Name |
Type |
Default |
cancellation |
McpCancellation |
|
View source
proc checkCancelled(cancellation: McpCancellation) {.raises: [McpError],
| Name |
Type |
Default |
cancellation |
McpCancellation |
|
View source
proc newMcpStateStore(ttlSeconds = 900; maxEntries = 10000): McpStateStore {.
raises: [McpError], tags: [], forbids: [].}
Returns: McpStateStore.
| Name |
Type |
Default |
ttlSeconds |
inferred |
900 |
maxEntries |
inferred |
10000 |
View source
proc newMcpCorrelationId(): string {.raises: [OSError], tags: [], forbids: [].}
Returns: string.
View source
proc mintStateHandle(store: McpStateStore; subject: string; value: JsonNode): string {.
raises: [McpError, OSError], tags: [TimeEffect], forbids: [].}
Returns: string.
| Name |
Type |
Default |
store |
McpStateStore |
|
subject |
string |
|
value |
JsonNode |
|
View source
proc verifyStateHandle(store: McpStateStore; handle, subject: string): Option[
McpStateClaim] {.raises: [KeyError], tags: [TimeEffect], forbids: [].}
Returns: Option[McpStateClaim].
| Name |
Type |
Default |
store |
McpStateStore |
|
handle |
string |
|
subject |
string |
|
View source
proc revokeStateHandle(store: McpStateStore; handle: string): bool {.raises: [],
Returns: bool.
| Name |
Type |
Default |
store |
McpStateStore |
|
handle |
string |
|
View source
proc newMcpContext(request: McpRpcRequest; transport = McpTransportInfo();
cancellation: McpCancellation = nil;
principal: McpPrincipal = nil;
extensionState: JsonNode = nil;
stateStore: McpStateStore = nil; logger: McpLogger = nil;
progress: McpProgressReporter = nil;
requestStateSealer: McpRequestStateSealer = nil;
requestStateVerifier: McpRequestStateVerifier = nil;
notificationSender: McpNotificationSender = nil;
deadlineMs = 0; requestBytes = 0; correlationId = ""): McpContext {.
raises: [OSError, KeyError], tags: [TimeEffect], forbids: [].}
Returns: McpContext.
| Name |
Type |
Default |
request |
McpRpcRequest |
|
transport |
inferred |
McpTransportInfo() |
cancellation |
McpCancellation |
nil |
principal |
McpPrincipal |
nil |
extensionState |
JsonNode |
nil |
stateStore |
McpStateStore |
nil |
logger |
McpLogger |
nil |
progress |
McpProgressReporter |
nil |
requestStateSealer |
McpRequestStateSealer |
nil |
requestStateVerifier |
McpRequestStateVerifier |
nil |
notificationSender |
McpNotificationSender |
nil |
deadlineMs |
inferred |
0 |
requestBytes |
inferred |
0 |
correlationId |
inferred |
"" |
View source
proc cancel(context: McpContext; reason = "") {.raises: [Exception],
tags: [RootEffect], forbids: [].}
| Name |
Type |
Default |
context |
McpContext |
|
reason |
inferred |
"" |
View source
proc isCancelled(context: McpContext): bool {.raises: [], tags: [], forbids: [].}
Returns: bool.
| Name |
Type |
Default |
context |
McpContext |
|
View source
proc checkCancelled(context: McpContext) {.raises: [McpError, Exception],
tags: [TimeEffect, RootEffect], forbids: [].}
| Name |
Type |
Default |
context |
McpContext |
|
View source
proc remainingTimeMs(context: McpContext): int {.raises: [], tags: [TimeEffect],
Returns: int.
| Name |
Type |
Default |
context |
McpContext |
|
View source
proc sealRequestState(context: McpContext; payload: JsonNode): string {.
raises: [McpError, Exception], tags: [RootEffect], forbids: [].}
Returns: string.
| Name |
Type |
Default |
context |
McpContext |
|
payload |
JsonNode |
|
View source
proc verifyRequestState(context: McpContext): JsonNode {.
raises: [Exception, McpError], tags: [RootEffect], forbids: [].}
Returns: JsonNode.
| Name |
Type |
Default |
context |
McpContext |
|
View source
proc requireInput(context: McpContext; value: McpWireResult) {.
raises: [McpError], tags: [], forbids: [].}
| Name |
Type |
Default |
context |
McpContext |
|
value |
McpWireResult |
|
View source
proc inputResponse(context: McpContext; key: string): JsonNode {.
raises: [KeyError], tags: [], forbids: [].}
Returns: JsonNode.
| Name |
Type |
Default |
context |
McpContext |
|
key |
string |
|
View source
proc log(context: McpContext; level: McpLogLevel; message: string) {.
raises: [Exception], tags: [RootEffect], forbids: [].}
| Name |
Type |
Default |
context |
McpContext |
|
level |
McpLogLevel |
|
message |
string |
|
View source
proc reportProgress(context: McpContext; progress: float; total = -1.0;
message = ""): Future[void] {.stackTrace: false,
raises: [Exception, McpError, ValueError], tags: [RootEffect, TimeEffect],
Returns: Future[void].
| Name |
Type |
Default |
context |
McpContext |
|
progress |
float |
|
total |
inferred |
-1.0 |
message |
inferred |
"" |
View source
proc mintStateHandle(context: McpContext; value: JsonNode): string {.
raises: [McpError, OSError], tags: [TimeEffect], forbids: [].}
Returns: string.
| Name |
Type |
Default |
context |
McpContext |
|
value |
JsonNode |
|
View source
proc verifyStateHandle(context: McpContext; handle: string): Option[
McpStateClaim] {.raises: [KeyError], tags: [TimeEffect], forbids: [].}
Returns: Option[McpStateClaim].
| Name |
Type |
Default |
context |
McpContext |
|
handle |
string |
|
View source