🔐 Giao dịch qua bridge local⚡ MCP hosted (Enterprise)
Algolab MCP · Tài liệu developer

Giao dịch chứng khoán qua MCP

Đặt lệnh và theo dõi tài khoản DNSE · SSI · TCBS bằng AI qua bridge mcp-trading chạy trên máy bạn — trong Claude Desktop, Claude Code hoặc MCP client cục bộ khác — với nguyên tắc: khoá API và OTP của bạn không đi qua cuộc trò chuyện với AI. Kết nối OAuth (connector Claude.ai, ChatGPT) chỉ có quyền đọc dữ liệu, không có công cụ giao dịch; ChatGPT cũng không chạy được bridge local.

Cách dùng cho mọi người là bridge local mcp-trading — khoá API nằm nguyên trên máy bạn, Algolab không bao giờ thấy, cài một lệnh npx. Phần dưới là tài liệu kỹ thuật của đường MCP hosted (đặt lệnh qua máy chủ Algolab bằng khoá alm_…, không qua OAuth) — đường này không mở cho tài khoản thường, chỉ bật riêng cho tổ chức (gói Enterprise). Cần giao dịch? Dùng bridge — nhanh hơn và riêng tư hơn.

1. Điều kiện

2. Bảo mật — bí mật của bạn đi đâu?

Quy tắc số 1: AI không bao giờ hỏi khoá/mật khẩu của bạn. Đường chuẩn là link-flow: AI đưa bạn một URL dùng-một-lần trên algolab.vn, bạn dán khoá trực tiếp trên web (browser → server, mã hoá AES-256-GCM khi lưu) — AI chỉ nhìn thấy trạng thái pending / done / expired. Chúng tôi không bao giờ nhận mật khẩu CTCK — chỉ khoá API (scope hẹp, bạn thu hồi được 1 click tại CTCK, độc lập với Algolab).

3. Kết nối CTCK — link-flow

  1. Nói với AI: “Kết nối DNSE giúp tôi” (hoặc ssi / tcbs). AI gọi connect_broker không kèm khoá.
  2. AI đưa bạn URL algolab.vn/mcp/link-broker?code=… — sống 10 phút, dùng 1 lần, gắn đúng tài khoản của bạn.
  3. Mở URL (đăng nhập đúng tài khoản Algolab đã tạo key), dán khoá API của CTCK vào biểu mẫu.
  4. Quay lại chat — AI tự thấy done qua get_broker_link_status và tiếp tục.

Khoá API lấy ở đâu?

CTCKNơi lấyKhoá
DNSEWebtrading → Thông tin cá nhân → LightSpeed API (lớp 2 nên chọn Email OTP)API Key + API Secret
SSIiBoard → Dịch vụ API (FastConnect)ConsumerID + ConsumerSecret + số tiểu khoản (kèm hậu tố, VD 5552981)
TCBSApp TCInvest → iFlash Open APIAPI Key (tiểu khoản hệ thống tự phát hiện)

4. Mô hình OTP theo CTCK

Khoá API xác thực kết nối; mở phiên giao dịch thì CTCK nào cũng bắt thêm 2FA — đây là quy định của CTCK, không phải của Algolab:

CTCKĐọc số dư/danh mụcĐặt/huỷ lệnhPhiên sống
DNSEKhông cần OTPTrading token mở bằng Smart OTP (app) hoặc OTP emailKey vĩnh viễn · trading token 8h
SSIOTP một lần cho cả đọc lẫn ghi — sau đó refresh token tự gia hạnAccess ~8h, refresh ~7 ngày
TCBSiOTP sinh trong app TCInvest → JWT dùng chung đọc + lệnhJWT 8h

Ngại đọc OTP cho AI? Gọi request_broker_otp với via_web=true — bạn nhận URL và gõ OTP trên web, mã không đi qua chat.

5. Tham chiếu tool

ToolViệcGhi chú
connect_brokerLiên kết / liên kết lại CTCKGọi trần → trả URL link-flow (khuyên dùng). Nhận khoá qua tham số nếu bạn chủ động dán.
get_broker_link_statusPoll link-flowpending / done / expired
request_broker_otpNhờ CTCK gửi OTPDNSE cần email; TCBS trả hướng dẫn iOTP; via_web=true → nhập trên web
submit_broker_otpNộp OTP mở phiênsmart_otp=true nếu mã từ app; SSI Smart OTP push dùng transaction_id
get_broker_accountsDanh sách tiểu khoảnSSI/TCBS hỏi thẳng CTCK để trả đúng số tiểu khoản
get_broker_balanceTiền mặt / sức muaTham số broker + account
get_broker_positionsDanh mục nắm giữ
get_broker_ordersSổ lệnh trong ngày
place_broker_orderĐặt lệnh THẬTBắt buộc 2 bước — xem mục 6
cancel_broker_orderHuỷ lệnhCũng 2 bước xác nhận

6. Đặt lệnh — nghi thức 2 bước

  1. Bạn nói: “Bán 100 GEL giá 30.000”. AI gọi tool không kèm confirm → nhận bản preview (mã, chiều, KL, giá, giá trị ước tính) — chưa có gì được gửi đi.
  2. AI đọc lại preview. Bạn xác nhận rõ ràng (“đồng ý”, “đặt đi”).
  3. AI gọi lại với confirm=true. Server chặn lần hai: thiếu confirm là HTTP 428, lệnh không bao giờ đi.
  4. Lệnh ghi audit vào lịch sử trên algolab.vn (không chứa bí mật).

7. Lỗi thường gặp

LỗiNghĩa làLàm gì
SERVER_LINK_DISABLEDĐường MCP hosted là tính năng gói EnterpriseDùng bridge local (mọi gói), hoặc nâng lên Enterprise
FREE_POOL_FORBIDDENĐang dùng cổng free ẩn danhTạo key cá nhân tại algolab.vn/mcp
FORBIDDEN (chưa bật giao dịch)Key chưa bật tradingBật công tắc tại algolab.vn/mcp
OTP_REQUIREDPhiên giao dịch chưa mở / hết hạnrequest_broker_otp → submit_broker_otp
RELINK_REQUIREDKhoá lưu trước đây không giải mã được (hệ thống đổi khoá mã hoá)Liên kết lại qua connect_broker (link-flow)
CONFIRM_REQUIRED (428)Lệnh thiếu xác nhận tường minhĐúng thiết kế — xác nhận với người dùng rồi gọi lại
BROKER_ERRORLỗi từ phía CTCK (kèm thông điệp gốc)Đọc message — luôn kèm một bước hành động

8. Thu hồi quyền