Sổ tay kỹ thuật

Model Context Protocol (MCP) tổng quan

concept#mcp#claude-code#agents· cập nhật 2026-11-01

MCP là gì, gồm những thành phần nào và khi nào nên viết MCP server riêng cho hệ thống mạng.

Sửa trang này
Mục lục

MCP là giao thức mở chuẩn hoá cách một ứng dụng AI (host) kết nối tới nguồn dữ liệu và công cụ bên ngoài. Thay vì viết integration riêng cho từng model, bạn viết một MCP server và mọi client hỗ trợ MCP (Claude Code, Claude Desktop, IDE...) đều dùng được.

Thành phần

Thành phần Vai trò Ví dụ
Host Ứng dụng người dùng tương tác Claude Code
Client Giữ kết nối 1-1 tới một server Nằm trong host
Server Cung cấp tools, resources, prompts netbox-mcp, gnmi-mcp
Transport Kênh truyền JSON-RPC stdio, Streamable HTTP

Luồng gọi tool

sequenceDiagram participant U as Người dùng participant H as Host (Claude Code) participant S as MCP server participant R as Router U->>H: "Interface nào trên pe1 đang down?" H->>S: tools/list S-->>H: [get_interfaces, get_bgp] H->>S: tools/call get_interfaces(host=pe1) S->>R: gNMI Get /interfaces R-->>S: JSON state S-->>H: kết quả đã lọc H-->>U: Tóm tắt + đề xuất

Ba primitive

  • Tools: hàm model được phép gọi (có side-effect). Mô tả bằng JSON Schema.
  • Resources: dữ liệu chỉ đọc, định danh bằng URI (netbox://device/pe1).
  • Prompts: template do server gợi ý, người dùng chọn.

Khi nào nên viết MCP server riêng

  • Dữ liệu nằm trong hệ thống nội bộ (NetBox, ClickHouse, Git config backup) mà agent cần tra cứu thường xuyên.
  • Muốn giới hạn quyền: chỉ cho phép show/get, chặn commit ở tầng server thay vì tin model.
  • Cần audit: server ghi log mọi tools/call.

Tool có side-effect trên thiết bị mạng nên yêu cầu xác nhận của người dùng và chạy commit confirmed / commit check trước.

Khai báo trong Claude Code

claude mcp add netbox -- uv run netbox-mcp --url https://netbox.example.net
claude mcp list

Xem thêm: Thu thập inventory bằng Ansible — có thể bọc playbook này thành một MCP tool.