
# Kết nối máy khách MCP khác {/* #connect-another-mcp-client */}

Các bước áp dụng cho tác nhân AI/trình soạn thảo hỗ trợ MCP từ xa nhưng chưa có hướng dẫn riêng. Trước tiên chọn OAuth hoặc token theo [Trước khi bắt đầu](/docs/vi/connect-ai-agents#before-you-start).

## Thêm máy chủ {/* #add-the-server */}

1. Mở cài đặt MCP và thêm máy chủ `reconstruct`.
2. Chọn **Streamable HTTP**, đôi khi tên **HTTP** hoặc **remote HTTP**.
3. Đặt URL máy chủ thành `https://reconstruct.dev/mcp`.

## Đăng nhập OAuth qua trình duyệt {/* #oauth-browser-sign-in */}

Nếu hỗ trợ phát hiện OAuth và đăng ký động (DCR), chỉ thêm `https://reconstruct.dev/mcp`, chọn OAuth rồi kết nối. Máy khách đăng ký gọi lại, mở đăng nhập và tự nhận gọi lại sau khi bạn chấp thuận. Không cần nhập ID/cổng thủ công.

Ứng dụng được lưu trữ có thể đăng ký gọi lại HTTPS chính xác trên tên miền công khai, như `https://app.example.com/mcp/callback`. Ứng dụng gốc có thể dùng HTTP chính xác trên `127.0.0.1`/`localhost` với cổng rõ ràng. Máy khách sở hữu/xử lý gọi lại, không phải máy chủ MCP. Cần PKCE `S256`, đồng ý người dùng và phạm vi chỉ MCP. Ký tự đại diện, HTTP ngoài loopback, fragment và URL khóa từ xa bị từ chối.

### Máy khách không tự đăng ký {/* #clients-without-automatic-registration */}

Dùng máy khách công khai đăng ký trước nếu ứng dụng không tự đăng ký:

1. Đặt ID `reconstruct-mcp`, phạm vi `openid aud-mcp`, để trống bí mật.
2. Đặt cổng OAuth cục bộ `58234`, đường dẫn `/callback`.
3. Lưu/kết nối, hoàn tất đăng nhập, chấp thuận và quay lại máy khách.

### Gọi lại cục bộ cho máy khách tùy chỉnh {/* #local-callback-for-custom-clients */}

Cấu hình máy khách lắng nghe cổng `58234` trên máy bạn và dùng một URI chuyển hướng chính xác sau:

- `http://127.0.0.1:58234/callback`
- `http://localhost:58234/callback`

Máy khách phải hỗ trợ Mã ủy quyền với PKCE (`S256`). Dùng ID `reconstruct-mcp`, phạm vi `openid aud-mcp`, không có bí mật. URI khi đăng nhập/đổi token phải khớp chính xác cấu hình.

Cổng `58234` chỉ dành cho gọi lại trình duyệt cục bộ. URL từ xa vẫn là `https://reconstruct.dev/mcp` qua HTTPS. Gắn bộ lắng nghe vào loopback, không mở ra mạng. Chỉ một luồng lắng nghe được cùng lúc; kết thúc đăng nhập hiện có trước khi bắt đầu luồng khác.

### Tự quay lại máy khách {/* #automatic-return-to-the-client */}

Máy khách phải chạy bộ lắng nghe trước khi mở trình duyệt. Sau đăng nhập/đồng ý, Keycloak chuyển hướng tới đó; máy khách nhận phản hồi, đổi mã bằng PKCE và tiếp tục MCP. Người dùng không cần tự sao chép URL hay mã ủy quyền.

Muse Code, Grok Build, Codex, Claude Code dùng cổng chung theo hướng dẫn. Máy khách có gọi lại cố định riêng, như Cursor/Claude Desktop, giữ địa chỉ được hỗ trợ.

Với ứng dụng C# tùy chỉnh, cấu hình `ClientOAuthOptions.RedirectUri`, triển khai `AuthorizationCallbackHandler` để mở trình duyệt và lấy `code`, `state`, `iss`. Chỉ đặt URI không tạo bộ lắng nghe; handler mặc định SDK yêu cầu nhập URL thủ công. Xem [tùy chọn OAuth SDK C# chính thức](https://github.com/modelcontextprotocol/csharp-sdk/blob/main/src/ModelContextProtocol.Core/Authentication/ClientOAuthOptions.cs).

Bên phát hành là `https://reconstruct.dev/sso/realms/reconstruct`; dùng endpoint ủy quyền/token được phát hiện thay vì tự tạo `/authorize` và `/token` tại gốc.

Xóa `Authorization` thủ công khi chọn OAuth. Nếu lỗi gọi lại, [gửi hỗ trợ](https://reconstruct.dev/support) URI máy khách hiển thị.

## Token truy cập cá nhân {/* #personal-access-token */}

Không hỗ trợ OAuth thì [tạo token MCP](/docs/vi/connect-ai-agents#personal-access-token) trong nền tảng và đặt `Authorization` thành `Bearer <your MCP token>`. Dùng kho bí mật hoặc `CR_RECONSTRUCT_MCP_TOKEN` nếu hỗ trợ.

## Kiểm tra kết nối {/* #check-the-connection */}

Kết nối lại/khởi động lại. Xác nhận `list_products` trong danh sách rồi yêu cầu tác nhân gọi.

Không có định dạng JSON chung. Có máy khách dùng `mcpServers`, `servers` hoặc `mcp`; một số yêu cầu `type`. Theo tài liệu cho tên trường và cú pháp thay token chính xác. Máy khách chỉ SSE cũ không thể dùng HTTP `/mcp` của Reconstruct như SSE.

Nếu lỗi, xem [bảng khắc phục](/docs/vi/connect-ai-agents#troubleshooting). Kết nối xong, thử [ví dụ câu lệnh](/docs/vi/prompt-examples).
