diff --git a/src/main.zig b/src/main.zig index f06cf41e..dd6a759a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -136,13 +136,12 @@ fn run(allocator: Allocator, main_arena: Allocator) !void { log.opts.format = .logfmt; - var stdout_buf: [4096]u8 = undefined; - var stdout = std.fs.File.stdout().writer(&stdout_buf); + var stdout = std.fs.File.stdout().writer(&.{}); - var mcp_server = try lp.mcp.Server.init(allocator, app, &stdout.interface); + var mcp_server: *lp.mcp.Server = try .init(allocator, app, &stdout.interface); defer mcp_server.deinit(); - var stdin_buf: [4096]u8 = undefined; + var stdin_buf: [64 * 1024]u8 = undefined; var stdin = std.fs.File.stdin().reader(&stdin_buf); try lp.mcp.router.processRequests(mcp_server, &stdin.interface); diff --git a/src/mcp/Server.zig b/src/mcp/Server.zig index e1e94a0e..b76075fb 100644 --- a/src/mcp/Server.zig +++ b/src/mcp/Server.zig @@ -58,6 +58,7 @@ pub fn sendResponse(self: *Self, response: anytype) !void { try std.json.Stringify.value(response, .{ .emit_null_optional_fields = false }, &aw.writer); try aw.writer.writeByte('\n'); try self.writer.writeAll(aw.writer.buffered()); + try self.writer.flush(); } pub fn sendResult(self: *Self, id: std.json.Value, result: anytype) !void {