mcp价格守护者
通过将数据库参考价格与G-Market实时价格进行比较来监控产品价格,并在价格下降时发送Slack通知。
服务介绍
Price Monitor MCP 服务器
概述
此项目是一个基于Model Context Protocol (MCP) 的价格监控服务器。它通过商品代码比较数据库基准价与G市场实时价格,并在价格下降时通过Slack发送通知。
- 遵循MCP标准的服务器/工具/提示结构
- 爬虫、价格比较、通知整个流程自动化
- 支持Slack Webhook集成
主要功能
- 查询数据库基准价:通过商品代码从数据库中查询基准价格
- G市场实时价格爬取:利用Firecrawl API
- 价格比较及折扣率计算
- 价格下降时发送Slack通知
- 提供自动执行整个工作流的工具
文件夹结构
price_monitor_mcp/
├── src/
│ └── price_monitor_mcp.py # MCP 서버 메인 코드
├── mcp_client.py # MCP 클라이언트 코드
├── README.md
└── .env # 환경변수
运行方法
1. 准备虚拟环境并安装包
conda activate price_monitor_mcp
pip install -r requirements.txt
# 또는 필요한 경우
pip install mcp firecrawl requests python-dotenv psycopg2-binary pydantic
2. 设置环境变量
在.env文件中设置如下环境变量,例如Slack Webhook等。
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
DB_HOST=...
DB_PORT=...
DB_NAME=...
DB_USER=...
DB_PASSWORD=...
3. 启动MCP服务器
mcp run src/price_monitor_mcp.py
- 或者使用开发工具运行:
mcp dev src/price_monitor_mcp.py - 或者通过shell脚本激活conda环境后运行
MCP 工具/提示列表
get_db_price(product_code): 查询数据库基准价crawl_gmarket_price(product_code): 爬取G市场实时价格send_slack_alert(message): 发送Slack通知monitor_price_workflow(product_code): 自动执行整个过程(推荐)monitor_price(product_code): 提示(用于LLM)
自动执行整个过程(推荐)
调用工作流工具示例
在MCP dev工具/客户端中:
- 选择
monitor_price_workflow工具,输入product_code后运行 - 结果:返回数据库价格、最低价、价格差、折扣率、是否发送Slack通知等信息
Python客户端示例
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def main():
server_params = StdioServerParameters(
command="python",
args=["src/price_monitor_mcp.py"],
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("monitor_price_workflow", arguments={"product_code": "ULCK25151"})
print("워크플로우 결과:", result)
if __name__ == "__main__":
asyncio.run(main())
Slack通知测试
- 如果正确设置了Slack Webhook,则在价格下降时会自动发送通知。
- 可以自由修改
send_slack_alert函数中的消息格式
LLM(Claude, GPT等)集成
- 当Claude、GPT等官方支持连接MCP服务器的功能时,可以通过自然语言来执行提示/工具
- 目前需要通过MCP客户端代码接收结果,然后粘贴给LLM进行摘要或分析请求
参考/文档
- MCP Python SDK官方文档
- Firecrawl、Slack API、数据库等需根据各自环境配置
咨询/贡献
- 如有任何疑问、发现错误或有扩展需求,请通过问题反馈!