social-connect-mcp-poc
README.md
# Social Connect MCP POC
Node.js 22 POC **không cần npm dependency** để test Facebook + TikTok connection, OAuth và MCP connection tools.
## 1. Chạy ngay bằng mock
```bash
cp .env.example .env
npm test
npm start
```
Mở `http://localhost:3000`, sau đó bấm **Test Facebook**, **Test TikTok** hoặc **Run test-all**.
`.env.example` mặc định `MOCK_SOCIAL=true`, nên demo được ngay mà chưa cần secret.
## 2. Test khả năng truy cập endpoint thật
```bash
npm run probe
```
HTTP 400/401 khi không có token vẫn có nghĩa là endpoint provider đang reachable.
## 3. Chạy Facebook LIVE
Tạo Meta Developer App, thêm Facebook Login và cấu hình:
```env
MOCK_SOCIAL=false
META_GRAPH_VERSION=v26.0
META_APP_ID=...
META_APP_SECRET=...
META_REDIRECT_URI=http://localhost:3000/api/facebook/callback
```
OAuth scopes POC:
```text
pages_show_list
pages_read_engagement
pages_manage_posts
pages_manage_engagement
pages_messaging
```
Sau đó mở:
```text
http://localhost:3000/api/facebook/login
```
Callback đổi authorization code thành user access token, gọi `/me` và `/me/accounts`, rồi giữ token tạm trong memory.
Bạn cũng có thể bypass OAuth để test token/Page trực tiếp:
```env
META_USER_ACCESS_TOKEN=...
# hoặc
META_PAGE_ID=...
META_PAGE_ACCESS_TOKEN=...
```
## 4. Chạy TikTok LIVE
Tạo TikTok Developer App + Login Kit và cấu hình:
```env
MOCK_SOCIAL=false
TIKTOK_CLIENT_KEY=...
TIKTOK_CLIENT_SECRET=...
TIKTOK_REDIRECT_URI=http://localhost:3000/api/tiktok/callback
TIKTOK_SCOPES=user.info.basic,video.list
```
Mở:
```text
http://localhost:3000/api/tiktok/login
```
Callback dùng endpoint token v2 và sau đó test `/v2/user/info/`. Nếu app có `video.list`, POC test luôn `/v2/video/list/`.
Hoặc test token trực tiếp:
```env
TIKTOK_ACCESS_TOKEN=...
```
## 5. API nội bộ
```text
GET /api/health
GET /api/facebook/login
GET /api/facebook/callback
GET /api/facebook/test
GET /api/tiktok/login
GET /api/tiktok/callback
GET /api/tiktok/test
POST /api/tiktok/upload/init
POST /api/tiktok/upload/status
GET /api/test-all
```
## 6. MCP POC
```bash
npm run mcp
```
Tools:
```text
social_status
facebook_test_connection
tiktok_test_connection
```
`src/mcp-server.js` là minimal stdio JSON-RPC MCP implementation để POC không phụ thuộc package ngoài. Khi nâng lên production nên thay bằng official MCP SDK.
## 7. Production TODO
POC cố ý chỉ giữ OAuth token trong memory. Production cần database/encrypted secret store, refresh-token rotation, Meta/TikTok webhook verification, RBAC, audit log, rate-limit/retry, App Review và token revocation flow.
## 8. Git
Repo đã được `git init` sẵn. Để đẩy lên GitHub sau khi tạo remote repository:
```bash
git remote add origin git@github.com:<username>/social-connect-mcp-poc.git
git push -u origin main
```
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues