m

mcp价格守护者

@moongzee/mcp-price-monitor
0 Stars 39 次浏览 moongzee 更新于 2026-08-23

通过将数据库参考价格与G-Market实时价格进行比较来监控产品价格,并在价格下降时发送Slack通知。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Price Monitor MCP 服务器

概述

此项目是一个基于Model Context Protocol (MCP) 的价格监控服务器。它通过商品代码比较数据库基准价与G市场实时价格,并在价格下降时通过Slack发送通知。

  • 遵循MCP标准的服务器/工具/提示结构
  • 爬虫、价格比较、通知整个流程自动化
  • 支持Slack Webhook集成

主要功能

  1. 查询数据库基准价:通过商品代码从数据库中查询基准价格
  2. G市场实时价格爬取:利用Firecrawl API
  3. 价格比较及折扣率计算
  4. 价格下降时发送Slack通知
  5. 提供自动执行整个工作流的工具

文件夹结构

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进行摘要或分析请求

参考/文档


咨询/贡献

  • 如有任何疑问、发现错误或有扩展需求,请通过问题反馈!