MCP và AI
Máy chủ MCP của ZaPro: để Claude, Cursor, VS Code gửi tin Zalo thay bạn. Địa chỉ gốc: https://app.zapro.vn/v1.
ZaPro có sẵn máy chủ MCP (Model Context Protocol) tại https://app.zapro.vn/mcp. Trợ lý AI dùng API key của bạn và có đúng quyền của key đó.
Cài đặt
claude.ai, ChatGPT: thêm connector mới với địa chỉ https://app.zapro.vn/mcp. Ứng dụng tự đăng ký với ZaPro, mở trang đăng nhập; bạn chọn công ty, chọn quyền và bấm Cho phép. Không phải chép API key.
Claude Code, Cursor, VS Code, Claude Desktop: tạo một API key ở trang API keys (nên là key riêng cho AI, quyền chỉ gửi tin nếu AI không cần quản lý webhook), rồi dán vào cấu hình.
# Không cần API key: kết nối bằng OAuth. # claude.ai: Cài đặt → Connectors → Add custom connector # ChatGPT: Cài đặt → Connectors (chế độ nhà phát triển) → tạo connector mới URL máy chủ MCP: https://app.zapro.vn/mcp # Bấm kết nối, đăng nhập ZaPro, chọn công ty và quyền, bấm "Cho phép".
claude mcp add --transport http zapro https://app.zapro.vn/mcp \
--header "Authorization: Bearer zp_live_…"// .cursor/mcp.json { "mcpServers": { "zapro": { "url": "https://app.zapro.vn/mcp", "headers": { "Authorization": "Bearer zp_live_…" } } } }
// .vscode/mcp.json { "inputs": [ { "type": "promptString", "id": "zapro-key", "description": "ZaPro API key", "password": true } ], "servers": { "zapro": { "type": "http", "url": "https://app.zapro.vn/mcp", "headers": { "Authorization": "Bearer ${input:zapro-key}" } } } }
// claude_desktop_config.json { "mcpServers": { "zapro": { "command": "npx", "args": ["-y", "mcp-remote", "https://app.zapro.vn/mcp", "--header", "Authorization:${ZAPRO_AUTH}"], "env": { "ZAPRO_AUTH": "Bearer zp_live_…" } } } }
curl https://app.zapro.vn/mcp \ -H "Authorization: Bearer zp_live_…" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Kết nối bằng OAuth
Máy chủ MCP của ZaPro làm đúng đặc tả xác thực của MCP: trả 401 kèm resource_metadata, có metadata ở /.well-known/oauth-protected-resource và /.well-known/oauth-authorization-server, cho đăng ký ứng dụng tự động (RFC 7591), bắt buộc PKCE S256.
- Token truy cập sống 1 giờ, token làm mới sống 30 ngày và đổi mới mỗi lần dùng.
- Mỗi lần bạn bấm Cho phép, ZaPro tạo một key tên "Tên ứng dụng (MCP)" ở trang API keys. Thu hồi key đó là ngắt kết nối, mọi token của ứng dụng hết hiệu lực ngay.
- Quyền "chỉ gửi tin" hoặc "toàn quyền" do bạn chọn trên trang đồng ý, giống quyền của API key.
Tool
| Tool | Việc | Loại |
|---|---|---|
| get_usage | Xem gói và hạn mức | Chỉ đọc |
| list_oas | Danh sách Zalo OA | Chỉ đọc |
| get_oa | Xem một Zalo OA | Chỉ đọc |
| list_templates | Danh sách mẫu tin | Chỉ đọc |
| get_template | Xem một mẫu tin | Chỉ đọc |
| sync_templates | Đồng bộ mẫu tin từ Zalo | Ghi |
| send_message | Gửi tin Zalo | Ghi |
| send_messages_batch | Gửi nhiều tin một lần | Ghi |
| list_messages | Danh sách tin đã gửi | Chỉ đọc |
| get_message | Xem một tin | Chỉ đọc |
| cancel_message | Hủy tin chưa gửi | Xóa, hủy |
| create_connect_link | Tạo link ZaPro Connect | Ghi |
| list_webhooks | Danh sách webhook | Chỉ đọc |
| create_webhook | Thêm webhook | Ghi |
| delete_webhook | Xóa webhook | Xóa, hủy |
| list_contacts | Danh sách liên hệ | Chỉ đọc |
| upsert_contact | Thêm hoặc cập nhật liên hệ | Ghi |
| list_segments | Danh sách phân khúc | Chỉ đọc |
| add_to_segment | Thêm số vào phân khúc | Ghi |
| list_broadcasts | Danh sách chiến dịch | Chỉ đọc |
| get_broadcast | Xem một chiến dịch | Chỉ đọc |
| create_broadcast | Tạo chiến dịch nháp | Ghi |
| update_broadcast | Sửa chiến dịch nháp | Ghi |
| review_broadcast | Kiểm tra chiến dịch trước khi gửi | Chỉ đọc |
| test_broadcast | Gửi thử chiến dịch | Ghi |
| send_broadcast | Gửi chiến dịch | Ghi |
| cancel_broadcast | Hủy chiến dịch | Xóa, hủy |
| send_event | Gửi sự kiện | Ghi |
| list_automations | Danh sách tự động hóa | Chỉ đọc |
| create_automation | Tạo tự động hóa | Ghi |
| enable_automation | Bật hoặc tắt tự động hóa | Ghi |
| list_automation_runs | Lượt chạy của tự động hóa | Chỉ đọc |
| get_metrics | Số liệu gửi tin | Chỉ đọc |
Nhờ AI làm gì
- "Gửi tin thử từ sandbox tới số của tôi."
- "Hôm nay có tin nào thất bại không, vì sao, cần làm gì?"
- "Gửi tin xác nhận lịch 15:30 ngày mai cho chị Lan, số 0901234567, OA hoa-sen-spa."
- "Tạo link Connect cho cửa hàng mã store-42 và cho tôi đường link."
- "Tháng này đã gửi bao nhiêu tin, còn bao nhiêu tin miễn phí?"
Chi tiết kỹ thuật
- Kiểu Streamable HTTP, không giữ phiên: mỗi yêu cầu là một POST JSON-RPC 2.0. GET trả 405 vì máy chủ không mở luồng SSE.
- Xác thực bằng header Authorization: Bearer với API key (zp_live_…) hoặc token OAuth (zp_oat_…). Thiếu hoặc sai trả 401.
- Phiên bản giao thức hỗ trợ: 2025-06-18, 2025-03-26, 2024-11-05.
- Mỗi tool gọi đúng API /v1 tương ứng: cùng kiểm tra dữ liệu, cùng giới hạn 10 lệnh mỗi giây, cùng thông báo lỗi tiếng Việt (trả về với isError).
- Mỗi tool có gợi ý an toàn readOnlyHint, destructiveHint để ứng dụng AI hỏi lại bạn trước khi gửi tin hay xóa.