--- title: Chạy một MCP localhost dùng chung cho mọi agent AI date: 2026-08-23 11:55:03.104219 UTC --- Mình thích Nushell nên cũng mong muốn trợ lý AI viết script shell bằng Nu, và gắn Nushell vào agent Crush dưới dạng MCP server để "nhắc khéo". Trong một lần cập nhật Crush gần đây thì tự dưng nó không khởi chạy Nushell MCP lên được nữa, nhưng chỉ bị trục trặc với phương vận `stdio`, do bất đồng giữa Crush và Nushell khi bắt tay, còn `http` thì vẫn bình thường. Thế là mình chuyển sang dùng Nushell MCP ở giao thức `http` và khám phá ra nó tối ưu hơn ở một chuyện: Có thể cài đặt để chỉ cần chạy một tiến trình Nushell MCP server và cho tất cả agent kết nối vào MCP chung này, thay vì mỗi agent khởi chạy một process MCP server như khi dùng `stdio`. Khi dùng MCP ở phương vận `http`, agent sẽ không tự khởi chạy MCP server như đối với `stdio`, nên người ta ngại dùng. Nhưng đây là lúc Linux toả sáng vì trên Linux ta dễ dàng biến MCP service thành dịch vụ tự khởi động, ta không cần bận tay bận chân tắt mở MCP server mỗi khi cần dùng đến. Ý tưởng là dùng `systemd`. Phần sau đây sẽ hướng dẫn cách cài đặt MCP server [Lightpanda] thay vì Nushell vì ngay hôm mình viết bài này thì Nushell lại có một cập nhật khiến MCP `http` không bắt tay được với Crush nhưng `stdio` thì được. [Lightpanda] là một trình duyệt dành cho agent AI, nhẹ và chạy nhanh, dùng cho hoàn cảnh không cần render đồ hoạ. Lightpanda được viết mới từ đầu, không phải fork từ Chromium hay Firefox. Đầu tiền, hãy chọn port cho MCP server Lightpanda. Mình sẽ chọn port 3232, vì nó dễ nhớ và vì máy mình không có phần mềm nào đang dùng port này cả. Trước khi chọn port, bạn nên kiểm tra máy mình đang có phần mềm nào giành trước port này không: ```console ss -ln4 | rg 3232 ``` Ta sẽ tạo một service ở cấp user cho Lightpanda, bằng cách tạo một file *~/.config/systemd/user/lightpanda-mcp-server.service* với nội dung như sau: ```ini [Unit] Description=Nushell MCP HTTP Service After=network.target [Service] Type=simple ExecStart=/usr/bin/lightpanda mcp --port 3232 [Install] WantedBy=default.target ``` Lưu ý về đường dẫn file chạy của Lightpanda. Do mình cài nó từ file *deb* nên nó được cài vào */usr/bin/lightpanda*. Nếu bạn cài từ script *install.sh* theo trang chủ thì đường dẫn sẽ khác. Chạy thử service này coi có thành công không: ```console $ systemctl --user start lightpanda-mcp-server $ systemctl --user status lightpanda-mcp-server ● lightpanda-mcp-server.service - Nushell MCP HTTP Service Loaded: loaded (/home/quan/.config/systemd/user/lightpanda-mcp-server.service; enabled; preset: enabled) Active: active (running) since Sun 2026-08-23 16:50:42 +07; 3min 56s ago Invocation: e1a36cee78dd4766a07f9a21b0c713cc Main PID: 206288 (lightpanda) Tasks: 16 (limit: 12946) Memory: 4.7M (peak: 6.6M) CPU: 80ms CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/lightpanda-mcp-server.service └─206288 /usr/bin/lightpanda mcp --port 3232 Aug 23 16:50:42 MiniDesk systemd[156186]: Started lightpanda-mcp-server.service - Nushell MCP HTTP Service. Aug 23 16:50:42 MiniDesk lightpanda[206288]: $time=1787478642208 $scope=mcp $level=note $msg="mcp http server running" address=127.0.0.1:3232 ``` Lưu ý, với service ở cấp *user* (được lưu trong `$HOME` thay vì thư mục hệ thống */etc/*, */usr/*), bạn sẽ chạy với `systemctl --user` và không có `sudo`. Tiếp đến, thêm MCP này vào Crush, bằng cách sửa file *~/.config/crush/crushrc* và thêm vào dòng: ```sh mcp add lightpanda --type http --url 'http://localhost:3232' ``` Mở Crush lên và kiểm tra trong mục MCP xem có xuất hiện "Lightpanda" với chấm xanh lá không. ![Lightpanda in Crush](https://quan-images.b-cdn.net/blogs/2026/08/Lightpanda.png) Sau khi đã ưng ý rồi thì "enable" dịch vụ này để `systemd` tự động chạy Lightpanda mỗi khi ta login: ```console $ systemctl --user enable lightpanda-mcp-server ``` Điều hay ho với `systemd` là bất kể ta login bao nhiêu session, là session desktop hay SSH, thì `systemd` cũng chỉ chạy một tiến trình Lightpanda, và sẽ tắt đi khi ta đã logout hết các session. [lightpanda]: https://lightpanda.io/