Ang introductory lab na ito ay nagbibigay ng detalyadong gabay sa pagbuo ng Model Context Protocol (MCP) servers na may database integration. Malalaman mo ang business case, teknikal na arkitektura, at mga aplikasyon sa totoong mundo gamit ang Zava Retail analytics use case sa https://github.com/microsoft/MCP-Server-and-PostgreSQL-Sample-Retail.
Ang Model Context Protocol (MCP) ay nagbibigay-daan sa mga AI assistants na ligtas na ma-access at makipag-ugnayan sa mga external na data sources nang real-time. Kapag isinama sa database integration, binubuksan ng MCP ang makapangyarihang kakayahan para sa mga data-driven na AI applications.
Ang learning path na ito ay nagtuturo kung paano bumuo ng production-ready MCP servers na kumokonekta sa mga AI assistants sa retail sales data gamit ang PostgreSQL, na nagpatupad ng mga enterprise patterns tulad ng Row Level Security, semantic search, at multi-tenant data access.
Sa pagtatapos ng lab na ito, magagawa mo ang sumusunod:
- I-define ang Model Context Protocol at ang mga pangunahing benepisyo nito para sa database integration
- Kilalanin ang mga pangunahing bahagi ng arkitektura ng MCP server na may databases
- Unawain ang Zava Retail use case at ang mga business requirements nito
- Kilalanin ang mga enterprise patterns para sa secure at scalable na database access
- Ilista ang mga tools at teknolohiya na ginamit sa learning path na ito
Bagamat napakalakas ng modernong AI assistants, may malalaking limitasyon ito pagdating sa paggamit ng totoong business data:
| Hamon | Deskripsyon | Epekto sa Negosyo |
|---|---|---|
| Static Knowledge | Ang mga AI models na sinanay sa fixed datasets ay hindi makaka-access sa kasalukuyang business data | Lipas na insights, nasayang na oportunidad |
| Data Silos | Ang impormasyon ay nakakulong sa databases, APIs, at mga sistema na hindi maabot ng AI | Hindi kumpletong pagsusuri, sirang workflows |
| Security Constraints | Ang direktang database access ay nagdudulot ng mga isyu sa seguridad at pagsunod sa regulasyon | Limitadong deployment, manual na paghahanda ng data |
| Complex Queries | Kailangan ng teknikal na kaalaman ng mga business users para makuha ang data insights | Mabagal na adoption, hindi epektibong proseso |
Ang Model Context Protocol ay tumutugon sa mga hamon na ito sa pamamagitan ng:
- Real-time Data Access: Ang mga AI assistants ay maaaring mag-query sa live databases at APIs
- Secure Integration: Kinokontrol na access gamit ang authentication at permissions
- Natural Language Interface: Ang mga business users ay maaaring magtanong gamit ang simpleng Ingles
- Standardized Protocol: Gumagana sa iba't ibang AI platforms at tools
🏪 Kilalanin ang Zava Retail: Ang Ating Case Study sa Pag-aaral https://github.com/microsoft/MCP-Server-and-PostgreSQL-Sample-Retail
Sa buong learning path na ito, magtatayo tayo ng MCP server para sa Zava Retail, isang kathang-isip na DIY retail chain na may maraming lokasyon ng tindahan. Ang senaryong ito ay nagpapakita ng enterprise-grade MCP implementation.
Ang Zava Retail ay may operasyon sa:
- 8 pisikal na tindahan sa Washington state (Seattle, Bellevue, Tacoma, Spokane, Everett, Redmond, Kirkland)
- 1 online store para sa e-commerce sales
- Iba't ibang produkto kabilang ang tools, hardware, garden supplies, at building materials
- Multi-level management na may store managers, regional managers, at executives
Kailangan ng mga store managers at executives ng AI-powered analytics para sa:
- Pagsusuri ng sales performance sa iba't ibang tindahan at panahon
- Pagsubaybay sa inventory levels at pagtukoy ng mga pangangailangan sa restocking
- Pag-unawa sa customer behavior at mga pattern ng pagbili
- Pagdiskubre ng product insights gamit ang semantic search
- Pagbuo ng mga ulat gamit ang natural language queries
- Pagpapanatili ng data security gamit ang role-based access control
Ang MCP server ay dapat magbigay ng:
- Multi-tenant data access kung saan makikita ng store managers ang data ng kanilang tindahan lamang
- Flexible querying na sumusuporta sa mga kumplikadong SQL operations
- Semantic search para sa product discovery at recommendations
- Real-time data na sumasalamin sa kasalukuyang estado ng negosyo
- Secure authentication gamit ang row-level security
- Scalable architecture na sumusuporta sa maraming sabay-sabay na users
Ang MCP server natin ay nagpapatupad ng layered architecture na na-optimize para sa database integration:
┌─────────────────────────────────────────────────────────────┐
│ VS Code AI Client │
│ (Natural Language Queries) │
└─────────────────────┬───────────────────────────────────────┘
│ HTTP/SSE
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP Server │
│ ┌─────────────────┐ ┌─────────────────┐ ┌───────────────┐ │
│ │ Tool Layer │ │ Security Layer │ │ Config Layer │ │
│ │ │ │ │ │ │ │
│ │ • Query Tools │ │ • RLS Context │ │ • Environment │ │
│ │ • Schema Tools │ │ • User Identity │ │ • Connections │ │
│ │ • Search Tools │ │ • Access Control│ │ • Validation │ │
│ └─────────────────┘ └─────────────────┘ └───────────────┘ │
└─────────────────────┬───────────────────────────────────────┘
│ asyncpg
▼
┌─────────────────────────────────────────────────────────────┐
│ PostgreSQL Database │
│ ┌─────────────────┐ ┌─────────────────┐ ┌───────────────┐ │
│ │ Retail Schema │ │ RLS Policies │ │ pgvector │ │
│ │ │ │ │ │ │ │
│ │ • Stores │ │ • Store-based │ │ • Embeddings │ │
│ │ • Customers │ │ Isolation │ │ • Similarity │ │
│ │ • Products │ │ • Role Control │ │ Search │ │
│ │ • Orders │ │ • Audit Logs │ │ │ │
│ └─────────────────┘ └─────────────────┘ └───────────────┘ │
└─────────────────────┬───────────────────────────────────────┘
│ REST API
▼
┌─────────────────────────────────────────────────────────────┐
│ Azure OpenAI │
│ (Text Embeddings) │
└─────────────────────────────────────────────────────────────┘
- FastMCP Framework: Modern Python MCP server implementation
- Tool Registration: Declarative tool definitions na may type safety
- Request Context: User identity at session management
- Error Handling: Matibay na error management at logging
- Connection Pooling: Efficient asyncpg connection management
- Schema Provider: Dynamic table schema discovery
- Query Executor: Secure SQL execution gamit ang RLS context
- Transaction Management: ACID compliance at rollback handling
- Row Level Security: PostgreSQL RLS para sa multi-tenant data isolation
- User Identity: Authentication at authorization ng store managers
- Access Control: Fine-grained permissions at audit trails
- Input Validation: SQL injection prevention at query validation
- Semantic Search: Vector embeddings para sa product discovery
- Azure OpenAI Integration: Text embedding generation
- Similarity Algorithms: pgvector cosine similarity search
- Search Optimization: Indexing at performance tuning
| Bahagi | Teknolohiya | Layunin |
|---|---|---|
| MCP Framework | FastMCP (Python) | Modern MCP server implementation |
| Database | PostgreSQL 17 + pgvector | Relational data na may vector search |
| AI Services | Azure OpenAI | Text embeddings at language models |
| Containerization | Docker + Docker Compose | Development environment |
| Cloud Platform | Microsoft Azure | Production deployment |
| IDE Integration | VS Code | AI Chat at development workflow |
| Tool | Layunin |
|---|---|
| asyncpg | High-performance PostgreSQL driver |
| Pydantic | Data validation at serialization |
| Azure SDK | Cloud service integration |
| pytest | Testing framework |
| Docker | Containerization at deployment |
| Serbisyo | Azure Resource | Layunin |
|---|---|---|
| Database | Azure Database for PostgreSQL | Managed database service |
| Container | Azure Container Apps | Serverless container hosting |
| AI Services | Azure AI Foundry | OpenAI models at endpoints |
| Monitoring | Application Insights | Observability at diagnostics |
| Security | Azure Key Vault | Secrets at configuration management |
Tingnan natin kung paano nakikipag-ugnayan ang iba't ibang users sa ating MCP server:
User: Sarah, Seattle Store Manager
Layunin: Suriin ang sales performance noong nakaraang quarter
Natural Language Query:
"Ipakita ang top 10 products ayon sa revenue para sa tindahan ko noong Q4 2024"
Ano ang Nangyayari:
- Ang VS Code AI Chat ay nagpapadala ng query sa MCP server
- Ang MCP server ay kinikilala ang store context ni Sarah (Seattle)
- Ang RLS policies ay nag-filter ng data para sa Seattle store lamang
- Ang SQL query ay nabuo at naisagawa
- Ang resulta ay na-format at ibinalik sa AI Chat
- Ang AI ay nagbibigay ng analysis at insights
User: Mike, Inventory Manager
Layunin: Maghanap ng mga produktong katulad ng request ng customer
Natural Language Query:
"Anong mga produkto ang ibinebenta natin na katulad ng 'waterproof electrical connectors para sa outdoor use'?"
Ano ang Nangyayari:
- Ang query ay pinoproseso ng semantic search tool
- Ang Azure OpenAI ay bumubuo ng embedding vector
- Ang pgvector ay nagsasagawa ng similarity search
- Ang mga kaugnay na produkto ay niraranggo ayon sa relevance
- Ang resulta ay naglalaman ng product details at availability
- Ang AI ay nagmumungkahi ng alternatibo at bundling opportunities
User: Jennifer, Regional Manager
Layunin: Ihambing ang performance sa lahat ng tindahan
Natural Language Query:
"Ihambing ang sales ayon sa category para sa lahat ng tindahan sa nakaraang 6 na buwan"
Ano ang Nangyayari:
- Ang RLS context ay itinakda para sa regional manager access
- Ang kumplikadong multi-store query ay nabuo
- Ang data ay na-aggregate sa iba't ibang lokasyon ng tindahan
- Ang resulta ay naglalaman ng trends at comparisons
- Ang AI ay nagbibigay ng insights at recommendations
Ang ating implementasyon ay inuuna ang enterprise-grade security:
Ang PostgreSQL RLS ay nagsisiguro ng data isolation:
-- Store managers see only their store's data
CREATE POLICY store_manager_policy ON retail.orders
FOR ALL TO store_managers
USING (store_id = get_current_user_store());
-- Regional managers see multiple stores
CREATE POLICY regional_manager_policy ON retail.orders
FOR ALL TO regional_managers
USING (store_id = ANY(get_user_store_list()));Ang bawat MCP connection ay naglalaman ng:
- Store Manager ID: Natatanging identifier para sa RLS context
- Role Assignment: Permissions at access levels
- Session Management: Secure authentication tokens
- Audit Logging: Kumpletong access history
Maraming layer ng seguridad:
- Connection Encryption: TLS para sa lahat ng database connections
- SQL Injection Prevention: Parameterized queries lamang
- Input Validation: Comprehensive request validation
- Error Handling: Walang sensitibong data sa error messages
Pagkatapos makumpleto ang introduksyon na ito, dapat mong maunawaan:
✅ MCP Value Proposition: Paano binubuo ng MCP ang tulay sa pagitan ng AI assistants at totoong data
✅ Business Context: Mga pangangailangan at hamon ng Zava Retail
✅ Architecture Overview: Mga pangunahing bahagi at ang kanilang interaksyon
✅ Technology Stack: Mga tools at frameworks na ginamit
✅ Security Model: Multi-tenant data access at proteksyon
✅ Usage Patterns: Mga senaryo ng query sa totoong mundo at workflows
Handa ka na bang magpatuloy? Ipagpatuloy sa:
Lab 01: Core Architecture Concepts
Alamin ang mga pattern ng arkitektura ng MCP server, mga prinsipyo ng database design, at ang detalyadong teknikal na implementasyon na nagpapagana sa ating retail analytics solution.
- MCP Specification - Opisyal na dokumentasyon ng protocol
- MCP for Beginners - Komprehensibong gabay sa MCP
- FastMCP Documentation - Dokumentasyon ng Python SDK
- PostgreSQL Documentation - Kumpletong reference ng PostgreSQL
- pgvector Guide - Dokumentasyon ng vector extension
- Row Level Security - Gabay sa PostgreSQL RLS
- Azure OpenAI Documentation - AI service integration
- Azure Database for PostgreSQL - Managed database service
- Azure Container Apps - Serverless containers
Disclaimer: Ito ay isang learning exercise gamit ang kathang-isip na retail data. Palaging sundin ang data governance at security policies ng inyong organisasyon kapag nagpatupad ng katulad na solusyon sa production environments.
Paunawa:
Ang dokumentong ito ay isinalin gamit ang AI translation service na Co-op Translator. Bagama't sinisikap naming maging tumpak, mangyaring tandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o hindi pagkakatugma. Ang orihinal na dokumento sa kanyang katutubong wika ang dapat ituring na opisyal na sanggunian. Para sa mahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na dulot ng paggamit ng pagsasaling ito.