WooCommerce MCP服务器

一个用于连接WooCommerce商店与Model Context Protocol的Python服务器,提供全面的产品、订单、客户、运输、税收、折扣和商店配置管理工具。

  • by Slava12233
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 slava12233/woo-mcp-server

使用说明

🛒 WooCommerce MCP服务器| Python版

使用 Model Context Protocol 连接 WooCommerce 商店的简单高效解决方案

🇺🇸 英文版 | 🇮🇱 中文版本

📌 那是什么?

模型上下文协议(MCP)服务器,可通过WordPress REST API与WooCommerce商店完全集成。该库提供了全面的工具来管理产品,订单,客户,运输,税收,折扣和商店配置的各个方面。

🚀 快速安装

# שלב 1: שכפל את הרפוזיטורי
git clone https://github.com/yourusername/woocommerce-mcp-server.git
cd woocommerce-mcp-server

# שלב 2: התקן תלויות
pip install -r requirements.txt

# שלב 3: הגדר משתני סביבה (ראה הסבר בהמשך)

☁️ 发布在Railway

服务器已准备好立即在平台上部署 铁路:

# שלב 1: שכפל את הרפוזיטורי לחשבון GitHub שלך

# שלב 2: היכנס ל-Railway והתחבר עם חשבון GitHub
# https://railway.app/

# שלב 3: לחץ על "New Project" ובחר "Deploy from GitHub repo"

# שלב 4: בחר את הרפוזיטורי המשוכפל

# שלב 5: הגדר את משתני הסביבה הבאים:
# - WORDPRESS_SITE_URL
# - WOOCOMMERCE_CONSUMER_KEY
# - WOOCOMMERCE_CONSUMER_SECRET
# - WORDPRESS_USERNAME (אופציונלי)
# - WORDPRESS_PASSWORD (אופציונלי)
# - MCP_HOST=0.0.0.0
# - MCP_PORT=8000

# שלב 6: המתן לסיום הבנייה והפריסה

铁路的优势:

  • 🔄 自动从GitHub发布
  • 🔒 自动 SSL
  • 📊 内置监控和逻辑
  • 🔍 内置免费域名(railway.app子域名)
  • ⚡ 根据需要自动缩放

⚙️ 配置

必须创建文件 .env 在项目的基本文件夹中包含以下详细信息:

WORDPRESS_SITE_URL=https://your-wordpress-site.com
WOOCOMMERCE_CONSUMER_KEY=your-woocommerce-consumer-key
WOOCOMMERCE_CONSUMER_SECRET=your-woocommerce-consumer-secret
WORDPRESS_USERNAME=your-wordpress-username
WORDPRESS_PASSWORD=your-wordpress-password

环境变量

变化 描述 需要
WORDPRESS_SITE_URL 您的网站地址(WooCommerce是WordPress插件) ✅
WOOCOMMERCE_CONSUMER_KEY 使用 WooCommerce REST API✅
WOOCOMMERCE_CONSUMER_SECRET WooCommerce REST API功能✅
WORDPRESS_USERNAME 具有相应权限的WordPress用户名 ⚠️ *
WORDPRESS_PASSWORD WordPress密码验证⚠️ *

* 只需要WordPress API方法

🔐 验证选项

WooCommerce 认证

访问WooCommerce API需要用户密钥,可以在WordPress控制面板下创建WooCommerce→设置→高级→REST API。

WordPress认证

对于特定于WordPress的方法(如帖子管理),您必须提供:

  • 基本身份验证用户名/密码
  • WordPress REST API 必须在您的网站上启用

🔄 API 方法

它支持WordPress和WooCommerce API。下面是按类别分类的可用方法列表:

WordPress内容管理

这些方法需要 WordPress 用户名/密码验证,并且独立于 WooCommerce API。

方法 描述
create_post 创建一个新的WordPress文章
get_posts 从WordPress获取文章
update_post WordPress更新已有
get_post_meta 获取邮件的元数据
update_post_meta 更新Post的元数据
create_post_meta 创建Post的元数据
delete_post_meta 删除Post的元数据

WooCommerce 产品

方法 描述
get_products 获取产品列表。
get_product 按标识符获取单个产品。
create_product 创建一个新产品。
update_product 更新已有产品
delete_product 删除产品。
get_product_meta 获取产品元数据。
create_product_meta 创建/更新产品元数据
update_product_meta 更新产品元数据
delete_product_meta 删除产品元数据

产品类别

方法 描述
get_product_categories 获取产品类别。
get_product_category 获取单个产品类别
create_product_category 创建一个新的产品类别
update_product_category 更新产品类别
delete_product_category 删除产品类别

产品标签

方法 描述
get_product_tags 获取产品标签。
get_product_tag 获得单个产品标签。
create_product_tag 创建新产品标签
update_product_tag 更新产品标签
delete_product_tag 删除产品标签

产品特点

方法 描述
get_product_attributes 获取产品特性。
get_product_attribute 获得单个产品特征。
create_product_attribute 创建一个新产品。
update_product_attribute 更新产品特性。
delete_product_attribute 删除产品特征。
get_attribute_terms 获取特征。
get_attribute_term 取一个单一的特征。
create_attribute_term 创建一个新特征。
update_attribute_term 更新一个特征。
delete_attribute_term 删除一个特征。

产品变化

方法 描述
get_product_variations 获取产品变体。
get_product_variation 获得单个产品的变体。
create_product_variation 创建新产品版本。
update_product_variation 更新产品版本。
delete_product_variation 删除产品变体。
batch_update_product_variations 更新一组产品变体。

订单评论

方法 描述
get_order_notes 订购评论。
get_order_note 收到单个订单。
create_order_note 创建一个新的订单。
delete_order_note 删除订单注释。

退回订单

方法 描述
get_order_refunds 收回订单。
get_order_refund 单个订单退款。
create_order_refund 创建一个新的订单。
update_order_refund 更新订单退款
delete_order_refund 取消订单退款。

WooCommerce 客户

方法 描述
get_customers 获取客户名单。
get_customer 按 ID 获取单个客户。
create_customer 创建新客户
update_customer 更新现有客户端
delete_customer 删除客户端
get_customer_meta 获取客户元数据。
create_customer_meta 创建/更新客户元数据
update_customer_meta 更新客户端元数据
delete_customer_meta 删除客户元数据

送货

方法 描述
get_shipping_zones 接收送货区
get_shipping_zone 获得单个送货区
create_shipping_zone 建立新的送货区
update_shipping_zone 更新送货区
delete_shipping_zone 删除送货区
get_shipping_methods 获取送货方式。
get_zone_shipping_methods 获取区域交付方式
get_zone_shipping_method 获取特定区域的送货方式
create_zone_shipping_method 创建一个新的交付方式。
update_zone_shipping_method 更新送货方式。
delete_zone_shipping_method 从区域删除送货方式
get_shipping_zone_locations 获取配送区域的位置
update_shipping_zone_locations 更新送货区域的位置

税务

方法 描述
get_tax_classes 获取税务类别。
create_tax_class 创建新的税务类别
delete_tax_class 删除税务类别
get_tax_rates 获得税率。
get_tax_rate 单人课税。
create_tax_rate 创建新的税率
update_tax_rate 税率更新。
delete_tax_rate 取消课税。
batch_update_tax_rates 更新税率。

折扣/优惠券

方法 描述
get_coupons 获取优惠券。
get_coupon 获得单一优惠券。
create_coupon 创建一个新的优惠券。
update_coupon 更新优惠券。
delete_coupon 删除优惠券。
batch_update_coupons 更新一组优惠券。

支付网关

方法 描述
get_payment_gateways 收到付款门户。
get_payment_gateway 单一支付门户。
update_payment_gateway 更新付款门户

报告

方法 描述
get_sales_report 收到销售报告。
get_products_report 收到产品报告。
get_customers_report 接收客户报告。
get_stock_report 收到库存报告。

设置

方法 描述
get_settings 获取所有设置。
get_setting_option 具体设置选项。
update_setting_option 更新设置选项。
batch_update_settings 更新组设置。

系统状态

方法 描述
get_system_status 获取系统状态。
get_system_status_tools 获取系统状态工具。
execute_system_status_tool 启动系统状态工具。

数据

方法 描述
get_countries 获取国家数据。
get_country_states 接受州/国家的国家
get_currencies 获取货币数据。
get_currency 获取特定货币的详细信息。
get_current_currency 现在的货币。

💻 使用范例

启动 MCP 服务器

import os
from dotenv import load_dotenv
from woocommerce_mcp import initialize

# טעינת משתני סביבה מקובץ .env
load_dotenv()

# אתחול שרת MCP
mcp = initialize()

# הפעלת השרת
async def main():
    mcp.run()

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

产品采购示例

import asyncio
from woocommerce_mcp.products import get_products

async def list_products():
    # קבלת המוצרים האחרונים
    products = await get_products({
        "per_page": 20, 
        "page": 1,
        "status": "publish"
    })
    
    for product in products:
        print(f"מוצר: {product['name']}, מחיר: {product['price']}")

# הפעלת הפונקציה
asyncio.run(list_products())

创建产品示例

import asyncio
from woocommerce_mcp.products import create_product

async def add_new_product():
    product_data = {
        "name": "חולצת פרימיום",
        "type": "simple",
        "regular_price": "99.99",
        "description": "חולצת כותנה נוחה, זמינה במגוון מידות וצבעים.",
        "short_description": "חולצת פרימיום באיכות גבוהה.",
        "categories": [
            {
                "id": 19
            }
        ],
        "images": [
            {
                "src": "http://example.com/wp-content/uploads/2022/06/t-shirt.jpg"
            }
        ]
    }
    
    result = await create_product(product_data)
    print(f"נוצר מוצר חדש עם מזהה: {result['id']}")

# הפעלת הפונקציה
asyncio.run(add_new_product())

📋 函数参数

除了以下可选参数之外,所有函数都接收其特定的 API 操作参数:

  • site_url(如果在环境变量中设置,则可选) WordPress网站地址
  • consumer_key(如果在环境变量中设置,则可选) WooCommerce消费者密钥
  • consumer_secret(如果在环境变量中设置,则可选) WooCommerce消费者秘密
  • 对于WordPress方法: username 还有…password (如果在环境变量中设置,则可选)

🔒 安全说明

要访问WooCommerce REST API,您需要创建API密钥。它们可以在WordPress控制面板下创建 WooCommerce → 设置 → 高级 → REST API.

📦 系统要求

  • Python 3.9 及以上
  • WordPress网站安装WooCommerce插件
  • WooCommerce 的 REST API
  • Python 套件: mcp-server, httpx, python-dotenv

📄 许可证

MIT License - 查看 LICENSE 文件以了解更多详情


🛒 WooCommerce MCP服务器| Python版

使用模型上下文协议连接WooCommerce商店的简单有效的解决方案

🇮🇱 希伯来语版本 | 🇺🇸 英文版

📌 这是怎么一回事?

用于WooCommerce集成的模型上下文协议(MCP)服务器,与WordPress REST API兼容。该库提供了全面的工具,用于管理产品、订单、客户、运输、税务、折扣和商店配置的各个方面。

🚀 快速安装

# Step 1: Clone the repository
git clone https://github.com/yourusername/woocommerce-mcp-server.git
cd woocommerce-mcp-server

# Step 2: Install dependencies
pip install -r requirements.txt

# Step 3: Configure environment variables (see below)

☁️ 铁路部署

服务器已准备好立即部署到 铁路 平台:

# Step 1: Clone the repository to your GitHub account

# Step 2: Log in to Railway and connect with your GitHub account
# https://railway.app/

# Step 3: Click on "New Project" and select "Deploy from GitHub repo"

# Step 4: Select the cloned repository

# Step 5: Configure the following environment variables:
# - WORDPRESS_SITE_URL
# - WOOCOMMERCE_CONSUMER_KEY
# - WOOCOMMERCE_CONSUMER_SECRET
# - WORDPRESS_USERNAME (optional)
# - WORDPRESS_PASSWORD (optional)
# - MCP_HOST=0.0.0.0
# - MCP_PORT=8000

# Step 6: Wait for the build and deployment to complete

铁路部署的好处:

  • 🔄 从GitHub自动部署
  • 🔒 自动SSL
  • 📊 内置监控和日志记录
  • 🔍 railway.app上的免费子域
  • ⚡ 根据需求自动缩放

⚙️ 配置

创建一个 .env 使用您的凭据在项目根目录中创建文件:

WORDPRESS_SITE_URL=https://your-wordpress-site.com
WOOCOMMERCE_CONSUMER_KEY=your-woocommerce-consumer-key
WOOCOMMERCE_CONSUMER_SECRET=your-woocommerce-consumer-secret
WORDPRESS_USERNAME=your-wordpress-username
WORDPRESS_PASSWORD=your-wordpress-password

环境变量

变量 描述 必填
WORDPRESS_SITE_URL 您的WordPress网站URL(WooCommerce是一个WordPress插件) ✅
WOOCOMMERCE_CONSUMER_KEY WooCommerce REST API消费者密钥 ✅
WOOCOMMERCE_CONSUMER_SECRET WooCommerce REST API消费者秘密 ✅
WORDPRESS_USERNAME 具有适当权限的WordPress用户名 ⚠️ *
WORDPRESS_PASSWORD 用于身份验证的WordPress密码 ⚠️ *

*仅适用于WordPress API方法

🔐 身份验证选项

WooCommerce身份验证

WooCommerce API访问需要消费者密钥,您可以在WooCommCommerce下的WordPress仪表板中生成这些密钥→ 设置→ 高级→ REST API。

WordPress身份验证

对于WordPress特定的方法(如管理帖子),您需要提供:

  • 用于基本身份验证的用户名/密码凭据
  • 必须在您的网站上启用WordPress REST API

🔄 API方法

服务器同时支持WordPress和WooCommerce API方法。以下是按类别分组的可用方法列表:

WordPress内容管理

这些方法需要WordPress用户名/密码凭据,并且独立于WooCommerce API。

方法 说明
create_post 创建新的WordPress帖子
get_posts 检索WordPress帖子
update_post 更新现有的WordPress帖子
get_post_meta 获取帖子元数据
update_post_meta 更新帖子元数据
create_post_meta 创建帖子元数据
delete_post_meta 删除帖子元数据

WooCommerce产品

方法 说明
get_products 检索产品列表
get_product 按ID获取单个产品
create_product 创建新产品
update_product 更新现有产品
delete_product 删除产品
get_product_meta 获取产品元数据
create_product_meta 创建/更新产品元数据
update_product_meta 更新产品元数据(创建别名)
delete_product_meta 删除产品元数据

产品分类

方法 说明
get_product_categories 检索产品类别
get_product_category 获取单个产品类别
create_product_category 创建新的产品类别
update_product_category 更新产品类别
delete_product_category 删除产品类别

产品标签

方法 说明
get_product_tags 检索产品标签
get_product_tag 获取单个产品标签
create_product_tag 创建新产品标签
update_product_tag 更新产品标签
delete_product_tag 删除产品标签

产品属性

方法 说明
get_product_attributes 检索产品属性
get_product_attribute 获取单个产品属性
create_product_attribute 创建新的产品属性
update_product_attribute 更新产品属性
delete_product_attribute 删除产品属性
get_attribute_terms 检索属性术语
get_attribute_term 获取单个属性项
create_attribute_term 创建新的属性项
update_attribute_term 更新属性项
delete_attribute_term 删除属性项

产品变化

方法 说明
get_product_variations 检索产品变体
get_product_variation 获得单一产品变体
create_product_variation 创建新的产品变体
update_product_variation 更新产品变体
delete_product_variation 删除产品变体
batch_update_product_variations 批量更新产品变体

产品评论

方法 说明
get_product_reviews 检索产品评论
get_product_review 获取单一产品评论
create_product_review 创建新产品评论
update_product_review 更新产品评论
delete_product_review 删除产品评论

WooCommerce订单

方法 说明
get_orders 检索订单列表
get_order 按ID获取单个订单
create_order 创建新订单
update_order 更新现有订单
delete_order 删除订单
get_order_meta 获取订单元数据
create_order_meta 创建/更新订单元数据
update_order_meta 更新订单元数据(创建别名)
delete_order_meta 删除订单元数据

订单备注

方法 说明
get_order_notes 检索订单备注
get_order_note 获取一张订单单
create_order_note 创建新订单说明
delete_order_note 删除订单说明

订单退款

方法 说明
get_order_refunds 检索订单退款
get_order_refund 获得单笔订单退款
create_order_refund 创建新订单退款
update_order_refund 更新订单退款
delete_order_refund 删除订单退款

WooCommerce客户

方法 说明
get_customers 检索客户列表
get_customer 通过ID获取单个客户
create_customer 创建新客户
update_customer 更新现有客户
delete_customer 删除客户
get_customer_meta 获取客户元数据
create_customer_meta 创建/更新客户元数据
update_customer_meta 更新客户元数据(创建别名)
delete_customer_meta 删除客户元数据

运输

方法 说明
get_shipping_zones 检索运输区域
get_shipping_zone 获取单一运输区域
create_shipping_zone 创建新的运输区
update_shipping_zone 更新运输区域
delete_shipping_zone 删除运输区域
get_shipping_methods 检索配送方式
get_zone_shipping_methods 获取某个区域的配送方式
get_zone_shipping_method 获取特定区域的运输方式
create_zone_shipping_method 为区域创建新的运输方式
update_zone_shipping_method 更新区域的配送方式
delete_zone_shipping_method 从区域中删除配送方式
get_shipping_zone_locations 获取运输区域的位置
update_shipping_zone_locations 更新运输区域的位置

税收

方法 说明
get_tax_classes 检索税务类别
create_tax_class 创建新的税务类别
delete_tax_class 删除税务类别
get_tax_rates 检索税率
get_tax_rate 获得单一税率
create_tax_rate 创建新的税率
update_tax_rate 更新税率
delete_tax_rate 删除税率
batch_update_tax_rates 批量更新税率

折扣/优惠券

方法 说明
get_coupons 取回优惠券
get_coupon 获得一张优惠券
create_coupon 创建新优惠券
update_coupon 更新优惠券
delete_coupon 删除优惠券
batch_update_coupons 批量更新优惠券

支付网关

方法 说明
get_payment_gateways 检索支付网关
get_payment_gateway 获取单一支付网关
update_payment_gateway 更新支付网关

报告

方法 说明
get_sales_report 检索销售报告
get_products_report 检索产品报告
get_customers_report 检索客户报告
get_stock_report 检索库存报告

设置

方法 说明
get_settings 检索所有设置
get_setting_option 检索特定设置选项
update_setting_option 更新设置选项
batch_update_settings 批量更新设置

系统状态

方法 说明
get_system_status 检索系统状态
get_system_status_tools 检索系统状态工具
execute_system_status_tool 运行系统状态工具

数据

方法 说明
get_countries 检索国家数据
get_country_states 检索一个国家的州/省
get_currencies 检索货币数据
get_currency 获取特定货币的详细信息
get_current_currency 获取当前货币

💻 使用示例

初始化MCP服务器

import os
from dotenv import load_dotenv
from woocommerce_mcp import initialize

# Load environment variables from .env
load_dotenv()

# Initialize the MCP server
mcp = initialize()

# Run the server
async def main():
    mcp.run()

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

获取产品示例

import asyncio
from woocommerce_mcp.products import get_products

async def list_products():
    # Get latest products
    products = await get_products({
        "per_page": 20, 
        "page": 1,
        "status": "publish"
    })
    
    for product in products:
        print(f"Product: {product['name']}, Price: {product['price']}")

# Run the function
asyncio.run(list_products())

创建产品的示例

import asyncio
from woocommerce_mcp.products import create_product

async def add_new_product():
    product_data = {
        "name": "Premium T-Shirt",
        "type": "simple",
        "regular_price": "29.99",
        "description": "Comfortable cotton t-shirt, available in various sizes.",
        "short_description": "Premium quality t-shirt.",
        "categories": [
            {
                "id": 19
            }
        ],
        "images": [
            {
                "src": "http://example.com/wp-content/uploads/2022/06/t-shirt.jpg"
            }
        ]
    }
    
    result = await create_product(product_data)
    print(f"Created new product with ID: {result['id']}")

# Run the function
asyncio.run(add_new_product())

📋 功能参数

所有函数都接受API操作的特定参数,以及以下可选参数:

  • site_url:(如果在env中设置,则可选)WordPress站点URL
  • consumer_key:(如果在env中设置,则可选)WooCommerce消费者密钥
  • consumer_secret:(如果在env中设置,则可选)WooCommerce消费者机密
  • 对于WordPress方法: username 和 password (如果在env中设置,则可选)

🔒 安全说明

对于WooCommerce REST API访问,您需要生成API密钥。您可以在WooCommerce下的WordPress仪表板中创建它们→ 设置→ 高级→ REST API。

📦 系统要求

  • Python 3.9或更高版本
  • 安装了WooCommerce插件的WordPress网站
  • WooCommerce REST API密钥
  • Python包: mcp-server, httpx, python-dotenv

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件