0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Xây Dựng Máy Chủ MCP Đầu Tiên: Tìm Kiếm Mã Nguồn Ngữ Nghĩa

Đăng vào 4 tháng trước

• 5 phút đọc

Xây Dựng Máy Chủ Model Context Protocol (MCP) Cho Tìm Kiếm Mã Nguồn Ngữ Nghĩa

Giới Thiệu

Trong thời đại công nghệ hiện nay, việc tích hợp trí tuệ nhân tạo (AI) vào quy trình phát triển phần mềm đang trở nên phổ biến. Một trong những thách thức lớn là làm thế nào để AI có thể hiểu và tương tác với mã nguồn một cách hiệu quả. Tôi đã phát triển một máy chủ Model Context Protocol (MCP) cho phép các tác nhân AI tìm kiếm mã nguồn ngữ nghĩa bằng cách sử dụng Seroost. Trong bài viết này, tôi sẽ chia sẻ quy trình xây dựng máy chủ MCP và những lợi ích mà nó mang lại cho các nhà phát triển.

Tại Sao Tôi Xây Dựng Điều Này

Ban đầu, tôi không phải là một fan hâm mộ của "lập trình tác nhân". Ý tưởng để AI tự do khám phá mã nguồn của tôi nghe có vẻ rối rắm. Tuy nhiên, sau khi xem video của NetworkChuck về việc tạo máy chủ MCP, tôi đã hiểu rằng nếu các tác nhân có thể sử dụng công cụ của tôi một cách an toàn, chúng thực sự có thể trở nên hữu ích.

Giới Thiệu Về Seroost

Seroost là một công cụ tìm kiếm mã nguồn ngữ nghĩa được phát triển bằng Rust, cho phép lập chỉ mục và tìm kiếm tài liệu bằng cách sử dụng TF-IDF. Nó nhanh chóng, nhận biết đoạn mã và có khả năng xử lý các thư mục lớn. Điều còn thiếu là kết nối nó với các tác nhân AI, và đó chính là nơi MCP phát huy tác dụng.

Vấn Đề Với Các Tác Nhân AI Hiện Nay

Khi làm việc với các trợ lý AI như Claude hoặc GitHub Copilot trong các dự án lớn, chúng ta thường gặp phải tình huống:

  • Bạn hỏi về "logic xác thực"
  • Trợ lý yêu cầu "cho tôi xem các tệp của bạn"
  • Bạn phải sao chép và dán hàng chục tệp
  • Cuối cùng, nó vẫn thiếu ngữ cảnh

Hầu hết các tác nhân AI hiện nay phụ thuộc vào tìm kiếm theo từ khóa (grep) hoặc tìm kiếm ngữ nghĩa nông. Chúng không thực sự "hiểu" cấu trúc của dự án của bạn.

Giải Pháp: MCP + Seroost

MCP hoạt động như một bộ chuyển đổi phổ quát cho các công cụ AI. Hãy nghĩ về nó như là cổng USB cho AI: một giao thức tiêu chuẩn cho phép bất kỳ tác nhân nào kết nối với các công cụ bên ngoài.

Khi biến Seroost thành một máy chủ MCP, tôi đã cung cấp cho các tác nhân AI khả năng tìm kiếm mã nguồn ngữ nghĩa, trả về kết quả xếp hạng với đoạn mã và số dòng, và hoạt động mà không cần tải lên thủ công liên tục.

Cách Xây Dựng Máy Chủ MCP

Tôi giữ cho cấu hình đơn giản, tập trung vào ba công cụ:

  1. Đặt Đường Dẫn Chỉ Mục → Chỉ định cho Seroost thư mục mục tiêu
  2. Xây Dựng Chỉ Mục → Chạy quá trình lập chỉ mục
  3. Tìm Kiếm → Truy vấn mã đã lập chỉ mục với phương pháp tìm kiếm ngữ nghĩa/điều chỉnh mờ

Máy chủ bao bọc CLI của Seroost bằng child_process.spawn của Node, phân tích kết quả JSON và phơi bày chúng qua MCP.

javascript Copy
server.tool("seroost_search", "Tìm kiếm mã nguồn ngữ nghĩa", {
  query: z.string().describe("Thuật ngữ tìm kiếm hoặc mô tả bằng ngôn ngữ tự nhiên"),
}, async ({ query }) => {
  const content = await runSearch(query);
  return { content: [{ type: "text", text: JSON.stringify(content) }] };
});

Đơn giản nhưng mạnh mẽ.

Những Thay Đổi Đối Với Các Tác Nhân AI

Trước

plaintext Copy
AI: Cho tôi xem các tệp xác thực của bạn.  
Tôi: *tải lên 15 tệp*  
AI: Có thể đây là nó... nhưng tôi có thể đang thiếu ngữ cảnh.  

Sau

plaintext Copy
AI: Để tôi tìm kiếm dự án của bạn về logic xác thực.  
→ seroost_search("hàm xác thực người dùng")  

Kết quả:  
- /src/auth/authenticate.js: function authenticateUser(credentials)  
- /src/middleware/auth.js: const verifyAuthToken = (token) => { ... }  

Không còn dự đoán mù quáng. Tác nhân có thể quét toàn bộ dự án, tìm các tệp phù hợp và nhảy thẳng đến các dòng liên quan.

Tại Sao Điều Này Quan Trọng

  • Tốc độ: Không cần tải lên thủ công, phát hiện ngay lập tức
  • Quy mô: Hoạt động trên hàng ngàn tệp
  • Ngữ nghĩa: Tìm kiếm các mẫu ("middleware xử lý lỗi") chứ không chỉ từ khóa
  • Khả năng kết hợp: Hoạt động với bất kỳ tác nhân nào hỗ trợ MCP, không chỉ một nền tảng duy nhất

Cách Thiết Lập

  1. Cài đặt Seroost (cargo build --release)
  2. Sao chép máy chủ MCP và chạy npm install
  3. Thêm nó vào cấu hình khách hàng AI của bạn:
json Copy
{
  "mcpServers": {
    "seroost-search": {
      "command": "node",
      "args": ["/path/to/search-mcp/build/index.js"]
    }
  }
}
  1. Chạy seroost_set_index, sau đó seroost_index, rồi tìm kiếm thoải mái.

Những Bước Tiếp Theo

Đây chỉ là khởi đầu. MCP cho phép mở rộng bất kỳ công cụ nào cho các tác nhân AI:

  • Truy vấn cơ sở dữ liệu
  • Phân tích nhật ký
  • Triển khai tài nguyên đám mây
  • Chạy các bài kiểm tra

Tôi dự định tiếp tục mở rộng ra ngoài tìm kiếm mã — nhưng hiện tại, Seroost đã cho thấy điều gì là có thể khi bạn cung cấp cho AI một bộ công cụ thực sự.

Những Suy Nghĩ Cuối Cùng

Việc xây dựng điều này đã dạy tôi một vài điều:

  • MCP vẫn còn mới, nhưng tiềm năng rất lớn
  • Các công cụ đơn giản trở nên mạnh mẽ khi được tiêu chuẩn hóa
  • Tìm kiếm ngữ nghĩa làm cho các tác nhân AI trở nên dễ sử dụng hơn nhiều
  • Tôi nên đã tham gia vào "lập trình tác nhân" sớm hơn

Bạn có thể thử mã nguồn đầy đủ tại đây: semantic-search-mcp.

Bạn sẽ cắm công cụ nào vào tác nhân AI của bạn nếu có thể?

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào