使用说明

项目简介

该项目是一个基于LLM和Model Context Protocol (MCP) 的应用,旨在帮助电商网站(特别是使用WooCommerce的站点)检测其销售的产品是否违反了Stripe的禁限售业务政策。它通过抓取网站的商品数据,利用LLM进行违规风险评估,并将结果存储在本地SQLite数据库中。更重要的是,该项目实现了MCP服务器功能,允许用户通过支持MCP协议的客户端(如Cursor编辑器或Goose CLI)使用自然语言查询和分析产品违规数据。

主要功能点

  • 产品违规检测: 自动抓取WooCommerce网站的产品信息,并使用LLM模型(如gpt-4o-mini)判断产品是否违反Stripe的禁限售业务政策。
  • 详细的违规原因: 对于每个被判定为违规的产品,系统会给出具体的违规原因,帮助用户理解和整改。
  • SQLite数据库存储: 检测结果被存储在本地SQLite数据库中,方便用户进行数据管理和分析。
  • MCP服务器接口: 内置MCP服务器功能,允许用户通过MCP客户端以自然语言查询数据库中的产品违规信息。
  • 支持多种LLM模型: 使用Vercel AI SDK,可以方便地切换不同的LLM模型,包括OpenAI的gpt-4o-mini和本地模型。
  • 数据导出: 支持将产品违规数据导出为CSV文件,方便用户进行报告生成或进一步分析。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Jinksi/llm-stripe-restricted-product-classifier.git
    cd llm-stripe-restricted-product-classifier
  2. 配置环境变量:
    • 复制 '.env.example' 文件为 '.env'。
    • 在 '.env' 文件中填入你的 OpenAI API Key:
      OPENAI_API_KEY=你的OpenAI API Key
  3. 安装依赖:
    npm install

服务器配置 (MCP客户端)

要通过MCP客户端(如Cursor或Goose CLI)连接到该MCP服务器,你需要配置客户端的MCP Server设置。以下是配置信息,请根据你使用的客户端类型进行配置:

对于 Cursor 编辑器:

在 Cursor 设置中,添加新的 MCP Server,配置信息如下:

{
  "server name": "sqlite-product-violations",
  "type": "command",
  "command": "uv",
  "args": [
    "--directory",
    "/PATH_TO/mcp-servers/src/sqlite", //  将 "/PATH_TO/mcp-servers" 替换为 modelcontextprotocol/servers 仓库的本地路径
    "run",
    "mcp-server-sqlite",
    "--db-path",
    "/PATH/TO/stripe-restricted-product-classifier/db/db.sqlite" // 将 "/PATH/TO/stripe-restricted-product-classifier" 替换为当前仓库的本地路径
  ]
}

配置参数说明:

  • '"server name"': MCP 服务器的名称,可以自定义,如 "sqlite-product-violations"。
  • '"type"': 连接类型,这里使用 "command" 表示通过命令行启动服务器。
  • '"command"': 启动服务器的命令,这里使用 'uv',你需要先安装 'uv' (参考README)。
  • '"args"': 传递给 'uv' 命令的参数列表:
    • '"--directory"': 指定 'mcp-server-sqlite' 脚本所在的目录,这里指向 'modelcontextprotocol/servers' 仓库中 'sqlite' 服务器的源代码目录。你需要将 '/PATH_TO/mcp-servers' 替换为你本地克隆的 'modelcontextprotocol/servers' 仓库的绝对路径。
    • '"run"': 'uv' 命令的子命令,表示运行 Python 脚本。
    • '"mcp-server-sqlite"': 要运行的 Python 脚本名称,即 'mcp-server-sqlite.py'。
    • '"--db-path"': 'mcp-server-sqlite' 脚本的参数,指定 SQLite 数据库文件的路径。你需要将 '/PATH/TO/stripe-restricted-product-classifier' 替换为你当前克隆的 'llm-stripe-restricted-product-classifier' 仓库的绝对路径,确保指向到 'db/db.sqlite' 文件。

对于 Goose CLI:

编辑 '~/.config/goose/config.yaml' 文件,在 'extensions' 下添加如下配置 (或者使用 'goose configure → Add Extension → Command-line Extension' 命令进行配置):

extensions:
  sqlite-product-violations:
    enabled: true
    name: sqlite-product-violations
    type: stdio
    cmd: uv
    args:
      - --directory
      - /PATH_TO/mcp-servers/src/sqlite" #  将 "/PATH_TO/mcp-servers" 替换为 modelcontextprotocol/servers 仓库的本地路径
      - run
      - mcp-server-sqlite
      - --db-path
      - /PATH/TO/stripe-restricted-product-classifier/db/db.sqlite" # 将 "/PATH_TO/stripe-restricted-product-classifier" 替换为当前仓库的本地路径
    envs: {}

配置参数说明:

与 Cursor 的配置类似,你需要将 '/PATH_TO/mcp-servers/src/sqlite' 和 '/PATH/TO/stripe-restricted-product-classifier/db/db.sqlite' 替换为实际的本地路径。

基本使用方法

  1. 运行产品检测:
    • 使用以下命令检测指定网站的产品是否违反Stripe政策 (将 'example.com' 替换为你要检测的网站域名):
      npm start example.com
    • 或者检测CSV文件中列出的多个网站 (CSV文件需要包含 'url' 列):
      npm run check-csv-accounts ./csv/accounts.csv
  2. 查看检测结果:
    • 运行以下命令查看所有检测到的违规信息:
      npm run show
    • 运行以下命令将产品和网站的违规信息导出为CSV文件:
      npm run export
  3. 使用MCP客户端查询数据:
    • 启动MCP客户端 (Cursor 或 Goose CLI)。

    • 在客户端中,选择配置好的 "sqlite-product-violations" MCP服务器。

    • 使用自然语言提问来查询产品违规数据。 例如:

      • "请列出所有有产品违规的网站"
      • "展示example.se网站的所有违规产品及其违规原因"
      • "哪些产品违反了 'illegal' 类别?"
    • MCP客户端会将你的自然语言问题转换为SQL查询,并在SQLite数据库中执行,然后将结果返回给你。你可以像与数据库专家对话一样,使用自然语言探索和分析产品违规数据。

注意: 你需要先克隆 modelcontextprotocol/servers 仓库到本地,并根据你的实际路径替换配置信息中的 '/PATH_TO/mcp-servers' 和 '/PATH/TO/stripe-restricted-product-classifier'。

信息

分类

商业系统