cafe-shop-mcp-agent
Cafe Shop MCP Agent - Ausführliche Dokumentation
Systemübersicht
Der Cafe Shop MCP Agent („Bean & Brew") ist eine fortschrittliche Implementierung des Model Context Protocol (MCP)-Ökosystems. Er besteht aus zwei eigenständigen Diensten, die sicher über das MCP-streamable-http-Transportprotokoll kommunizieren.
Das System verwendet einen auf LangChain basierenden ReAct-Agenten, der auf AWS Bedrock läuft, um natürliche Sprachbefehle für den Coffeeshop zu verarbeiten, Live-Bestände abzufragen und Bestellungen über den MCP-Server gegen eine PostgreSQL-Datenbank auszuführen.
Related MCP server: @striderlabs/mcp-starbucks
1. Architektur im Detail
1.1 Die Client-Schnittstelle (client/)
Der Client fungiert als benutzerorientierte API und als Ausführungsumgebung für den LangChain-Agenten.
Framework: FastAPI
Agent-Orchestrator: LangGraph + LangChain (
create_agent)LLM-Engine: AWS Bedrock (
ChatBedrock)Persistenz: LangGraph AsyncPostgresSaver (Checkpointer) für Thread-Level-Speicher.
Middleware-Integration:
SummarizationMiddleware: Komprimiert den Verlauf über 2000 Tokens oder 10 Nachrichten hinaus.PIIMiddleware: Schwärzt E-Mails, maskiert Kreditkarten und schwärzt Telefonnummern, bevor sie an Bedrock gesendet werden.HumanInTheLoopMiddleware: Unterbricht denadd_order-Toolaufruf zur expliziten menschlichen Genehmigung vor der Ausführung.
1.2 Der MCP-Server (mcp_server/)
Der Server stellt Domänenlogik und Datenbegrenzungen sicher bereit.
Framework: FastMCP (
mcp.server.fastmcp)Datenbank: PostgreSQL (verwaltet über SQLAlchemy ORM).
Transport: HTTP SSE (
streamable-http).
2. API-Vertrag und Datenfluss
2.1 Chat-Endpunkt (Client)
POST /api/v1/chat
Anfrage-Payload (ChatRequest):
{
"message": "I'd like to order 2 Cappuccinos please.",
"mode": "normal",
"stream": false,
"thread_id": "user-session-id"
}Hinweis: mode kann normal, structured oder leer sein. stream bestimmt, ob die Antwort SSE oder synchrones JSON ist.
Antwort-Payload (ChatResponse - Normalmodus):
{
"message": "I have set up your order for 2 Cappuccinos. Before I finalize it, do you approve?",
"structured_output": null,
"stream_chunks": null,
"pending_approval": {
"tool": "add_order",
"args": {"customer_name": "Guest", "items": [{"item_name": "Cappuccino", "quantity": 2}]},
"description": "Tool add_order requires approval."
}
}(Wenn pending_approval vorhanden ist, muss die message der nächsten Anfrage genau „approve" oder „reject" lauten, mit derselben thread_id).
2.2 Datenbankschema (MCP-Server)
Die PostgreSQL-Datenbank besteht aus 4 Haupttabellen:
menu_items:menu_item_id(PK),name(eindeutig),price(Numeric),stock_quantity(int),is_active(bool).orders:order_id(UUID PK),order_sequence_id(BigInt Seq),customer_name(str),status(str).order_items: Verknüpfungstabelle, dieordersundmenu_itemsmit einerquantity-Spalte verbindet.error_logs:log_id,error_code,message,source.
3. Model Context Protocol (MCP)-Bindungen
Der FastMCP-Server registriert explizit die folgenden Komponenten. Der Client lädt diese bedingungslos während der Sitzungsinitialisierung (load_session_context).
3.1 Tools (@mcp.tool())
Tool Name | Arguments | Returns | Description |
| None |
| Ruft aktive Menüpunkte ( |
|
|
| Gibt den Bestellstatus ( |
|
|
| Platziert Bestellung, generiert Sequenz-ID und reduziert den Lagerbestand |
3.2 Prompts (@mcp.prompt())
brew_buddy_system: Die primären ReAct-Agentenanweisungen formatieren Rolle, Ziele, Einschränkungen und Ausgabeformat (unter Verwendung von XML-Tags<role>,<instructions>).order_confirmation(customer_name, items): Generiert eine warme, formatierte Bestellbestätigung.
3.3 Ressourcen (@mcp.resource())
menu://items: Schreibgeschützter Text-Dump des Live-Menüs und der Preise.store://info: Statischer String mit Öffnungszeiten, Standort und Kontaktrichtlinien.
4. Einrichtung und Ausführungsschritte
4.1 Voraussetzungen
PostgreSQL, lokal oder über Docker ausgeführt.
AWS-Bedrock-Zugriff (AWS-Anmeldeinformationen konfiguriert).
Python 3.11+ und der Paketmanager
uv.
4.2 MCP-Server starten
Navigieren Sie zu mcp_server/, aktualisieren Sie Ihre .env mit DB_HOST, DB_USER, DB_PASS usw. und führen Sie aus:
uv sync
python main.pyDies löst automatisch Datenbankmigrationen (create_tables.py) aus und befüllt das Standard-Kaffeemenü, wobei FastMCP auf Port 8000 gestartet wird.
4.3 Client-API starten
Navigieren Sie zu client/, aktualisieren Sie Ihre .env mit AWS- und MCP-Server-Anmeldeinformationen (MCP_SERVER_URL=http://localhost:8000) und führen Sie aus:
uv sync
python main.pyDies startet die benutzerorientierte FastAPI-Anwendung auf Port 8080.
4.4 Beispiel-Workflow
Benutzer fragt nach Menü:
POST /api/v1/chat-> Agent liest Ressourcemenu://items.Benutzer gibt Bestellung auf:
POST /api/v1/chat-> Agent ruftadd_orderauf. HITL-Middleware unterbricht und gibtpending_approvalzurück.Benutzer genehmigt:
POST /api/v1/chat(message: „approve", gleiche thread_id) -> Client setzt LangGraph-Checkpointer-Zustand fort -> Tool wird auf MCP-Server ausgeführt -> DB-Bestand reduziert.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Let AI agents query data and act across all your business apps via MCP.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Connect e-commerce and marketing data to AI assistants via MCP.
Related MCP Servers
- FlicenseBqualityCmaintenanceAn MCP adapter that maps Coffee Company B2B HTTP APIs to MCP tools, allowing AI agents to query member information, benefits, coupons, and payment statuses. It enables seamless integration for AI assistants to manage coffee-related customer assets and loyalty details through natural language.101
- AlicenseAqualityDmaintenanceMCP server for Starbucks — let AI agents search the menu, customize drinks, find stores, place mobile pickup orders, and manage Starbucks Rewards.16141MIT
- AlicenseNot gradedqualityCmaintenanceEnables cataloging and managing personal inventory (items, attachments) through natural language, allowing users to add, search, update, and retrieve item details and attachments via MCP tools.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables coffee shop order management via MCP, including menu lookup, order creation, and status tracking.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rizhwan05/cafe-shop-mcp-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server