nimwire/transports/http
This page is generated from the module’s exported API and ## documentation comments.
Stateless Streamable HTTP transport.
McpHttpStreamWriter
Section titled “McpHttpStreamWriter”McpHttpStreamWriter = proc (message: JsonNode): Future[void] {.closure.}McpHttpStreamCloser
Section titled “McpHttpStreamCloser”McpHttpStreamCloser = proc (): Future[void] {.closure.}McpHttpHeader
Section titled “McpHttpHeader”McpHttpHeader = object name*: string value*: stringMcpHttpRequest
Section titled “McpHttpRequest”Framework-neutral HTTP request passed to handleHttpRequest.
McpHttpRequest = object httpMethod*: string path*: string headers*: seq[McpHttpHeader] body*: string transport*: McpTransportInfo principal*: McpPrincipal extensionState*: JsonNode stateStore*: McpStateStore logger*: McpLogger progress*: McpProgressReporter cancellation*: McpCancellation notificationSender*: McpNotificationSender streamResponses*: bool timeoutMs*: int streamWriter*: McpHttpStreamWriter streamCloser*: McpHttpStreamCloserMcpHttpResponse
Section titled “McpHttpResponse”McpHttpResponse = object status*: int headers*: seq[McpHttpHeader] body*: string streamed*: bool subscriptionId*: McpIdMcpHttpConfig
Section titled “McpHttpConfig”McpHttpConfig = object endpoint*: string host*: string port*: Port maxBodyBytes*: int maxNestingDepth*: int requestTimeoutMs*: int maxConcurrentRequests*: int allowedHosts*: seq[string] allowedOrigins*: seq[string] preferSse*: bool authorization*: McpAuthorizationConfigMcpHttpServer
Section titled “McpHttpServer”McpHttpServer = ref objectProcedures
Section titled “Procedures”newMcpHttpConfig
Section titled “newMcpHttpConfig”proc newMcpHttpConfig(endpoint = "/mcp"; host = "127.0.0.1"; port = Port(0); maxBodyBytes = mcpDefaultMaxMessageBytes; maxNestingDepth = mcpDefaultMaxNestingDepth; requestTimeoutMs = 0; maxConcurrentRequests = 0; allowedHosts: seq[string] = @[]; allowedOrigins: seq[string] = @[]; preferSse = false; authorization = McpAuthorizationConfig()): McpHttpConfig {. raises: [McpError], tags: [], forbids: [].}Returns: McpHttpConfig.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
endpoint |
inferred |
"/mcp" |
host |
inferred |
"127.0.0.1" |
port |
inferred |
Port(0) |
maxBodyBytes |
inferred |
mcpDefaultMaxMessageBytes |
maxNestingDepth |
inferred |
mcpDefaultMaxNestingDepth |
requestTimeoutMs |
inferred |
0 |
maxConcurrentRequests |
inferred |
0 |
allowedHosts |
seq[string] |
@[] |
allowedOrigins |
seq[string] |
@[] |
preferSse |
inferred |
false |
authorization |
inferred |
McpAuthorizationConfig() |
newMcpHttpRequest
Section titled “newMcpHttpRequest”proc newMcpHttpRequest(httpMethod, path: string; body = ""; headers: seq[McpHttpHeader] = @[]): McpHttpRequest {. raises: [], tags: [], forbids: [].}Returns: McpHttpRequest.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
httpMethod |
string |
|
path |
string |
|
body |
inferred |
"" |
headers |
seq[McpHttpHeader] |
@[] |
header
Section titled “header”proc header(name, value: string): McpHttpHeader {.raises: [], tags: [], forbids: [].}Returns: McpHttpHeader.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
name |
string |
|
value |
string |
encodeMcpHeaderValue
Section titled “encodeMcpHeaderValue”Encode a UTF-8 value for Mcp-Name or Mcp-Param-*.
proc encodeMcpHeaderValue(value: string): string {.raises: [McpError], tags: [], forbids: [].}Returns: string.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
value |
string |
mcpParamHeaderName
Section titled “mcpParamHeaderName”proc mcpParamHeaderName(name: string): string {.raises: [], tags: [], forbids: [].}Returns: string.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
name |
string |
handleHttpRequest
Section titled “handleHttpRequest”proc handleHttpRequest(server: McpServer; request: McpHttpRequest; config = newMcpHttpConfig()): Future[McpHttpResponse] {. stackTrace: false, raises: [Exception, ValueError, McpError, KeyError, OSError], tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[McpHttpResponse].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
server |
McpServer |
|
request |
McpHttpRequest |
|
config |
inferred |
newMcpHttpConfig() |
toMcpHttpRequest
Section titled “toMcpHttpRequest”proc toMcpHttpRequest(request: asynchttpserver.Request): McpHttpRequest {. raises: [Exception], tags: [RootEffect], forbids: [].}Returns: McpHttpRequest.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
request |
asynchttpserver.Request |
newMcpHttpServer
Section titled “newMcpHttpServer”proc newMcpHttpServer(server: McpServer; config = newMcpHttpConfig()): McpHttpServer {. raises: [McpError], tags: [], forbids: [].}Returns: McpHttpServer.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
server |
McpServer |
|
config |
inferred |
newMcpHttpConfig() |
getPort
Section titled “getPort”proc getPort(server: McpHttpServer): Port {. raises: [McpError, OSError, Exception], tags: [], forbids: [].}Returns: Port.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
server |
McpHttpServer |
serveHttp
Section titled “serveHttp”proc serveHttp(server: McpHttpServer): Future[void] {.stackTrace: false, raises: [ Exception, McpError, OSError, ValueError, CatchableError, KeyError, LibraryError, SslError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect], forbids: [].}Returns: Future[void].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
server |
McpHttpServer |
shutdown
Section titled “shutdown”proc shutdown(server: McpHttpServer) {.raises: [Exception, KeyError, McpError, LibraryError, SslError], tags: [RootEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
server |
McpHttpServer |