Chuyển đến nội dung chính

dart-lang/ai: bộ gói MCP chính thức của Dart

dart-lang/ai là nơi nhóm Dart đặt phần việc AI và GenAI của mình. Không phải framework, cũng chẳng phải sản phẩm — đây là monorepo gồm ba gói gọn ghẽ, và một trong số đó có lẽ là thứ đáng cài nhất năm nay với lập trình viên Flutter. 279★, BSD-3-Clause, cập nhật lần cuối 2026-08-28.

Trong repo có gì?

Ba gói đã xuất bản, mỗi gói một phạm vi riêng:

GóiLàm gì
dart_mcpThư viện để dựng server client MCP bằng Dart
dart_mcp_serverServer MCP hoàn chỉnh, mở công cụ dự án Dart cho mô hình AI
skillsCLI quản lý skill đóng trong package và từ git repo

Model Context Protocol là phần đường ống cho phép trợ lý AI gọi công cụ thật thay vì đoán mò. dart_mcp là bản hiện thực Dart cho cả hai nửa của giao thức đó.

Vì sao đáng quan tâm trong năm 2026

Phần lớn thiết lập “AI trong editor” hiện vẫn chỉ làm việc với văn bản. Mô hình đọc file, đoán xem analyzer sẽ nói gì, và sai đủ thường xuyên để gây khó chịu. Một server MCP khép vòng lặp đó lại: agent thôi đoán kết quả của analyzer và bắt đầu chạy nó.

dart_mcp_server là phiên bản thực dụng của điều đó cho Dart và Flutter. Trỏ agent vào nó và agent có quyền truy cập thật vào công cụ của dự án chứ không phải một ấn tượng nghe hợp lý. Lỗi phân tích là lỗi phân tích thật. Kết quả test là kết quả test thật.

Việc nó đến từ dart-lang chứ không phải bên thứ ba quan trọng hơn ta tưởng. Công cụ gọi ra ngoài tới dartflutter sẽ vỡ mỗi khi SDK đổi định dạng output. Một server được duy trì ngay cạnh SDK không gặp vấn đề đó.

Bắt đầu như thế nào

Server là thứ đa số muốn trước, và bạn không phải cài gì cả — nó đi kèm trong Dart SDK từ bản 3.9 trở đi và chạy bằng dart mcp-server. Việc của bạn chỉ là khai báo nó với client. Với Gemini CLI hoặc Cursor, đó là một khối trong .gemini/settings.json hoặc .cursor/mcp.json:

{
  "mcpServers": {
    "dart": {
      "command": "dart",
      "args": ["mcp-server"]
    }
  }
}

Với GitHub Copilot trong VS Code có lối tắt — một thiết lập, và extension Dart tự đăng ký server cho bạn:

"dart.mcpServer": true

Bất kỳ client MCP nào nói stdio đều dùng được; server cần hỗ trợ Tools và Resources, và chạy tốt nhất khi có Roots. Sau khi kết nối, thường bạn chỉ cần bảo agent kết nối tới app đang chạy — nó sẽ tự tìm các instance Dart Tooling Daemon trên máy và các ứng dụng Flutter/Dart đăng ký với chúng.

Muốn tự viết server, hãy thêm thư viện:

dart pub add dart_mcp

Khi nào nên dùng?

  • bạn muốn agent lập trình chạy analyzer và bộ test thật, thay vì tưởng tượng ra chúng
  • bạn xây công cụ Dart hoặc Flutter và muốn client AI điều khiển nó qua một giao thức chuẩn
  • bạn duy trì công cụ nội bộ và muốn mở nó một lần qua MCP thay vì viết tích hợp cho từng trợ lý
  • bạn đóng gói skill dùng lại cho agent và muốn chúng được đánh phiên bản cùng package sở hữu

Điểm còn hạn chế

Ba gói ở ba mức trưởng thành rất khác nhau, và chính README của server mở đầu bằng việc tự nhận là thử nghiệm và sẽ còn thay đổi nhanh. Hãy hiểu đúng nghĩa đen: danh sách tool và các cờ vẫn dịch chuyển giữa các bản phát hành. skills còn mới hơn và ít ổn định nhất — hãy đọc README của nó thay vì giả định giao diện sẽ giữ nguyên.

Repo cũng có 81 issue đang mở, phản ánh tốc độ thay đổi của bề mặt MCP hơn là sự bỏ bê. Nếu bạn có ghim phiên bản ở đâu, hãy ghim ở đây.

Và một lưu ý phạm vi: đây là công cụ AI cho Dart, không phải công cụ AI cho giao diện Flutter. Muốn sinh giao diện từ mô hình, xem genui; muốn điều khiển app đang chạy, xem flutter-skill.

Các lựa chọn đáng so sánh

Câu hỏi thường gặp

dart_mcp và dart_mcp_server khác nhau thế nào?

dart_mcp là thư viện — bạn dùng nó để tự viết server và client MCP bằng Dart. dart_mcp_server là một server hoàn chỉnh dựng từ thư viện đó, mở công cụ phát triển Dart và Flutter cho mô hình AI. Muốn agent phân tích và chạy test dự án thì dùng dart_mcp_server; muốn mở nghiệp vụ của riêng bạn cho agent thì dùng dart_mcp.

Đây có phải dự án chính thức của nhóm Dart không?

Đúng. Nó nằm trong tổ chức dart-lang cùng SDK và các gói lõi, cả ba gói đều xuất bản lên pub.dev với cùng giấy phép BSD-3-Clause như phần còn lại của Dart.

Những công cụ AI nào dùng được dart_mcp_server?

Bất kỳ client MCP nào nói chuyện qua stdio. README hướng dẫn thiết lập cho Gemini CLI, Gemini Code Assist, Cursor và GitHub Copilot trong VS Code, nhưng giao thức mới là giao diện — server không quan tâm client nào kết nối, miễn là hỗ trợ Tools và Resources.

Gói skills dùng để làm gì?

Đó là CLI quản lý các skill đóng gói trong package hoặc kéo về từ git repo. Nó mới nhất trong ba gói và cũng ít ổn định nhất, nên hãy đọc README của chính nó trước khi phụ thuộc vào giao diện.

Tài nguyên & liên kết


Thuộc FlutterCook — hướng dẫn thực hành về các thư viện, UI kit và ứng dụng Flutter mã nguồn mở tốt nhất. Xem xu hướng GitHub hoặc hướng dẫn YouTube.


Bài viết gốc đăng tại FlutterCook. Bản trên đó là bản được cập nhật mới nhất.

Nhận xét

Bài đăng phổ biến từ blog này

5 concepts every Flutter dev should know

  Phụ lục: State management architecture Testing IDE Shortcuts Platform channel Maintaining a project Tôi đã làm việc với Flagship trong một thời gian dài, và đây là những điều mà tôi phát hiện ra là điều cần phải có đối với bất kỳ nhà phát triển Flagship nào, về tổng thể nó sẽ khiến bạn trở thành một nhà phát triển Flagship giỏi trong thời gian dài. 1. State management architecture Đây là một trong những chủ đề quan trọng nhất trong cộng đồng thiết bị rung, nó khá quan trọng nếu bạn muốn duy trì một dự án rung kích thước trung bình hoặc lớn. Nó sẽ giúp tạo một dự án suôn sẻ và thêm các tính năng mới một cách hoàn hảo.  2. Testing Đây là một chủ đề duy nhất mà tôi không hiểu tại sao nó lại quan trọng trước đó trong sự nghiệp của tôi, nhưng khi tôi tiến lên trong sự nghiệp của mình và có kinh nghiệm với nhiều dự án và vấn đề xảy ra trong môi trường sản xuất. Tôi đã nhận ra một cách khó khăn, tại sao điều này lại quan trọng như vậy. Nếu bạn vẫn muốn có thêm lý do để cân nhắc thử...

Thiết kế giao diện với DotNetBar (Phần 1)

Đây là phiên bản DotNetBar hỗ trợ C# và Visual Basic https://www.dropbox.com/s/wx80jpvgnlrmtux/DotNetBar.rar  , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương” Các bạn load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các bạn nhớ add item vào controls box. Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp. Link các video hướng dẫn chi tiết cách sử dụng và coding: http://www.devcomponents.com/dotnetbar/movies.aspx Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây: DotNetBar for Windows Forms Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.   DotNetBar for WPF Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.   DotNetBar for Silverlight Requires with Visual Studio 2010 or 2012 and Silverlight. Dưới đây là một số hình ảnh về các control trong DotnetBar.   Metro User Interface  controls with Metro Tiles, toolba...

Announcing Flutter 2

  Phụ lục: Flutter on the web Flutter 2 on desktops, foldables, and embedded devices The growing Flutter ecosystem Dart: The secret sauce behind Flutter Flutter 2: Available now Hôm nay, chúng tôi sẽ công bố Flutter 2: một bản nâng cấp lớn cho Flutter cho phép các nhà phát triển tạo các ứng dụng đẹp, nhanh chóng và di động cho bất kỳ nền tảng nào. Với Flutter 2, bạn có thể sử dụng cùng một cơ sở mã để gửi các ứng dụng gốc cho năm hệ điều hành: IOS, Android, Windows, macOS và Linux; cũng như trải nghiệm web nhắm mục tiêu các trình duyệt như Chrome, Firefox, Safari hoặc Edge. Flutter thậm chí có thể được nhúng vào ô tô, TV và thiết bị gia dụng thông minh, mang đến trải nghiệm di động và lan tỏa nhất cho thế giới điện toán xung quanh. Mục tiêu của chúng tôi là thay đổi cơ bản cách các nhà phát triển nghĩ về việc xây dựng ứng dụng, bắt đầu không phải với nền tảng bạn đang nhắm mục tiêu mà là với trải nghiệm bạn muốn tạo. Flutter cho phép bạn tạo ra những trải nghiệm tuyệt đẹp trong đó ...