Cấu hình AI client qua HTTP
Tạo token cá nhân và dán cấu hình HTTP để kết nối AI agent (Claude Code, Cursor, VS Code, Gemini CLI…) tới OneDash MCP khi không dùng CLI.
Cách nhanh nhất — và an toàn nhất — là chỉ khai địa chỉ máy chủ, rồi để ứng dụng tự xin quyền qua trình duyệt. Cấu hình không chứa chuỗi bí mật nào, nên không có gì để lọt vào commit.
Muốn công cụ tự ghi cấu hình hộ cho nhiều ứng dụng một lượt, hoặc ứng dụng của bạn chỉ chạy MCP dạng stdio? Xem dùng CLI odmcp — cũng là đăng nhập uỷ quyền, không phải dán token.
Cách 1 — chỉ dán địa chỉ (khuyến nghị)
{
"mcpServers": {
"onedash": {
"type": "http",
"url": "https://onedash.inet.vn/mcp"
}
}
}
Với Claude Code, một lệnh là xong:
claude mcp add --scope user --transport http onedash https://onedash.inet.vn/mcp
⚠️ Đừng bỏ --scope user. Mặc định là --scope local, tức chỉ gắn vào đúng thư mục bạn đang đứng lúc gõ lệnh. Lệnh vẫn báo thành công, nhưng mở Claude Code ở thư mục khác thì máy chủ không có ở đó — hỏng im lặng, rất khó đoán. Nếu đã lỡ: claude mcp remove onedash rồi thêm lại kèm cờ.
Lần gọi đầu tiên, ứng dụng tự đăng ký với OneDash, mở trình duyệt để bạn đăng nhập và duyệt phạm vi quyền, rồi tự lưu thông tin đăng nhập vào kho riêng của nó. Từ đó nó tự gia hạn — bạn không phải làm gì thêm.
Quyền đã cấp hiện tại trang Kết nối AI, thu hồi được bất cứ lúc nào.
Vì sao không còn phải tự tạo token
Quyền cấp theo cách này có hạn ngắn và tự gia hạn: phần dùng để gọi API sống khoảng một giờ, phần dùng để gia hạn thì đổi mới mỗi lần dùng. Không có chuỗi bí mật nào sống hàng trăm ngày, và không có chuỗi nào đi qua tay bạn để mà copy nhầm hay commit nhầm.
Nơi khai địa chỉ trên từng ứng dụng
Mỗi ứng dụng nhận địa chỉ ở một chỗ khác nhau, và có ứng dụng khai đúng chỗ rồi vẫn phải bấm thêm một lần mới bắt đầu xin quyền — không ứng dụng nào báo lỗi ở bước đó, nên rất dễ tưởng là hỏng.
| Ứng dụng | Khai ở đâu | Lưu ý |
|---|---|---|
| Claude Code | lệnh claude mcp add ở trên, hoặc khối JSON trong ~/.claude.json | tự mở trình duyệt ở lần dùng đầu |
| Cursor | ~/.cursor/mcp.json — dán khối JSON, mở lại app | chỉ bản cài trên máy; bản web chưa kết nối được |
| Visual Studio Code | .vscode/mcp.json (khoá gốc là servers, không phải mcpServers), rồi mở Chat → chế độ Agent → bật công cụ OneDash | ⚠️ phải bật ở đó mới bắt đầu xin quyền |
| Claude Desktop | Settings → Customize → Connectors → Add → dán địa chỉ | ⚠️ xem lưu ý bên dưới |
| Zed | context_servers trong settings, rồi bảng Agent → bấm đăng nhập ở dòng OneDash | trước khi bấm, Zed chỉ ghi là cần cấp quyền và không tự mở trình duyệt |
| Warp | Settings → AI → MCP servers → thêm địa chỉ | — |
| Antigravity | phần công cụ MCP trong app → thêm địa chỉ | — |
| WebStorm / JetBrains IDE | — | ❌ chưa dùng được cách này — dùng cách 2 bên dưới |
| Ứng dụng khác | khối JSON ở trên, hoặc ô "thêm máy chủ MCP" trong giao diện | thử cách 1 trước; không được thì cách 2 |
⚠️ Claude Desktop — tài khoản thuộc tổ chức sẽ KHÔNG thấy nút thêm. Với tài khoản Team/Enterprise, mục Connectors chỉ cho Connect cái đã có sẵn; nút thêm nằm ở Organization settings → Connectors và chỉ người quản trị tổ chức mở được. Không có thông báo nào giải thích — nút chỉ đơn giản vắng mặt. Cách xử: nhờ quản trị tổ chức thêm giúp, hoặc dùng tài khoản cá nhân.
Hai chỗ không phải đường thêm máy chủ từ xa, đừng mất thời gian: Settings → Developer → Local MCP servers chỉ nhận máy chủ dạng stdio (dán địa chỉ http vào đó sẽ bị bỏ qua); và Directory là danh mục do Anthropic tuyển chọn.
Cách 2 — dán token cá nhân (chỉ khi cách 1 không dùng được)
Dùng cho ứng dụng không hỗ trợ đăng nhập uỷ quyền (WebStorm/JetBrains) và cho công cụ tự động hoá không có trình duyệt lẫn người bấm xác nhận (n8n, cron, script).
{
"mcpServers": {
"onedash": {
"type": "http",
"url": "https://onedash.inet.vn/mcp",
"headers": { "Authorization": "Bearer ${ONEDASH_API_TOKEN}" }
}
}
}
⚠️ Lối tự tạo token trong giao diện đã được gỡ. Trang Kết nối AI hiện chỉ xem / thu hồi / xoá token cũ. Nếu bạn đang có token thì dùng tiếp bình thường; nếu chưa có và thật sự cần cho một công cụ chỉ nhận header tĩnh, liên hệ quản trị hệ thống.
Đừng bao giờ commit token vào mã nguồn — luôn đặt qua biến môi trường như ví dụ trên. Đường dán tay tồn tại đúng vì lý do tương thích, và sẽ được bỏ; chuyển sang cách 1 khi ứng dụng của bạn hỗ trợ.
Ba giá trị cần khai, bất kể ứng dụng nào: URL https://onedash.inet.vn/mcp, header Authorization: Bearer <token>, transport http (hoặc streamable-http).
Địa chỉ máy chủ
Địa chỉ MCP nằm ngay trên domain OneDash bạn đang đăng nhập, kèm /mcp — không có tên miền riêng cho MCP. Quyền cấp ở hệ nào chỉ dùng được với domain của hệ đó.
Xử lý sự cố
| Triệu chứng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Ứng dụng nói cần cấp quyền nhưng không mở trình duyệt | Ứng dụng cần một bước bấm thủ công | VS Code: bật công cụ trong Chat → Agent. Zed: bấm đăng nhập ở dòng OneDash |
| Đã thêm xong mà ứng dụng không thấy máy chủ | Cấu hình vào sai phạm vi | Với Claude Code, thêm lại kèm --scope user |
| Ứng dụng không bao giờ hỏi quyền, chỉ báo lỗi xác thực | Cấu hình còn headers.Authorization nên nó ở lại đường token | Bỏ khối headers để dùng cách 1 |
| 401 ngay khi kết nối | Header Authorization sai định dạng | Đúng dạng Bearer <token>, không thừa khoảng trắng |
| "Thiếu quyền (scope)." | Quyền đã cấp không phủ công cụ đang gọi | Thu hồi rồi cấp lại với phạm vi phù hợp — xem Công cụ MCP |
| "Token không hợp lệ hoặc hết hạn." | Quyền bị thu hồi, hoặc token cũ đã hết hạn | Cấp lại quyền ở Kết nối AI |
| "Vượt giới hạn tần suất." (429) | Vượt ~60 yêu cầu/phút | Đợi khoảng một phút |
Ứng dụng báo không hiểu khoá mcpServers | Ứng dụng dùng khoá gốc khác | VS Code dùng servers; tra "MCP" trong tài liệu của ứng dụng đó |