Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

MCPService

Swift
  • Python Unavailable
  • Ruby Unavailable
  • Lua Unavailable
  • TypeScript Unavailable
  • Rust Unavailable
  • Go Unavailable
  • Java Unavailable
  • .NET Unavailable
  • C++ Unavailable
  • Swift

API reference · Markdown

struct MCPService : struct MCPService
struct [source]
struct [source]
struct MCPService

Serves MCP over a stream of request lines.

Every request runs in a task of its own, which is the whole point: a wait that blocks for thirty seconds must not stop ping, a second wait, or the cancellation that would end it. Serving them one at a time makes the server's slowest tool its latency for everything.

Discussed in Swift MCP API

Members

init(handler:)

init(handler:) ( handler : MCPRequestHandler )
method [source]
method [source]
init(handler:)

serve(_:write:)

serve(_:write:) ( lines : AsyncStream<String> , write : @escaping (String) async -> Void ) → ()
methodasync [source]
methodasync [source]
serve(_:write:)

Reads requests from lines and writes each answer through write.

Returns once lines has ended *and* every request it carried has been answered. The end of input means no more requests, not abandon the ones in hand: a client that sent a batch and closed its end is still owed the replies, and cancelling them would drop answers that were already computed. Cancelling this call cancels active requests and queued output. The write closure must return cooperatively when its task is cancelled. AsyncStream concretely, rather than any non-throwing AsyncSequence: naming the failure type is what makes a sequence non-throwing, and that spelling needs macOS 15 where this package supports 13. Package-only transports share the generic request loop below.

Esc

Type to search.