亚马逊评论分析服务

一个基于FastMCP的服务器,提供亚马逊评论数据集分析和品牌提及统计功能,支持LLM解释结果。

  • by Harshalk2002
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Harshalk2002/-Amazon-Reviews-MCP-Server

使用说明

亚马逊评论MCP服务器(FastMCP)

这个仓库包含一个 模型上下文协议(MCP) 用(某种技术或语言)构建的服务器 FastMCP 这暴露了一个 amazon_reviews 数据集和用于分析品牌提及的工具。它还包括一个小型的Python演示客户端。

包含的内容

  • server.py — FastMCP 服务器暴露:
    • resource: amazon_reviews_csv (CSV文件的前~1MB)
    • tool: dataset_info() — 列与快速行数统计
    • tool: count_brand_mentions(brand, text_column=None, regex=False) — 统计提及次数
    • tool: sample_reviews_with_brand(brand, limit=5, text_column=None) — 示例代码片段
    • tool: explain_result_with_llm(brand, provider='openai'|'ollama', model=...) — 可选的大语言模型(LLM)解释
  • demo_client.py — 最小化的Python客户端,通过标准输入输出启动服务器并调用工具
  • requirements.txt

快速入门

  1. 放置数据集
    将您的CSV文件放在以下位置之一:

    • 同一个文件夹,命名为 amazon_reviews.csv, 或者
    • 设置一个环境变量:
      export AMAZON_REVIEWS_CSV=/absolute/path/to/amazon_reviews.csv
      
  2. 安装依赖项

    python -m venv .venv && source .venv/bin/activate
    pip install -r requirements.txt
    
  3. 运行服务器(用于检查)

    python server.py
    

    服务器通过标准输入输出(stdio)使用MCP协议进行通信;请使用兼容MCP的客户端或随附的演示程序。

  4. 运行演示客户端

    python demo_client.py Apple
    

    它将会:

    • 列出可用工具
    • 打电话;呼叫 count_brand_mentions("Apple")
    • 获取一些示例代码片段
    • (可选)如果已配置,则请大型语言模型(LLM)总结发现结果

可选:大型语言模型(LLM)解释

你可以要求服务器使用OpenAI或Ollama生成一段关于该指标的解释。

OpenAI

export OPENAI_API_KEY=sk-...
python demo_client.py Apple

演示调用 explain_result_with_llm(provider='openai', model='gpt-4o-mini') 通过服务器。

Ollama(本地)

# Ensure Ollama is running locally (defaults to http://localhost:11434)
# e.g., ollama run llama3.1
export OLLAMA_HOST=http://localhost:11434
python demo_client.py Apple

评分说明

  • FastMCP 用于定义MCP服务器(server.py)以及工具/资源。
  • 工具需求: count_brand_mentions(brand) 实现了品牌提及次数统计(默认不区分大小写,以单词边界为准;可切换至正则表达式)。
  • 演示: demo_client.py 通过标准输入输出(stdio)将MCP服务器作为子进程启动,并调用工具进行端到端的测试。

故障排除

  • 如果你看到 Dataset not found,设置 AMAZON_REVIEWS_CSV 或者将CSV文件放在旁边 server.py。
  • 如果你的数据集中的文本列不是 review_body服务器将自动检测可能的列 (例如。, reviewText, reviews.text等),或者你可以通过 text_column 明确地。