
Kết nối IWAS với AI Agent bằng MCP và OAuth 2.1
Trả lời nhanh: có 2 cách nối IWAS với app AI. Remote MCP: bạn thêm địa chỉ
https://getiwas.com/mcpvào app AI, app tự mở trang đăng nhập IWAS (OAuth 2.1), bạn bấm cho phép là xong, token do app AI giữ. stdio: bạn chạynpx -y @iwas/mcp loginmột lần trong Terminal (Device Flow, nhập mã trên trình duyệt), token được cất trong Keychain hoặc file bảo mật trên máy, rồi cho app AI chạynpx -y @iwas/mcp mcp. AI chỉ dùng được những gì tài khoản IWAS của bạn được phép. Muốn ngắt trên máy thì chạynpx -y @iwas/mcp logout.
IWAS là phần mềm quản lý WiFi khách cho quán cafe: khách vào mạng qua trang đăng nhập (captive portal), quán tự đặt gói theo thời gian, tốc độ, dung lượng, và khách có thể mua thêm giờ bằng VietQR qua tài khoản PayOS riêng của quán. IWAS chạy với router MikroTik (RouterOS v7 trở lên), OpenWrt và UniFi. Tìm hiểu thêm về IWAS.
Bạn không cần tạo API key rồi copy vào từng AI client để dùng IWAS.
IWAS MCP được thiết kế để các AI client có thể kết nối tới Remote MCP Server và thực hiện authorization thông qua OAuth 2.1. Client discovery, authorization, access token và refresh token được xử lý theo chuẩn của OAuth/MCP thay vì mỗi nền tảng phải có một cách đăng nhập riêng.
Trong bài này, chúng ta tập trung vào cách một user kết nối IWAS, không đi vào cách xây custom MCP app hay tự tạo OAuth client cho từng nền tảng.
Ý chính: bạn cung cấp IWAS MCP endpoint cho AI client → client phát hiện cơ chế OAuth → mở browser để đăng nhập IWAS → user cấp quyền → client lưu token và sử dụng IWAS MCP.
Mới: ngoài remote MCP qua HTTP, IWAS giờ có thêm gói
@iwas/mcpchạy qua stdio ngay trên máy bạn, đăng nhập bằng OAuth Device Flow (nhập mã trên trình duyệt). Cách này hợp với Claude Desktop, Cursor, Antigravity, VS Code (Cline / Roo Code) và Windsurf. Bạn xem các mục 11, 12 và 13 nhé.
1. Bạn cần gì trước khi bắt đầu?
Nếu kết nối qua remote HTTP, bạn chỉ cần:
- Tài khoản IWAS có quyền truy cập các tool cần sử dụng.
- IWAS Remote MCP URL. Với IWAS cloud, URL này là
https://getiwas.com/mcp. - Một AI client hỗ trợ remote MCP và OAuth.
Nếu kết nối qua stdio bằng gói @iwas/mcp, bạn cần:
- Tài khoản IWAS như trên.
- Node.js 18 trở lên trên máy (README khuyên dùng Node.js 20+).
- Một AI client chạy MCP server qua stdio, ví dụ Claude Desktop, Cursor, Antigravity hoặc VS Code (Cline / Roo Code).
Không cần đưa password IWAS, access token hay refresh token vào prompt.
OAuth server của IWAS chịu trách nhiệm xác thực và cấp quyền; AI client chỉ nhận credential/token cần thiết sau khi user hoàn tất authorization.
2. OAuth 2.1 flow hoạt động như thế nào?
Ở mức đơn giản:
AI Client
│
│ Connect to IWAS MCP
▼
IWAS MCP Server
│
│ OAuth discovery
▼
IWAS Authorization Server
│
│ Browser login + consent
▼
User
│
│ Authorize
▼
Access Token / Refresh Token
│
▼
AI Client ───────────────► IWAS MCPĐiểm quan trọng là AI client không cần biết database hoặc API nội bộ của IWAS. Nó chỉ giao tiếp với MCP server và OAuth authorization server.
Với remote MCP, các client hiện đại như Cursor và Antigravity có thể tự xử lý OAuth discovery/authorization khi server hỗ trợ các cơ chế chuẩn. Cursor ghi rõ remote SSE và Streamable HTTP có thể sử dụng OAuth; Antigravity cũng tự xử lý OAuth cho server hỗ trợ Dynamic Client Registration.
3. Kết nối IWAS với ChatGPT
Với ChatGPT, hãy bắt đầu từ Apps / connected apps mà tài khoản hoặc workspace của bạn cung cấp.
Nếu IWAS đã được phân phối trong danh sách app/connector:
- Mở ChatGPT.
- Mở Apps hoặc khu vực quản lý connected apps.
- Tìm IWAS.
- Chọn Connect.
- ChatGPT mở luồng authorization của IWAS.
- Đăng nhập IWAS.
- Review quyền được yêu cầu.
- Chọn Authorize / Allow.
- Quay lại ChatGPT và sử dụng IWAS trong conversation.
Bạn không cần tạo một “custom MCP app” chỉ để một user kết nối IWAS nếu IWAS đã được phân phối như một app/connector.
OpenAI hiện sử dụng khái niệm Apps cho các integration trong ChatGPT; custom MCP apps là một cơ chế dành cho việc xây/test app trong Developer Mode, không phải bước bắt buộc cho người dùng cuối của một integration đã được phân phối.
Sau khi kết nối
Bạn có thể yêu cầu ChatGPT sử dụng IWAS, ví dụ:
“Kiểm tra tình trạng IWAS hiện tại và tóm tắt các WiFi session đang active.”
Hoặc:
“Tóm tắt doanh thu hôm nay từ IWAS.”
ChatGPT sẽ sử dụng app/tool được kết nối theo những quyền mà account đã cấp.
Lưu ý: tên menu và vị trí Apps có thể thay đổi theo phiên bản ChatGPT, plan và workspace. Phần quan trọng không phải tên nút mà là kết nối IWAS thông qua OAuth authorization flow.
4. Kết nối IWAS với Cursor
Cursor hỗ trợ remote MCP qua SSE và Streamable HTTP, với OAuth cho các remote MCP server. Cursor cũng hỗ trợ MCP Marketplace/one-click installation và cấu hình remote server bằng mcp.json.
Cách đơn giản nhất
Nếu IWAS được cung cấp trong Cursor Marketplace hoặc có deep link cài đặt:
- Mở Cursor.
- Vào Customize / MCP.
- Tìm IWAS.
- Chọn Add to Cursor / Install.
- Chọn Connect khi Cursor yêu cầu authentication.
- Browser sẽ mở OAuth flow của IWAS.
- Đăng nhập IWAS.
- Review và authorize.
- Quay lại Cursor.
Cursor sẽ lưu trạng thái authentication và sử dụng token cho các request tới IWAS MCP.
Nếu thêm remote MCP thủ công
Cursor hỗ trợ cấu hình remote MCP trong .cursor/mcp.json hoặc ~/.cursor/mcp.json.
{
"mcpServers": {
"iwas": {
"url": "<IWAS_REMOTE_MCP_URL>"
}
}
}Sau khi server được thêm, mở MCP settings và thực hiện Authenticate / Connect nếu Cursor yêu cầu.
Không nên hard-code access token vào mcp.json khi IWAS OAuth đã được hỗ trợ.
Muốn chạy IWAS qua stdio trong Cursor? Xem cấu hình
npx -y @iwas/mcp mcpở mục 11.
Static OAuth chỉ dành cho trường hợp đặc biệt
Cursor cũng hỗ trợ static OAuth client credentials trong mcp.json, nhưng đây là lựa chọn dành cho những MCP provider yêu cầu fixed Client ID/Client Secret hoặc redirect URI được allowlist. Với một server hỗ trợ Dynamic Client Registration, hãy để Cursor thực hiện OAuth flow thay vì bắt user quản lý secret thủ công.
5. Kết nối IWAS với Google Antigravity
Google Antigravity hỗ trợ remote MCP và có built-in OAuth flow.
Theo tài liệu MCP chính thức của Antigravity, một remote MCP server có thể được khai báo bằng serverUrl. Với server hỗ trợ Dynamic Client Registration, Antigravity có thể tự xử lý OAuth mà không cần thêm client credentials thủ công.
Thêm IWAS
Trong Antigravity:
- Mở Settings.
- Vào Customizations.
- Mở MCP / Installed MCP Servers.
- Thêm IWAS từ MCP Store nếu IWAS có trong store.
- Nếu IWAS chưa có trong store, mở MCP Servers → Manage MCP Servers → View raw config.
- Thêm remote MCP server với IWAS
serverUrl.
Ví dụ:
{
"mcpServers": {
"iwas": {
"serverUrl": "<IWAS_REMOTE_MCP_URL>"
}
}
}Antigravity hỗ trợ serverUrl cho remote Streamable HTTP/SSE server.
Authenticate IWAS
Sau khi server xuất hiện:
- Mở Agent Settings → Customizations.
- Tìm IWAS.
- Chọn Authenticate.
- Browser mở OAuth authorization flow.
- Đăng nhập IWAS.
- Cấp quyền.
- Hoàn tất authorization theo hướng dẫn của Antigravity.
Antigravity lưu OAuth token và tự refresh token hết hạn; tài liệu chính thức cũng mô tả flow Authenticate → browser authorization → submit authorization code.

Ví dụ giao diện Authenticate của Antigravity từ tài liệu Google.

Antigravity hiển thị các remote MCP servers trong Installed MCP Servers.
Antigravity cũng chạy được IWAS qua stdio bằng
mcp_config.json, xem mục 11.
6. Tại sao IWAS dùng OAuth thay vì yêu cầu API key?
Có một khác biệt lớn giữa hai cách tiếp cận.
API key
User → copy secret → AI client → IWASUser phải tự quản lý secret và rất dễ copy nhầm vào config, prompt hoặc source code.
OAuth 2.1
User → Connect
↓
IWAS Login
↓
Authorize
↓
Token managed by clientAI client không cần biết password của user và user có thể review quyền trước khi cấp.
Đây cũng là mô hình phù hợp hơn khi nhiều người cùng sử dụng IWAS qua những AI client khác nhau.
7. CIMD, DCR và OAuth: chúng liên quan với nhau thế nào?
Ba khái niệm này thường xuất hiện cùng nhau nhưng không phải là một thứ.
| Thành phần | Vai trò |
|---|---|
| OAuth 2.1 | Authorization framework để user cấp quyền cho client |
| DCR | Cho phép OAuth client đăng ký dynamically với authorization server |
| CIMD | Cho phép client cung cấp metadata thông qua Client ID Metadata Document |
| Device Flow | Cách đăng nhập OAuth cho app chạy trên máy (CLI, stdio): app hiện một mã, bạn mở trình duyệt nhập mã và bấm cho phép (RFC 8628) |
| MCP | Protocol để AI client giao tiếp với tools/resources |
Flow tổng quát của IWAS là:
AI Client
│
├── MCP discovery
│
├── OAuth metadata discovery
│
├── Client registration
│ └── DCR / CIMD khi được hỗ trợ
│
├── Authorization
│ └── User login + consent
│
└── MCP requests with access tokenDevice flow nằm ở đâu trong bức tranh này?
DCR và CIMD trả lời câu hỏi "client này là ai?". Device flow trả lời một câu hỏi khác: "user đăng nhập bằng cách nào khi app chạy trong terminal, không tự mở trang đăng nhập rồi nhận kết quả về được?".
Cả hai đều nằm dưới OAuth, chỉ khác đường đi:
Remote HTTP (AI client tự lo OAuth)
AI Client ── DCR / CIMD ──► Authorization (browser) ──► Token ──► https://getiwas.com/mcp
stdio (@iwas/mcp lo OAuth thay client)
iwas login ── Device Flow (mã + browser) ──► Token lưu trong Keychain
AI Client ──stdio──► @iwas/mcp ──HTTPS + token──► https://getiwas.com/mcpVới stdio, gói @iwas/mcp dùng client ID có sẵn của nó (iwas-cli), nên bạn không phải đăng ký client hay tự giữ client secret. AI client chỉ việc chạy lệnh npx -y @iwas/mcp mcp, còn token thì @iwas/mcp giữ và tự làm mới.
Mỗi request từ @iwas/mcp lên IWAS còn kèm một DPoP proof mới (RFC 9449). Hiểu đơn giản: token được gắn với một khoá riêng trên máy bạn, nên lỡ ai lấy được token thì cũng khó đem đi dùng ở chỗ khác.
Điều này giúp IWAS không phải xây một authentication integration riêng cho từng AI client.
8. Remote MCP URL của IWAS là phần duy nhất bạn cần cung cấp
Với remote HTTP, một integration hiện đại nên cố gắng giữ configuration tối thiểu (với IWAS cloud, URL là https://getiwas.com/mcp):
IWAS Remote MCP URL
↓
AI Client
↓
OAuth discovery
↓
IWAS Authorization
↓
ConnectedKhông cần:
- Copy password vào AI client.
- Copy access token vào prompt.
- Commit refresh token vào Git.
- Tạo một API key mới cho từng user nếu OAuth đã được hỗ trợ.
Nếu client yêu cầu static OAuth credentials vì không hỗ trợ dynamic registration, đó là một fallback configuration của client — không phải flow chính dành cho end user.
Còn với stdio, thứ bạn cần cung cấp chỉ là lệnh npx -y @iwas/mcp mcp và biến IWAS_SERVER_URL (mặc định đã là https://getiwas.com). Chi tiết ở mục 11.
9. Sau khi kết nối, IWAS trở thành một AI-accessible platform
Khi OAuth đã hoàn tất, AI client có thể gọi các MCP tools mà user được phép sử dụng.
Ví dụ:
Operations
“IWAS hiện có bao nhiêu active sessions?”
Analytics
“Tóm tắt performance của các WiFi package trong 7 ngày qua.”
Troubleshooting
“Kiểm tra các lỗi MCP gần đây.”
Audit
“Hiển thị các audit events liên quan đến integration này.”
AI không cần truy cập trực tiếp database của IWAS. MCP trở thành lớp giao tiếp chuẩn giữa AI client và IWAS platform.
10. Một lần xây MCP, nhiều AI client
Điểm quan trọng của kiến trúc này là IWAS không cần tạo một authentication system riêng cho từng AI product.
┌── ChatGPT Apps
│
IWAS MCP + OAuth ───┼── Cursor
│
├── Antigravity
│
├── Claude Desktop, VS Code… (stdio + @iwas/mcp)
│
└── Other MCP ClientsMỗi client có UI khác nhau, nhưng phía IWAS vẫn có thể dùng cùng một MCP endpoint và cùng một authorization model.
Một MCP server. Một OAuth security model. Nhiều AI clients.
11. Kết nối IWAS qua stdio với @iwas/mcp
Nói ngắn gọn: với stdio, IWAS không tự đăng nhập khi bạn mở app AI. Bạn chạy
npx -y @iwas/mcp loginmột lần trong Terminal trước, rồi mới dùng app. Chỉ 3 bước:
npx -y @iwas/mcp login: đăng nhập bằng Device Flow (nhập mã trên trình duyệt).npx -y @iwas/mcp status: kiểm tra đã đăng nhập chưa.- Cấu hình app AI (Claude Desktop, Cursor, Antigravity…) chạy
npx -y @iwas/mcp mcp.
Nhiều app AI trên máy tính (Claude Desktop, Cursor, Antigravity, VS Code với Cline / Roo Code, Windsurf) quen chạy MCP server như một chương trình nhỏ ngay trên máy, nói chuyện với nhau qua stdio. Cho trường hợp này, IWAS có gói chính thức @iwas/mcp.
Bạn cứ hình dung nó như một "cây cầu" nhỏ:
AI Client ──stdio──► @iwas/mcp (trên máy bạn) ──HTTPS──► https://getiwas.com/mcpBạn không cần clone repo hay cài trước gì cả, chỉ cần có Node.js 18+ rồi chạy bằng npx.
Bước 1: Đăng nhập một lần
Mở Terminal và chạy:
npx -y @iwas/mcp loginLệnh này tự mở trình duyệt để bạn đăng nhập IWAS bằng Device Flow (cách hoạt động ở mục 12). Đăng nhập xong, token được lưu an toàn trên máy, bạn không phải dán token vào đâu cả.
Nếu đang SSH vào server hoặc máy không có trình duyệt:
npx -y @iwas/mcp login --no-browserLúc này lệnh chỉ in ra đường link xác minh và mã user code, bạn mở link đó trên điện thoại hay máy khác để duyệt.
Bước 2: Kiểm tra đã đăng nhập chưa
npx -y @iwas/mcp statusLệnh này cho bạn biết profile đang dùng, server, trạng thái (🟢 Active hay đã hết hạn) và token còn bao lâu.
Bước 3: Thêm IWAS vào AI client
Mấy client dưới đây dùng chung một kiểu cấu hình: chạy npx -y @iwas/mcp mcp và đặt IWAS_SERVER_URL. Nhớ làm Bước 1 trước khi mở client nhé.
Claude Desktop (claude_desktop_config.json)
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"iwas": {
"command": "npx",
"args": ["-y", "@iwas/mcp", "mcp"],
"env": {
"IWAS_SERVER_URL": "https://getiwas.com"
}
}
}
}Cursor (.cursor/mcp.json hoặc phần cài đặt MCP chung): dùng đúng đoạn JSON như trên.
Antigravity (~/.gemini/config/mcp_config.json hoặc .agents/mcp_config.json): cũng dùng đoạn JSON như trên.
VS Code với Cline / Roo Code (cline_mcp_settings.json): vẫn đoạn JSON như trên.
Lưu file, khởi động lại client là IWAS xuất hiện trong danh sách tool.
Mấy lệnh hay dùng
Gói này có 2 lệnh giống hệt nhau là iwas và iwas-mcp. Nếu bạn cài gói vào máy thì gõ iwas cho gọn, còn không thì cứ dùng npx -y @iwas/mcp như ở trên.
| Lệnh | Làm gì |
|---|---|
login | Đăng nhập bằng OAuth Device Flow |
status | Xem trạng thái đăng nhập của profile |
logout | Thu hồi phiên trên server và xoá token trên máy |
mcp | Chạy cầu nối stdio cho AI client |
help | Xem hướng dẫn |
Một vài tuỳ chọn có ghi trong README:
login --scopes "analytics:read session:read offline_access": chỉ xin đúng những quyền bạn cần.login --json,status --json: in kết quả dạng JSON để chạy script.logout --force: xoá token trên máy kể cả khi không kết nối được server.--server <url>: chọn server IWAS khác (ví dụ bản tự host).
Lưu ý: đừng thêm
--jsoncho lệnhmcp. Lệnh này dành riêng stdout cho dữ liệu MCP (JSON-RPC) nên sẽ báo lỗi nếu có--json.
Biến môi trường
| Biến | Mặc định | Ý nghĩa |
|---|---|---|
IWAS_SERVER_URL | https://getiwas.com | Địa chỉ server IWAS |
IWAS_MCP_VAULT | auto | Nơi lưu token: auto (Keychain của hệ điều hành, không được thì dùng file), keychain (chỉ Keychain), file (chỉ file) |
XDG_CONFIG_HOME | ~/.config | Thư mục gốc cho file token dự phòng ($XDG_CONFIG_HOME/iwas/credentials.json) |
Gặp lỗi thường gặp
No IWAS credentials for profile "...": máy chưa đăng nhập. Chạynpx -y @iwas/mcp login.fetch failed: connection closedhoặcECONNREFUSED: không kết nối được tới server trongIWAS_SERVER_URL. Bạn kiểm tra lại mạng hoặc địa chỉ server.- macOS hỏi quyền Keychain: bấm Always Allow. Hoặc đặt
IWAS_MCP_VAULT=fileđể lưu token bằng file. The mcp command reserves stdout for MCP frames; --json is not supported: bạn lỡ thêm--jsonvào lệnhmcp. Bỏ--jsonđi là chạy.- App AI báo chưa xác thực: chạy
npx -y @iwas/mcp status, rồinpx -y @iwas/mcp loginlại và khởi động lại app.
12. Device flow: đăng nhập IWAS bằng mã trên trình duyệt
Nói ngắn gọn: Device Flow chạy trong Terminal, không chạy bên trong app AI hay trong khung chat. Bạn gõ
npx -y @iwas/mcp loginmột lần, duyệt mã trên trình duyệt, xong thì kiểm tra bằngnpx -y @iwas/mcp status. Sau đó app AI chỉ việc chạynpx -y @iwas/mcp mcpvà dùng token đã lưu trên máy.Hay bị hiểu nhầm: đăng nhập không tự diễn ra khi app AI khởi động; token không phải "mã hoá PKCE" (token được cất trong Keychain / Secret Service / file bảo mật trên máy, và mỗi request kèm DPoP proof); cũng không có tool nào để bạn nhờ AI "đăng nhập giúp" ngay trong chat.
Device flow (tên đầy đủ là OAuth 2.0 Device Authorization Grant, RFC 8628) là kiểu đăng nhập bạn hay gặp khi đăng nhập Netflix hay YouTube trên TV: màn hình hiện một mã, bạn mở trình duyệt nhập mã rồi bấm đồng ý.
Với @iwas/mcp, mọi chuyện diễn ra thế này:
- Bạn chạy
npx -y @iwas/mcp login. - Terminal hiện USER CODE và một đường link xác minh, đồng thời tự mở trình duyệt (trừ khi bạn dùng
--no-browser). - Bạn đăng nhập IWAS trên trình duyệt như bình thường, kiểm tra mã rồi bấm cho phép.
- Trong lúc đó, terminal chờ ("Waiting for approval in browser..."). Bạn duyệt xong là nó nhận token.
- Token được cất vào kho bảo mật của hệ điều hành.
iwas login ──► IWAS cấp USER CODE + link
│
│ bạn mở link, đăng nhập, bấm cho phép
▼
IWAS ──► access token + refresh token ──► Keychain trên máy bạnToken được lưu ở đâu?
- macOS: Apple Keychain.
- Linux: Secret Service (libsecret).
- Windows, Docker hoặc máy không có giao diện: file
~/.config/iwas/credentials.json, chỉ chủ máy được đọc (quyền0600).
Token hết hạn thì sao?
Bạn không phải làm gì. @iwas/mcp tự làm mới token trước khi hết hạn, và tự thử lại nếu gặp lỗi 401. Nếu bạn mở nhiều cửa sổ IDE hay nhiều agent cùng lúc, gói có khoá file riêng để các lần làm mới không giẫm lên nhau.
Muốn đăng xuất?
npx -y @iwas/mcp logoutLệnh này thu hồi phiên trên server IWAS và xoá token khỏi máy. Token và secret cũng được tự che đi trong log và thông báo lỗi.
13. Nên chọn stdio hay remote HTTP?
Hai cách đều dùng chung một hệ thống quyền của IWAS, chỉ khác chỗ "ai lo phần đăng nhập".
| Remote HTTP | stdio (@iwas/mcp) | |
|---|---|---|
| Địa chỉ kết nối | https://getiwas.com/mcp | Lệnh npx -y @iwas/mcp mcp chạy trên máy |
| Ai lo OAuth | AI client tự làm (DCR / CIMD) | @iwas/mcp lo, đăng nhập bằng Device Flow |
| Cần cài gì | Không | Node.js 18+ |
| Token nằm ở đâu | Trong AI client | Keychain / file bảo mật trên máy bạn |
| Hợp với | ChatGPT, agent trên cloud, webhook, client hỗ trợ Streamable HTTP | App AI trên máy: Claude Desktop, Cursor, Antigravity, VS Code (Cline / Roo Code), Windsurf |
Tóm lại cho dễ nhớ:
- Client của bạn thêm được remote MCP URL và tự đăng nhập OAuth → dùng remote HTTP, khỏi cài gì.
- Client của bạn chỉ chạy MCP server bằng lệnh (stdio), hoặc bạn muốn token nằm trong Keychain của máy → dùng
@iwas/mcp.
14. Câu hỏi thường gặp
OAuth 2.1 (remote) và Device Flow (stdio) khác nhau thế nào?
Cả hai đều là OAuth, chỉ khác ai lo phần đăng nhập. Với remote, app AI kết nối thẳng tới https://getiwas.com/mcp, tự mở trang đăng nhập IWAS và tự giữ token. Với stdio, gói @iwas/mcp lo đăng nhập bằng Device Flow (RFC 8628): bạn chạy npx -y @iwas/mcp login, nhập mã trên trình duyệt, token được lưu trên máy, rồi app AI chạy npx -y @iwas/mcp mcp. App nào thêm được remote MCP URL thì dùng remote; app chỉ chạy MCP server bằng lệnh thì dùng stdio.
IWAS MCP có hỗ trợ stdio không?
Có. Bạn dùng gói @iwas/mcp: chạy npx -y @iwas/mcp login một lần, rồi cấu hình AI client chạy npx -y @iwas/mcp mcp.
Token IWAS nằm ở đâu?
Với stdio, @iwas/mcp cất token trong Apple Keychain (macOS, tên dịch vụ iwas-cli), Secret Service/libsecret (Linux), còn trên Windows, Docker hoặc máy không có giao diện thì ở file ~/.config/iwas/credentials.json chỉ chủ máy đọc được (quyền 0600). Bạn chọn nơi lưu bằng biến IWAS_MCP_VAULT (auto, keychain hoặc file). Với remote, token do app AI giữ sau khi bạn bấm cho phép. Bạn không cần dán token vào file cấu hình hay vào khung chat.
AI được làm gì trong IWAS? Quyền tính theo tài khoản thế nào?
AI chỉ gọi được những tool mà tài khoản IWAS bạn dùng để đăng nhập được phép dùng. Dù bạn kết nối qua gói stdio @iwas/mcp hay remote HTTPS /mcp, cả hai đều dùng chung một bộ phân quyền (RBAC), nên app AI chỉ có đúng những quyền theo vai trò của tài khoản đang đăng nhập, không hơn. Một số tool chẩn đoán (ví dụ đọc log hệ thống, danh sách lỗi) chỉ dành cho nhân viên vận hành nền tảng IWAS. Với stdio, bạn có thể xin ít quyền hơn ngay lúc đăng nhập, ví dụ npx -y @iwas/mcp login --scopes "analytics:read session:read offline_access". Lệnh npx -y @iwas/mcp status cho biết bạn đang đăng nhập vào tổ chức nào.
Làm sao ngắt kết nối hoặc thu hồi quyền truy cập?
Với stdio, chạy npx -y @iwas/mcp logout: lệnh này thu hồi phiên trên server IWAS (RFC 7009) và xoá token khỏi máy. Nếu không kết nối được server, chạy npx -y @iwas/mcp logout --force để ít nhất xoá token trên máy. Với remote, bạn gỡ hoặc ngắt kết nối IWAS trong phần cài đặt MCP / connected apps của chính app AI đó. Ngoài ra, bạn cũng có thể thu hồi quyền OAuth đã cấp cho remote MCP ngay trong phần quản trị hệ thống (system admin) của IWAS.
Đăng nhập lỗi thì kiểm tra gì?
Báo No IWAS credentials for profile: máy chưa đăng nhập, chạy npx -y @iwas/mcp login. Báo fetch failed hoặc ECONNREFUSED: không tới được server trong IWAS_SERVER_URL, kiểm tra mạng hoặc địa chỉ server. macOS hỏi quyền Keychain: bấm Always Allow, hoặc đặt IWAS_MCP_VAULT=file. Báo lỗi --json khi chạy lệnh mcp: bỏ --json đi. App AI báo chưa xác thực: chạy npx -y @iwas/mcp status, rồi chạy lại npx -y @iwas/mcp login và khởi động lại app.
Có đăng nhập ngay trong Claude Desktop/Cursor được không?
Không. MCP server không đăng nhập giúp bạn từ trong app hay trong khung chat. Bạn chạy npx -y @iwas/mcp login trong Terminal trước. Nếu app báo chưa xác thực, chạy npx -y @iwas/mcp status để xem tình trạng, rồi chạy lại npx -y @iwas/mcp login và khởi động lại app.
Token hết hạn thì có phải đăng nhập lại không?
Thường là không. @iwas/mcp tự làm mới token trước khi hết hạn và tự thử lại khi gặp lỗi 401. Bạn kiểm tra bằng npx -y @iwas/mcp status.
Remote MCP URL của IWAS là gì?
Với IWAS cloud là https://getiwas.com/mcp (Streamable HTTP).
Đọc thêm
- Presence Intelligence: WiFi có thể cho doanh nghiệp biết gì về sự hiện diện của khách hàng?: dữ liệu WiFi mà AI có thể giúp bạn đọc sau khi đã kết nối IWAS.
- Hướng dẫn tích hợp API phát hành voucher WiFi tự động: nếu bạn muốn hệ thống POS/CRM tự cấp mã giảm giá WiFi thay vì nhờ AI.
Official documentation
- OpenAI — Apps / MCP in ChatGPT
- Cursor — Model Context Protocol
- Google Antigravity — MCP
- IWAS — gói @iwas/mcp trên npm
Các bước trong guide này ưu tiên OAuth (remote MCP + OAuth, hoặc stdio + Device Flow), còn các cấu hình API key/static credential chỉ được đề cập như fallback khi một client/environment yêu cầu.
Quick summary
| Client | Remote MCP | stdio (@iwas/mcp) | Cách kết nối |
|---|---|---|---|
| ChatGPT | ✓ | – | Apps / connected app → Connect → OAuth |
| Claude Desktop | – | ✓ | login → thêm npx -y @iwas/mcp mcp vào claude_desktop_config.json |
| Cursor | ✓ | ✓ | Remote MCP → Authenticate, hoặc stdio npx -y @iwas/mcp mcp |
| Antigravity | ✓ | ✓ | MCP Servers → Authenticate, hoặc stdio trong mcp_config.json |
| VS Code (Cline / Roo Code) | – | ✓ | login → thêm vào cline_mcp_settings.json |
Dấu "–" nghĩa là bài này chưa hướng dẫn cách đó, không có nghĩa là client không hỗ trợ.
Nếu IWAS xuất hiện trong app/MCP directory của client, hãy dùng one-click connect. Nếu không, thêm Remote MCP URL (https://getiwas.com/mcp) và để client thực hiện OAuth discovery/authorization. Còn nếu client chạy MCP qua stdio, bạn chạy npx -y @iwas/mcp login một lần rồi trỏ client vào npx -y @iwas/mcp mcp.
Chưa có tài khoản IWAS? Tạo workspace trên getiwas.com để dùng thử 14 ngày.
Không cần biến OAuth thành một cấu hình riêng cho từng AI client — đó chính là lợi ích của việc IWAS tuân thủ chuẩn.


