Serena MCP là gì: giúp AI hiểu codebase như IDE

Serena MCP là gì: bộ công cụ mã nguồn mở của Oraios AI giúp Claude tìm và sửa code theo hàm, lớp nhờ language server, dùng miễn phí qua Claude Desktop.

AI lập trình7 phút đọc
Minh họa mạng lưới các khối code nối với nhau bằng đường sáng, một ống kính phát sáng soi vào đúng một nút

Thử hình dung phòng IT nhận bàn giao một phần mềm tính lương do người cũ viết, vài trăm file Python. Sếp hỏi: "Hoa hồng nhân viên bán hàng đang tính ở đâu?". Anh chị dán từng file vào Claude, hết lượt chat mà vẫn chưa tìm ra, còn Claude thì đoán bừa một hàm có tên na ná.

Vấn đề là AI đang đọc code như đọc truyện, từ đầu tới cuối. Serena cho AI một tấm bản đồ: biết hàm nào nằm đâu, ai gọi ai, rồi đi thẳng tới đúng chỗ.

Đọc nhanh trong 30 giây

  • Serena là bộ công cụ lập trình mã nguồn mở của Oraios AI, giúp Claude tìm và sửa code theo từng hàm, từng lớp nhờ language server, như lập trình viên dùng IDE.
  • Bản gắn thẻ đầu tiên ngày 01/04/2025, được giới thiệu với cộng đồng ngày 02/04/2025.
  • Chạy như một MCP server trong Claude Desktop, không cần khóa API hay thuê bao riêng.
  • Hợp với lập trình viên Python, Java, TypeScript cần đọc hiểu và sửa dự án vừa và lớn.

Serena MCP là gì?

Serena là một agent lập trình đóng gói thành MCP server: nó không tự nghĩ, mà cung cấp công cụ để mô hình AI đọc, sửa và chạy code trên dự án của anh chị. README ghi Serena "free to use", không cần khóa API hay thuê bao.

Nếu anh chị chưa rõ MCP, hiểu đơn giản đây là chuẩn cắm công cụ vào AI, như cổng USB: Claude Desktop là máy tính, Serena là thiết bị cắm vào. Bài MCP là gì có giải thích kỹ hơn.

Serena khác gì cách AI đọc code thông thường?

Serena đọc code bằng language server thay vì dò chữ. Phần lớn công cụ AI tìm code giống bấm Ctrl+F trong một cuốn sách dày: gõ chữ, nhảy qua từng chỗ trùng, rồi tự đoán chỗ nào đúng.

Language server là thứ VS Code hay PyCharm vẫn dùng để biết hàm nào gọi hàm nào. Ví như thợ điện có sơ đồ đường dây của cả tòa nhà: muốn biết công tắc này nối tới bóng đèn nào, nhìn sơ đồ là ra, khỏi đục tường dò từng sợi.

So sánh AI dò chữ kiểu Ctrl+F và AI có Serena tìm theo ký hiệu nhờ language server

Cùng câu hỏi "hàm tính hoa hồng ở đâu", hai cách tìm rất khác nhau.

Theo README ngày ra mắt, Serena hỗ trợ:

Mức hỗ trợ Ngôn ngữ
Có sẵn, đã thử Python, Java, TypeScript
Gián tiếp, chưa thử Ruby, Go, C#

Hộp đồ nghề của Serena có gì?

Serena đưa cho AI một bộ công cụ làm việc theo ký hiệu, tức là theo tên hàm, tên lớp, thay vì theo số dòng. Một số công cụ tiêu biểu trong README:

Các công cụ tiêu biểu của Serena chia theo nhóm tìm, sửa, chạy và ghi nhớ

Bốn nhóm công cụ: tìm, sửa, chạy, ghi nhớ.

  • find_symbol: tìm hàm, lớp theo tên.
  • find_referencing_symbols: tìm mọi chỗ gọi tới một ký hiệu.
  • replace_symbol_body, insert_after_symbol: sửa code theo ký hiệu thay vì theo số dòng.
  • execute_shell_command: chạy lệnh, ví dụ chạy test.
  • write_memory, read_memory: ghi và đọc ghi chú về dự án.

Bộ ghi nhớ đáng chú ý nhất. Lần đầu mở dự án, Serena chạy bước onboarding: đọc cấu trúc, tìm cách chạy test, rồi ghi chú vào thư mục .serena/memories/. Giống người mới vào làm tự viết sổ tay "ở đây cái gì nằm đâu", lần sau khỏi hỏi lại.

Cài Serena với Claude Desktop

README ngày ra mắt hướng dẫn chạy Serena từ mã nguồn bằng uv, trình quản lý gói Python.

Các bước cài Serena: cài uv, tải repo, tạo file cấu hình dự án và thêm vào Claude Desktop

Năm bước, phần lâu nhất là sửa đường dẫn cho đúng máy.

  1. Cài uv theo hướng dẫn tại docs.astral.sh/uv.
  2. Tải repo về máy:
git clone https://github.com/oraios/serena
  1. Tạo file cấu hình cho dự án, ví dụ myproject.yml, dựa trên file mẫu myproject.demo.yml trong repo.
  2. Trong Claude Desktop, vào File, Settings, Developer, MCP Servers, Edit Config để mở claude_desktop_config.json, thêm đoạn sau (sửa đường dẫn cho đúng máy):
{
    "mcpServers": {
        "serena": {
            "command": "/abs/path/to/uv",
            "args": ["run", "--directory", "/abs/path/to/serena", "serena-mcp-server", "/abs/path/to/myproject.yml"]
        }
    }
}
  1. Thoát hẳn Claude Desktop rồi mở lại.

Mẹo

Trên Windows, bấm dấu X chỉ thu Claude Desktop xuống khay hệ thống, phải thoát hẳn từ khay thì cấu hình mới được nạp. Đường dẫn có dấu \ thì viết thành \\. README còn khuyên đặt git config --global core.autocrlf true để tránh diff khổng lồ do ký tự xuống dòng.

Muốn dùng mô hình khác như Gemini hay mô hình chạy qua Ollama, README hướng dẫn thêm cách chạy qua Agno, một framework agent không phụ thuộc mô hình.

Thử với dự án thật

Việc 1: làm quen hệ thống cũ. Mở dự án tính lương ở đầu bài, để Serena chạy onboarding xong, rồi hỏi:

Hàm nào tính hoa hồng cho nhân viên bán hàng? Liệt kê mọi chỗ gọi tới nó.

Serena dùng find_symbol và find_referencing_symbols để trả lời, thay vì mở lần lượt từng file.

Việc 2: sửa có kiểm soát. Bắt đầu từ trạng thái git sạch, nhờ Serena sửa một hàm rồi chạy test. Xong việc, xem git diff để duyệt thay đổi. README khuyên làm đúng như vậy để cả người và AI đều thấy mình đã đổi gì.

Những điểm cần cân nhắc

Lưu ý

  • Giấy phép GPL. File LICENSE ngày ra mắt là GNU GPL phiên bản 2. Dùng nội bộ thoải mái, nhưng định nhúng Serena vào sản phẩm phân phối cho khách thì hỏi bộ phận pháp chế.
  • Chạy lệnh tùy ý. execute_shell_command chạy được bất kỳ lệnh nào. Claude Desktop hỏi trước mỗi lần dùng công cụ; README khuyên duyệt từng lần với công cụ này.
  • Chưa ổn định. README thừa nhận Claude Desktop đôi khi treo hoặc tắt khi gọi công cụ, có lúc phải khởi động lại nhiều lần.
  • Mỗi cấu hình một dự án. Đổi dự án thì viết file .yml mới và khởi động lại Claude Desktop.
  • Code càng rối càng kém. Serena dựa vào cấu trúc code, nên với một lớp khổng lồ không chia module, kết quả sẽ kém.

Nhận xét của chuyên gia

Serena đáng chú ý vì chọn một hướng khác: thay vì bán thêm một agent trả phí, nó biến ứng dụng chat sẵn có thành agent lập trình. Với doanh nghiệp Việt đang trả thuê bao Claude cho nhân viên, đây là cách thử AI lập trình mà không phát sinh hóa đơn API.

Hợp với ai: lập trình viên Python, Java, TypeScript làm dự án vừa và lớn; phòng IT cần đọc hiểu hệ thống cũ do người khác để lại.

Chưa hợp với ai: người không biết git, vì Serena sửa file thật trên máy; dự án viết bằng ngôn ngữ chưa được hỗ trợ. Rủi ro chính là quyền chạy lệnh. Nếu chỉ cần AI đọc và giải thích code, tôi khuyên tắt các công cụ sửa file trong cấu hình, đúng như README gợi ý.

Cách bắt đầu của tôi: chọn một dự án Python nhỏ, cài theo các bước trên, để Serena chạy onboarding, rồi đọc lại các file trong .serena/memories/ và chỉnh tay cho đúng. Nền tảng để hiểu Serena là Claude Code và chuẩn MCP, các mốc này nằm trong chuỗi dòng thời gian AI.

Một câu để nhớ: AI đọc code nhanh chưa đủ, phải biết đọc đúng chỗ.

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

Serena có miễn phí không?

Có. Serena là mã nguồn mở và chạy qua MCP với Claude Desktop; README cho biết bản Claude miễn phí cũng hỗ trợ MCP server. Nếu chạy qua Agno với mô hình trả phí thì tốn tiền API của mô hình đó.

Serena khác gì Cursor hay Windsurf?

Serena không gắn với IDE hay mô hình nào, và đọc code bằng language server thay vì dò chữ. Đổi lại, xem code mới viết không liền mạch bằng IDE vì Serena không nằm trong trình soạn thảo.

Serena chạy được trên Windows không?

Được. README có hướng dẫn riêng cho Claude Desktop trên Windows và khuyên đặt git config --global core.autocrlf true để tránh diff khổng lồ do ký tự xuống dòng.

Nguồn: oraios/serena trên GitHub, 02/04/2025.

Nguồn tham khảo: https://github.com/oraios/serena

Zalo

TA-Assistant

System Online
Xin chào! Tôi là trợ lý AI của Tuấn Anh. Tôi có thể giúp gì cho bạn hôm nay?