使用说明
项目简介
该项目是一个基于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文件,方便用户进行报告生成或进一步分析。
安装步骤
- 克隆仓库:
git clone https://github.com/Jinksi/llm-stripe-restricted-product-classifier.git cd llm-stripe-restricted-product-classifier - 配置环境变量:
- 复制 '.env.example' 文件为 '.env'。
- 在 '.env' 文件中填入你的 OpenAI API Key:
OPENAI_API_KEY=你的OpenAI API Key
- 安装依赖:
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' 替换为实际的本地路径。
基本使用方法
- 运行产品检测:
- 使用以下命令检测指定网站的产品是否违反Stripe政策 (将 'example.com' 替换为你要检测的网站域名):
npm start example.com - 或者检测CSV文件中列出的多个网站 (CSV文件需要包含 'url' 列):
npm run check-csv-accounts ./csv/accounts.csv
- 使用以下命令检测指定网站的产品是否违反Stripe政策 (将 'example.com' 替换为你要检测的网站域名):
- 查看检测结果:
- 运行以下命令查看所有检测到的违规信息:
npm run show - 运行以下命令将产品和网站的违规信息导出为CSV文件:
npm run export
- 运行以下命令查看所有检测到的违规信息:
- 使用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'。
信息
分类
商业系统