Type-Safe by Default
Smart constructors, discriminated unions, and Result types. No obj in the public API. Invalid states are unrepresentable.
Computation Expressions
mcpServer { } CE for declarative server definition. TypedTool.define<'T> auto-generates JSON Schema from F# records via TypeShape.
Batteries Included
Middleware pipeline, telemetry, validation, streaming, notifications, hot reload, and testing utilities — all composable.
Define an MCP server in 10 lines
type GreetArgs = { name: string; greeting: string option }
let server = mcpServer {
name "MyServer"
version "1.0.0"
tool (TypedTool.define<GreetArgs> "greet" "Greets"
(fun args -> task {
let g = args.greeting |> Option.defaultValue "Hello"
return Ok [ Content.text $"{g}, {args.name}!" ]
}) |> unwrapResult)
useStdio
}
Server.run serverJSON Schema auto-generated from GreetArgs. name=required, greeting=optional.