Token导航 LogoToken导航TokenDH.com
MCP Pizza logo
AI代理stdio官方级别未说明来源级核验

MCP Pizza

MCP Server

一个教育性质的MCP协议服务器,演示了与Domino's API集成的AI驱动披萨订购流程,适用于学习MCP协议实现和API集成。

工具数

12

提示词数

0

GitHub Stars

0

资源数

0
教育工具PythonClaudeAI驱动Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dshanklin-bv

提供方

dshanklin-bv

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python test_mcp_with_ollama.py

详细介绍

🍕 MCPizza-增强型

一个教育MCP(模型上下文协议)服务器,演示了AI驱动的披萨订购与Domino的API集成。

⚠️ 重要:这个项目是为了 仅用于教育目的.虽然它与Domino的真正的API集成,但实际的订单放置被CAPTCHA要求阻止。看 局限性 了解详情。

鸣谢

该项目基于 GrahamMcBain/mcpizza,具有显著增强功能:

原始项目

  • 作者:格雷厄姆·麦克贝恩
  • 目的:教育性MCP协议演示
  • 设计:安全模式订购,无需实际放置

我们的增强功能

  • 真正的API集成 -实际上调用Domino的定价和验证API
  • 披萨定制 - add_pizza_with_toppings 用于正确配置优惠券+配料的工具
  • 交互日志记录 -用于所有MCP交互的完整双向记录系统
  • 优惠券发现 - get_couponsget_ordering_guidance 工具
  • 增强的错误处理 -详细的错误报告和验证
  • 综合文档 -WORKFLOW.md,附带分步说明

这个项目展示了什么

  1. MCP协议集成 -模型上下文协议的全面实现
  2. 现实世界API交互 -与Domino的非官方API集成
  3. 复杂工具编排 -12个工具协同工作,实现多步骤工作流程
  4. 状态管理 -跨工具调用的订单状态管理
  5. 错误处理 -优雅地处理API验证和错误

特性

商店和菜单工具

  • 📍 find_stores -按地址或邮政编码查找附近的达美乐
  • 🏪 get_store_info -详细的店铺信息和营业时间
  • 📋 get_menu -包含类别的完整菜单
  • 🔍 search_menu -搜索特定项目
  • 🎉 get_coupons -发现可用的优惠和优惠券

订购工具

  • 📝 create_order -初始化新订单
  • 🍕 add_pizza_with_toppings -添加带配料的定制披萨(新增!)
  • add_item_to_order -添加任何菜单项
  • 👁️ view_order -预览订单详细信息和定价
  • 🗑️ clear_order -清除当前订单
  • 💳 place_order -尝试下订单(被验证码阻止)

指导工具

  • 🎯 get_ordering_guidance -基于人工智能的交易建议(新增!)

安装

先决条件

设置

# Clone the repository
git clone https://github.com/dshanklin-bv/mcp-pizza.git
cd mcp-pizza

# Install dependencies
uv pip install -e .

Claude桌面集成

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pizza": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-pizza",
        "run",
        "mcpizza"
      ]
    }
  }
}

用法

工作流.md 获取完整的订购工作流程文档。

基础示例

1. Find stores: "find pizza stores near 76104"
2. Get coupons: "what deals are available at store 8022?"
3. Get guidance: "I want a deep dish sausage and pepperoni pizza"
4. Create order: Create order with your details
5. Add pizza: Use add_pizza_with_toppings with coupon code
6. View order: Review pricing and details
7. (Optional) Place order: Will be blocked by CAPTCHA

建筑

代码库遵循一个干净的、模块化的架构,关注点分离:

mcp-pizza/
├── mcpizza/
│   ├── server.py          # Main MCP server (303 lines, down from 1308!)
│   ├── logger.py          # Interaction logging system
│   ├── __main__.py        # Entry point
│   │
│   ├── models/            # Pydantic parameter models
│   │   └── params.py      # Tool parameter definitions
│   │
│   ├── services/          # Business logic layer
│   │   ├── store_service.py     # Store lookup & menu browsing
│   │   ├── order_service.py     # Order creation & management
│   │   ├── payment_service.py   # Payment processing
│   │   └── guidance_service.py  # AI ordering guidance
│   │
│   ├── tools/             # MCP tool handlers
│   │   ├── store_tools.py       # Store-related tools
│   │   ├── menu_tools.py        # Menu-related tools
│   │   ├── order_tools.py       # Order-related tools
│   │   └── guidance_tools.py    # Guidance tools
│   │
│   ├── api/               # Domino's API client
│   │   ├── endpoints.py         # API endpoint constants
│   │   └── client.py            # HTTP client wrapper
│   │
│   └── utils/             # Utilities
│       └── mock_order.py        # Mock order object creation
│
├── tests/                 # Comprehensive test suite (18 tests)
│   ├── test_models.py     # Model validation tests
│   ├── test_utils.py      # Utility function tests
│   ├── test_api_client.py # API client tests
│   └── test_services.py   # Service layer tests
│
├── examples/              # Example scripts
│   └── test_mcp_with_ollama.py  # Autonomous testing
│
├── logs/                  # Interaction logs (gitignored)
├── WORKFLOW.md            # Complete workflow documentation
└── README.md              # This file

这种架构的好处

  1. 可维护性:每个模块都有一个单一的职责
  2. 可测试性:服务和公用设施易于进行单元测试
  3. 可读性:MCP层、业务逻辑和API调用之间的清晰分离
  4. 可扩展性:易于添加新工具或服务
  5. 可重复使用性:服务可以在MCP上下文之外重用

日志记录

所有MCP交互都会自动记录到 logs/interactions_YYYYMMDD.log:

  • 带有完整参数的工具调用
  • 带有预览的工具响应
  • 状态更改(订单创建、添加项目)
  • 上下文错误

日志格式为JSON,便于解析和分析。

局限性

验证码要求

Domino的API需要CAPTCHA验证才能下订单。我们的系统成功:

  • ✅ 验证披萨配置
  • ✅ 订单价格正确(例如,中等2对价11.90美元)
  • ✅ 接受付款结构
  • 无法提交最终订单 (被封锁 recaptchaVerificationRequired)

这是达美乐和 无法绕过 而不违反他们的服务条款。

什么起作用

  • 店铺查找和菜单浏览
  • 优惠券发现和交易分析
  • 订单验证和定价
  • 完成订单准备
  • 所有MCP协议功能

什么不起作用

  • 最终订单提交(需要验证码)
  • 真实支付处理

发展

测试

# Run autonomous test suite (tests all tools except order placement)
python test_mcp_with_ollama.py

贡献

这是一个演示MCP协议集成的教育项目。欢迎为提高教育价值做出贡献!

技术细节

  • MCP-SDK:官方模型上下文协议SDK
  • API库:pizzapi(Domino的API非官方包装)
  • 订单结构:具有实际API调用的模拟订单对象
  • 验证:多步骤验证(结构→ 定价→ 位置)

免责声明

⚠️ 仅供教育使用

本项目旨在学习:

  • 模型上下文协议实现
  • 现实世界API集成
  • 多工具编排
  • AI助手中的状态管理

不要用于实际的披萨订购。 请使用Domino的官方网站或移动应用程序。

许可证

MIT许可证

基于 GrahamMcBain/mcpizza (MIT许可证)

致谢

  • 格雷厄姆·麦克贝恩 -原始mcpizza项目和MCP实施
  • pizza贡献者 -非正式Domino的API包装器
  • Anthropic -模型上下文协议规范

______________________________________________________________________

使用克劳德代码构建🤖

目录标签

目录标签

教育工具PythonClaudeAI驱动本地部署MCP协议API集成披萨订购

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP