葡萄酒顾问MCP
使用模型上下文协议(MCP)构建的ChatGPT应用程序,提供有关法国著名葡萄酒的专家信息。此MCP服务器使ChatGPT能够搜索葡萄酒,提供详细信息,并提供食物搭配建议。
特性
- 葡萄酒搜索:按名称、地区、品种、品酒笔记和食物搭配搜索25种著名的法国葡萄酒
- 详细信息:获取全面的葡萄酒详细信息,包括生产商、年份、品酒笔记和帕克评分
- 食物搭配建议:获得每款葡萄酒的专家食物搭配建议
- 两种实施方法:以主要工具为中心的设计和连接器模式实施
- 苏格兰和南方能源公司运输:用于无缝ChatGPT集成的服务器发送事件传输
快速开始
先决条件
- Python 3.8+
- 点
安装与运行
cd wine-consultant-mcp
pip install -r requirements.txt
uvicorn src.main:mcp.app --host 0.0.0.0 --port 8000替代连接器实现
cd wine-consultant-mcp
uvicorn src.connector_main:mcp.app --host 0.0.0.0 --port 8000MCP检验员测试
npx @modelcontextprotocol/inspector@latest项目结构
.
├── wine-consultant-mcp/ # Main MCP server implementation
│ ├── src/
│ │ ├── main.py # Tool-focused MCP server (recommended)
│ │ └── connector_main.py # Connector pattern implementation
│ ├── data/
│ │ ├── french_wines_10.json # Starter dataset (10 wines)
│ │ └── french_wines.json # Full dataset (25 wines)
│ ├── test_expanded_data.py # Test suite
│ └── requirements.txt # Python dependencies
├── documentation/ # OpenAI Apps SDK reference docs (12 files)
├── memory-bank/ # Development history and implementation notes
├── tests/ # Additional test files
└── CLAUDE.md # Architecture guide and development instructions葡萄酒数据集
该项目包括两个法国葡萄酒数据集:
- 法语_中文_10.json:10款著名葡萄酒的入门数据集
- french_wines.json:包含25种著名葡萄酒的扩展数据集
每款葡萄酒包括:
- 基本信息(名称、地区、类型、品种、酒精含量)
- 品酒笔记和特点
- 食物搭配建议
- 商业细节(价格、帕克评分)
- 历史信息(生产商、成立年份、分类、年份)
- 元数据(图像URL、来源、最后更新时间)
MCP工具
主要实现(Main.py)
- search_wines(查询,过滤类型):按各种标准搜索葡萄酒
- get_wine_details(葡萄酒名称):获取完整的葡萄酒信息
- 推荐预订(wine_name):获取食物搭配建议
连接器实现(Connector_main.py)
- 搜索(查询):返回ID/title/URL格式的搜索结果
- fetch(id):以格式化文本的形式获取完整的葡萄酒信息
文档
发展
添加新葡萄酒
在中编辑JSON文件 wine-consultant-mcp/data/:
- 验证JSON语法
- 确保所有必填字段都存在
- 重新启动MCP服务器以重新加载数据
使用ChatGPT进行测试
- 在本地运行MCP服务器
- 使用ngrok公开HTTPS端点:
ngrok http 8000 - 在ChatGPT中:设置→ 应用程序和连接器→ 开发者模式
- 使用ngrok URL创建连接器+
/sse路径 - 使用自然语言提示进行测试,例如“找到一款与羊肉搭配得很好的葡萄酒”
技术栈
- FastMCP (>=0.9.0):MCP服务器框架
- Uvicorn (>=0.24.0):ASGI服务器
- Python何塞 (>=3.3.0):OAuth/JWT处理
- 请求: (>=2.31.0):HTTP客户端
建筑
此MCP服务器使用:
- SSE(服务器发送事件) ChatGPT兼容性传输
- 内存数据存储 用于快速访问(适用于小型数据集)
- JSON 模式 参数验证的类型提示
- 工具发现 通过文档字符串和类型注释
有关详细的架构决策和模式,请参阅 CLAUDE.md.
许可证
\[在此处添加您的许可证\]
贡献
欢迎投稿!请阅读中的开发工作流程 CLAUDE.md 在提交pull请求之前。
