Skip to content

#13 Mappy MCP Server (Thiết lập mới)

Tổng quan

MụcNội dung
Issue IDISS-013
Tên IssueThiết lập MCP Server, cho phép AI khách thao tác Mappy
Phân loạiMở rộng tính năng・Tích hợp AI・Base xác thực
Ưu tiênCao
Trạng thái🔵 Đề xuất
GitLab IssueMappy #58
Case liên quan#13 MCP Server (Thiết lập mới)
Design chaThiết kế chức năng (tổng thể)

Vấn đề hiện tại

  • Nếu các tính năng AI cải thiện nghiệp vụ (#5 phân tích đánh giá AI, #6 phân tích từ khóa AI, #7 phân tích group, #8 #9 AI report v.v.) được implement riêng, phạm vi bảo trì sẽ phình to
  • Phía Mappy gánh chi phí vận hành LLM (token, theo dõi update model, bảo trì prompt) là thiết kế không bền vững
  • Không tận dụng được năng lực AI mà khách đã có hợp đồng (ChatGPT Pro / Claude Pro)
  • Mỗi yêu cầu tích hợp AI mới đều cần resource dev

Phương pháp giải quyết

MCP hóa (Model Context Protocol) các tính năng cải thiện nghiệp vụ, cho phép AI khách thao tác Mappy.

  • Mappy chỉ tập trung vào "interface dữ liệu và thao tác"
  • Vận hành LLM ủy thác cho AI phía khách (Claude Desktop / Claude Code / ChatGPT Pro)
  • Thêm tính năng AI = thêm MCP tool
  • Các case #5・#6 hiện có có thể được hấp thụ hoàn toàn vào MCP

Chi tiết xem Đề xuất case.

Yêu cầu

Yêu cầu chức năng

NoYêu cầuChi tiết
1Tuân thủ protocol MCPTransport Streamable HTTP, tools/call, tools/list
2Base auth OAuth 2.1Bắt buộc PKCE, authorization code + refresh token, dynamic client registration
3Tương thích MCP client chínhClaude Desktop / Claude Code / ChatGPT Connectors
4Kiểm soát tenancyPhân tầng mappy_users × *_access_level × mappy_user_available_gbp_locations
5Thiết kế scopeHệ thống mappy:<domain>:<action>, mapping 1:1 với quyền hiện có của Mappy
6Read tool (Phase 1)5 tool trở lên: location / review / ranking / insight / keyword v.v.
7Write tool (Phase 2)post / review.reply / media / location.update
8Cơ chế an toàn write (Phase 2)dry_run / idempotency_key / confirm_token / batch.status
9Report tool (Phase 3)report.create / report.get, tích hợp với AI report
10Audit logGhi toàn bộ tool call・OAuth event・từ chối・dry_run
11Rate limitTheo đơn vị access token / client / user / idempotency

Yêu cầu phi chức năng

NoYêu cầuChi tiết
1Tính sẵn sàngNhiều ECS Fargate task, ALB health check
2Khả năng scaleAuto Scaling (CPU + số request)
3Thời gian responseRead tool p95 < 1 giây, write đồng bộ p95 < 3 giây
4Bảo mậtTuân thủ best practice OAuth 2.1, bắt buộc PKCE, refresh token rotation, giám sát family_id
5Tính có thể auditGhi toàn bộ event vào mappy_mcp_audit_logs, giữ 1 năm
6Bảo vệ dữ liệuKhông lưu log token, password, PII
7Tối thiểu hóa ảnh hưởng hệ thống hiện cóCấm truy cập DB trực tiếp, chỉ qua Laravel API

Cấu trúc Phase

PhaseTênCông sứcSản phẩm chính
Phase 1 (MVP)Auth + Read-only24.0 ngày-ngườiOAuth 2.1 base, 5 read tool, audit log
Phase 2Mở rộng write11.5 ngày-ngườiPost / trả lời review / media, dry_run, idempotency
Phase 3Báo cáo・Phân tích8.5 ngày-ngườiReport tool, phân tích group, tích hợp với AI report
Tổng44.0 ngày-người

Chi tiết task Phase 1

Giai đoạn thiết kế

NoTaskPhụ tráchCông sứcTiêu chí hoàn thành
1.1Xác nhận yêu cầu, tạo tài liệu design tổng thểThiết kế2.0Tài liệu tổng thể hoàn thành, review OK
1.2Thiết kế kiến trúc (chốt stack)Thiết kế1.5Chốt Python / TypeScript cuối cùng
1.3Thiết kế auth OAuth 2.1Thiết kế1.5Auth & Tenancy hoàn thành
1.4Thiết kế tool catalog (phạm vi MVP)Thiết kế1.5Phần Phase 1 của Tool Catalog hoàn thành
1.5Thiết kế audit log・DBThiết kế1.0DB (audit log) + DB (OAuth) hoàn thành
1.6Thiết kế hạ tầngThiết kế1.0Hạ tầng hoàn thành
Tổng phụ design8.5

Giai đoạn manufacture

NoTaskPhụ tráchCông sứcTiêu chí hoàn thành
1.7Implement base MCP serverManufacture2.5Kết nối Streamable HTTP, response tools/list, health check
1.8Implement auth OAuth 2.1Manufacture3.0Flow auth code + PKCE, refresh rotation, dynamic registration, /.well-known/oauth-authorization-server
1.9Implement 5 read toolManufacture3.0location.list / location.get / review.list / ranking.list / insight.summary hoạt động
1.10Implement audit logManufacture1.5Ghi toàn bộ tool call・OAuth event vào mappy_mcp_audit_logs
1.11Xây hạ tầng (AWS/container)Manufacture1.5Cấu hình ECS / ALB / Redis / Secrets Manager hoàn tất
1.12Test kết nối (Claude Desktop / ChatGPT)Manufacture1.5Gọi tool thành công từ cả 2 client
1.13Test tích hợp, điều chỉnh chất lượngManufacture1.5Verify các kịch bản từ chối auth, vi phạm tenancy, rate limit
1.14Tạo manual vận hànhThiết kế1.0Quy trình xử lý sự cố, revoke token, thêm client mới
1.15Deploy, kiểm tra hoạt độngManufacture1.0Staging → production, kiểm tra hoạt động
Tổng phụ manufacture15.5

Tổng Phase 1: 24.0 ngày-người

Chi tiết task Phase 2 (tóm tắt)

NoTaskCông sức
2.1Thiết kế cơ chế an toàn write (write safety)1.5
2.2Implement write tool (post.create / review.reply / media.upload v.v. 5〜7 tool)3.0
2.3Implement dry_run / idempotency1.5
2.4Implement confirm token1.0
2.5Tích hợp batchId + polling (liên kết với bảng jobs hiện có)1.5
2.6Rate limit1.0
2.7Test1.5
2.8Deploy0.5
Tổng Phase 211.5

Chi tiết task Phase 3 (tóm tắt)

NoTaskCông sức
3.1Thiết kế report tool1.5
3.2Implement report tool (report.create / report.get)2.0
3.3Implement analytics tool (keyword / group.compare v.v.)2.0
3.4Tích hợp với AI report (#9)1.5
3.5Test1.0
3.6Deploy0.5
Tổng Phase 38.5

Tiêu chí nghiệm thu (Phase 1)

Nghiệm thu chức năng

  • [ ] Thêm MCP server vào Claude Desktop → Login → Lấy danh sách tool thành công
  • [ ] Kết nối từ ChatGPT Connectors → OAuth → Gọi tool thành công
  • [ ] 5 read tool hoạt động đúng spec input/output
  • [ ] Request thiếu scope trả về 403 (FORBIDDEN_SCOPE)
  • [ ] Request resource ngoài tenancy trả về 403 (FORBIDDEN_LOCATION/USER)
  • [ ] Vượt rate limit trả về 429
  • [ ] Refresh token rotation hoạt động (phát hiện token reuse → revoke toàn family)
  • [ ] Call sau khi access token revoked trả về 401
  • [ ] Toàn bộ tool call được ghi vào mappy_mcp_audit_logs

Nghiệm thu phi chức năng

  • [ ] Read tool p95 response < 1 giây
  • [ ] Hỏng 1 ECS task vẫn duy trì hoạt động đầy đủ
  • [ ] CloudWatch alarm phát hỏa, thông báo Slack
  • [ ] Deploy staging → production zero downtime

Nghiệm thu tài liệu

Quan hệ phụ thuộc

Task tiên quyết (trước khi vào Phase 1)

  • [ ] Chốt stack triển khai (Python / TypeScript)
  • [ ] Chốt domain MCP (mcp.mappy.example.com v.v.)
  • [ ] Apply AWS resource (Redis ElastiCache, ACM certificate)
  • [ ] Xác nhận redirect_uri của MCP client chính thức (Claude / ChatGPT)

Tiên quyết sau khi xong Phase 1 (trước khi vào Phase 2)

  • [ ] Phase 1 chạy production 2 tuần (verify ổn định)
  • [ ] Từ access log AI khách, nắm xu hướng sử dụng tool
  • [ ] Chốt tool write ưu tiên (hỏi ý kiến khách)

Tiên quyết sau khi xong Phase 2 (trước khi vào Phase 3)

  • [ ] Tính năng AI report (#9 AI advice cho report) đã chạy (Python FastAPI + LangChain)

Quan hệ và phương châm tích hợp với các case liên quan

Case liên quanQuan hệ với MCP
#2 Mở quyền reportĐộc lập. Chia sẻ scope MCP và cột quyền
#3 Đăng ảnh hàng loạt / xóaTích hợp một phần. Cung cấp API qua media.upload / post.create của MCP
#5 Phân tích đánh giá AITích hợp hoàn toàn. Không cần implement AI phía Mappy, MCP thay thế
#6 Phân tích từ khóa AITích hợp hoàn toàn. Tương tự
#7 Phân tích groupTích hợp một phần. Cung cấp API qua group.compare của MCP
#8 Thêm số liệu insight vào reportĐộc lập. Cải tạo body report
#9 AI advice cho reportTích hợp một phần. report.create của MCP có thể gọi

Rủi ro・Vấn đề

#Rủi roTác độngĐối phó
1Spec MCP thay đổiTính tương thích protocolCập nhật SDK chính thức / FastMCP, CI test tương thích
2Lỗ hổng trong implement OAuth 2.1Sự cố bảo mậtDùng thư viện chuyên dụng, pen test
3AI khách hoạt động bất thường (lệnh sai / gọi đại số lượng)Phá hủy dữ liệu, chi phí phình toÁp dụng triệt để dry_run / confirm_token / rate limit
4Bị trộm refresh tokenChiếm tài khoảnGiám sát family_id, revoke ngay khi phát hiện token reuse
5Tiêu quota GBP APIThất bại ghi, chi phíTận dụng rate limit hiện có của Mappy, thêm hạn chế phía MCP
6Lệnh sai write tool sau Phase 2Hỏng dữ liệu kháchBắt buộc dry_run, ghi toàn bộ audit log
7Chậm chốt stack triển khaiTrễ deadlineChốt cuối giai đoạn design, ưu tiên design có thể tiến với cả 2 phương án

Tài liệu liên quan