MCP là gì? Tại sao chọn MCP Framework?
Trong kỷ nguyên số, nhu cầu truyền thông dữ liệu giữa các thiết bị và hệ thống backend ngày càng cao. MCP (Message Communication Protocol) xuất hiện như một giao thức tối ưu dành cho việc truyền dữ liệu nhị gọn, dễ triển khai, và dễ tích hợp.
MCP Framework - một dự án mở nguồn trên GitHub do QuantGeekDev phát triển - giúc lập trình viên nhanh chóng xây dựng các MCP server bằng TypeScript. Framework này cung cấp sẵn các cấu trúc, middleware, router, message handler giúp tối ưu hóa quá trình xây dựng hệ thống giao tiếp qua giao thức MCP.
Mô Hình Hoạt Động Của MCP Server
MCP server hoạt động dựa trên nguyên lý xử lý message-based, thay vì RESTful API trực tiếp. Toàn bộ giao tiếp dựa trên message ID, command, payload, và response code.
Các thành phần chính trong MCP Server:
-
Transport Layer: Lớp giao tiếp dữ liệu, có thể là TCP/UDP/WebSocket tuỳ theo nhu cầu.
-
Router: Xác định message handler phù hợp dựa trên command/message type.
-
Message Handler: Thực hiện logic xử lý message.
-
Middleware: Cho phép chèn các bước xử lý trung gian như logging, auth, transform dữ liệu.
Luồng hoạt động như sau:
- Client gửi message (có command, payload).
- MCP Server nhận và parse message.
- Router tìm handler phù hợp.
- Handler xử lý payload, trả về response.
- Server đóng gói response, gửi lại cho client.
graph TD A[Client] -->|Send MCP Message| B[Transport Layer] B --> C[Middleware] C --> D[Router] D --> E[Message Handler] E --> F[Response Generator] F --> G[Transport Layer] G -->|Send Response| A
Hướng Dẫn Viết MCP Server Bằng TypeScript
Bước 1: Cài Đặt Dự Án
npm init -y
npm install @quantgeek/mcp-framework
Bước 2: Tạo Server Cơ Bản
// index.ts
import { MCPServer } from '@quantgeek/mcp-framework'; const server = new MCPServer({ port: 9000 }); server.start(() => { console.log('MCP Server listening on port 9000');
});
Bước 3: Đăng Ký Handler Cho Message
server.router.register('PING', async (ctx) => { ctx.send({ status: 'OK', data: 'PONG' });
});
Bước 4: Sử Dụng Middleware
server.use(async (ctx, next) => { console.log('Received:', ctx.message); await next(); console.log('Responded:', ctx.response);
});
Bước 5: Triển Khai Message Validator (tuỳ chọn)
server.router.register('LOGIN', async (ctx) => { const { username, password } = ctx.message.payload; // Logic đăng nhập if (username === 'admin' && password === '123') { ctx.send({ status: 'OK', token: 'abc123' }); } else { ctx.send({ status: 'FAIL', error: 'Invalid credentials' }); }
});
Bước 6: Khởi Động Server
tsc index.ts && node index.js
Kết luận
MCP là một giao thức truyền thông nhẹ, mỏ, linh hoạt, và MCP Framework mang đến cách tiếp cận nhị gọn và hiệu quả cao khi xây dựng server bằng TypeScript. Qua hướng dẫn trên, bạn đã có thể tạo ra một MCP server đơn giản và tuỳ chỉnh theo nhu cầu.