cafe-shop-mcp-agent
Cafe Shop MCP Agent — исчерпывающая документация
Обзор системы
Cafe Shop MCP Agent («Bean & Brew») — это продвинутая реализация экосистемы Model Context Protocol (MCP). Система состоит из двух независимых сервисов, которые безопасно взаимодействуют друг с другом по транспортному протоколу MCP streamable-http.
Система использует ReAct-агента на базе LangChain, работающего на AWS Bedrock, для обработки запросов на естественном языке, связанных с кофейней: агент запрашивает актуальные данные об остатках и оформляет заказы в базе данных PostgreSQL через MCP-сервер.
Related MCP server: @striderlabs/mcp-starbucks
1. Подробный разбор архитектуры
1.1 Клиентский интерфейс (client/)
Клиент выступает в роли пользовательского API и среды выполнения LangChain-агента.
Фреймворк: FastAPI
Оркестратор агента: LangGraph + LangChain (
create_agent)Механизм LLM: AWS Bedrock (
ChatBedrock)Постоянное хранение: LangGraph AsyncPostgresSaver (Checkpointer) для памяти на уровне потоков.
Интеграция промежуточного ПО:
SummarizationMiddleware: сжимает историю, превышающую 2000 токенов или 10 сообщений.PIIMiddleware: удаляет адреса электронной почты, маскирует номера кредитных карт и удаляет номера телефонов перед отправкой в Bedrock.HumanInTheLoopMiddleware: перехватывает вызов инструментаadd_orderдля явного подтверждения человеком перед выполнением.
1.2 MCP-сервер (mcp_server/)
Сервер безопасно предоставляет доменную логику и границы данных.
Фреймворк: FastMCP (
mcp.server.fastmcp)База данных: PostgreSQL (управляется через ORM SQLAlchemy).
Транспорт: HTTP SSE (
streamable-http).
2. Контракт API и поток данных
2.1 Конечная точка чата (клиент)
POST /api/v1/chat
Тело запроса (ChatRequest):
{
"message": "I'd like to order 2 Cappuccinos please.",
"mode": "normal",
"stream": false,
"thread_id": "user-session-id"
}Примечание: mode может принимать значения normal, structured или быть пустым. stream определяет, будет ли ответ в формате SSE или синхронным JSON.
Тело ответа (ChatResponse — обычный режим):
{
"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."
}
}(Если присутствует pending_approval, в следующем запросе поле message должно быть ровно «approve» или «reject» с тем же thread_id).
2.2 Схема базы данных (MCP-сервер)
База данных PostgreSQL состоит из 4 основных таблиц:
menu_items:menu_item_id(первичный ключ),name(уникальное),price(Numeric),stock_quantity(int),is_active(bool).orders:order_id(UUID, первичный ключ),order_sequence_id(BigInt, последовательность),customer_name(str),status(str).order_items: промежуточная таблица, связывающаяordersиmenu_itemsсо столбцомquantity.error_logs:log_id,error_code,message,source.
3. Привязки Model Context Protocol (MCP)
Сервер FastMCP явно регистрирует следующие компоненты. Клиент загружает их безусловно во время инициализации сеанса (load_session_context).
3.1 Инструменты (@mcp.tool())
Имя инструмента | Аргументы | Возвращаемое значение | Описание |
| Нет |
| Получает активные позиции меню ( |
|
|
| Возвращает статус заказа ( |
|
|
| Размещает заказ, генерирует идентификатор последовательности и уменьшает |
3.2 Промпты (@mcp.prompt())
brew_buddy_system: основные инструкции ReAct-агента, определяющие роль, цели, ограничения и формат вывода (с использованием XML-тегов<role>,<instructions>).order_confirmation(customer_name, items): формирует тёплый, оформленный чек-подтверждение.
3.3 Ресурсы (@mcp.resource())
menu://items: доступное только для чтения текстовое представление актуального меню и цен.store://info: статическая строка с часами работы магазина, адресом и правилами связи.
4. Настройка и этапы запуска
4.1 Предварительные требования
PostgreSQL, запущенный локально или через Docker.
Доступ к AWS Bedrock (настроенные учётные данные AWS).
Python 3.11+ и пакетный менеджер
uv.
4.2 Запуск MCP-сервера
Перейдите в mcp_server/, обновите файл .env, указав DB_HOST, DB_USER, DB_PASS и т. д., затем выполните:
uv sync
python main.pyЭто автоматически запускает миграции базы данных (create_tables.py) и заполняет базу стандартным кофейным меню, запуская FastMCP на порту 8000.
4.3 Запуск клиентского API
Перейдите в client/, обновите файл .env, указав учётные данные AWS и MCP-сервера (MCP_SERVER_URL=http://localhost:8000), затем выполните:
uv sync
python main.pyЭто запускает пользовательское приложение FastAPI на порту 8080.
4.4 Пример рабочего процесса
Пользователь запрашивает меню:
POST /api/v1/chat-> агент читает ресурсmenu://items.Пользователь размещает заказ:
POST /api/v1/chat-> агент вызываетadd_order. Промежуточное ПО HITL прерывает выполнение и возвращаетpending_approval.Пользователь подтверждает:
POST /api/v1/chat(сообщение: «approve», тот же thread_id) -> клиент возобновляет состояние чекпойнтера LangGraph -> инструмент выполняется на MCP-сервере -> остатки в БД уменьшаются.
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