Wildberries API MCP服务器是一个中间服务,简化了与Wildberries API的交互。它提供了一个统一的接口来访问Wildberries API中的数据分析、推广统计和其他信息。
MCP服务器执行以下功能:
# 克隆仓库
git clone https://github.com/yourusername/wb-api-mcp-server.git
cd wb-api-mcp-server
# 安装依赖
npm install
# 启动服务器
npm start
服务器默认在3000端口运行。您可以通过设置环境变量PORT来指定其他端口:
PORT=8080 npm start
# 创建Docker镜像
docker build -t wb-api-mcp-server .
# 运行Docker容器
docker run -p 3000:3000 -d --name wb-api-mcp wb-api-mcp-server
# 使用Docker Compose启动服务器
docker-compose up -d
# 停止服务器
docker-compose down
您可以发送一个请求到健康检查端点来确认服务器是否正常工作:
curl http://localhost:3000/health
您应该会收到类似以下的响应:
{
"status": "ok",
"timestamp": "2023-05-21T12:34:56.789Z"
}
MCP服务器提供了以下几组端点:
// 使用fetch
const response = await fetch('http://localhost:3000/api/adv/fullstats', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'api-key': '您的WILDBERRIES_API_TOKEN'
},
body: JSON.stringify([
{
"id": 8960367,
"dates": [
"2024-04-07",
"2024-04-06"
]
}
])
});
const data = await response.json();
console.log(data);
// 使用axios
const axios = require('axios');
const response = await axios.post('http://localhost:3000/api/nm-report/detail', {
"brandNames": ["您的品牌"],
"objectIDs": [358],
"tagIDs": [123],
"nmIDs": [1234567],
"timezone": "Europe/Moscow",
"period": {
"begin": "2024-04-01 00:00:00",
"end": " 2024-04-15 23:59:59"
},
"orderBy": {
"field": "ordersSumRub",
"mode": "asc"
},
"page": 1
}, {
headers: {
'api-key': '您的WILDBERRIES_API_TOKEN'
}
});
console.log(response.data);
场景: 您希望定期跟踪广告活动的效果并分析关键指标。
使用MCP解决方案:
代码示例:
// 获取活动统计
const campaigns = [123456, 789012]; // 您的活动ID
const dates = [getDateString(new Date())]; // 当前日期
// 构建请求数据
const requestData = campaigns.map(id => ({
id: id,
dates: dates
}));
// 发送到MCP服务器
const campaignStats = await fetchFromMcp('/api/adv/fullstats', 'POST', requestData);
// 保存数据并生成报告
saveToDatabaseAndGenerateReport(campaignStats);
场景: 您希望分析用户从浏览商品到购买的整个过程。
使用MCP解决方案:
代码示例:
// 获取销售漏斗统计
const response = await fetchFromMcp('/api/nm-report/detail', 'POST', {
"nmIDs": [/* 您的商品编号 */],
"timezone": "Europe/Moscow",
"period": {
"begin": "2024-04-01 00:00:00",
"end": "2024-04-30 23:59:59"
},
"page": 1
});
// 分析转化率
const products = response.data.cards;
const lowConversionProducts = products.filter(product => {
const stats = product.statistics.selectedPeriod;
return stats.conversions.addToCartPercent < 5 ||
stats.conversions.cartToOrderPercent < 20 ||
stats.conversions.buyoutsPercent < 80;
});
// 生成问题商品报告
generateLowConversionReport(lowConversionProducts);
场景: 您希望提高商品在Wildberries搜索引擎中的可见度。
使用MCP解决方案:
代码示例:
// 获取搜索报告
const searchReport = await fetchFromMcp('/api/search-report/report', 'POST', {
"currentPeriod": {
"start": "2024-04-01",
"end": "2024-04-30"
},
"positionCluster": "all",
"orderBy": {
"field": "avgPosition",
"mode": "desc"
},
"limit": 100,
"offset": 0
});
// 获取特定商品的搜索文本
const searchTexts = await fetchFromMcp('/api/search-report/product/search-texts', 'POST', {
"currentPeriod": {
"start": "2024-04-01",
"end": "2024-04-30"
},
"nmIds": [1234567],
"topOrderBy": "openCard",
"limit": 20
});
// 分析结果并生成建议
analyzeSearchPositionsAndGenerateRecommendations(searchTexts);
场景: 您希望通过销售数据优化仓库中的库存水平。
使用MCP解决方案:
代码示例:
// 获取库存报告
const stocksReport = await fetchFromMcp('/api/stocks-report/products/products', 'POST', {
"nmIDs": [/* 您的商品编号 */],
"currentPeriod": {
"start": "2024-04-01",
"end": "2024-04-30"
},
"stockType": "",
"skipDeletedNm": true,
"orderBy": {
"field": "avgOrders",
"mode": "desc"
},
"offset": 0
});
// 分析销售速度和库存
const stockOptimizationReport = stocksReport.data.items.map(item => {
const dailySales = item.metrics.avgOrders;
const currentStock = item.metrics.stockCount;
const daysOfSupply = currentStock / dailySales;
return {
nmId: item.nmID,
name: item.name,
dailySales,
currentStock,
daysOfSupply,
stockStatus: daysOfSupply < 7 ? 'LOW' : daysOfSupply > 30 ? 'HIGH' : 'OPTIMAL'
};
});
// 生成库存管理建议
generateStockManagementRecommendations(stockOptimizationReport);
场景: 您希望获得详细的分析数据,以便在Excel或其他工具中进行深入分析。
使用MCP解决方案:
代码示例:
// 创建报告生成任务
const reportId = generateUUID();
const createReportResponse = await fetchFromMcp('/api/nm-report/downloads', 'POST', {
"id": reportId,
"reportType": "DETAIL_HISTORY_REPORT",
"userReportName": "四月商品分析",
"params": {
"nmIDs": [/* 您的商品编号 */],
"startDate": "2024-04-01",
"endDate": "2024-04-30",
"timezone": "Europe/Moscow",
"aggregationLevel": "day",
"skipDeletedNm": false
}
});
// 检查生成状态(一段时间后)
setTimeout(async () => {
const reportStatusResponse = await fetchFromMcp('/api/nm-report/downloads', 'GET', {
'filter[downloadIds]': [reportId]
});
const reportStatus = reportStatusResponse.data[0].status;
if (reportStatus === 'SUCCESS') {
// 下载报告
downloadReport(reportId);
} else if (reportStatus === 'FAILED') {
// 重新尝试生成
retryReport(reportId);
}
}, 60000); // 一分钟后再检查
为了通过MCP服务器使用Wildberries API,您需要一个API令牌。以下是获取方法:
登录Wildberries卖家中心
访问seller.wildberries.ru并登录。
进入API设置
登录系统后,进入“设置”部分(通常可以从菜单或个人资料中找到)。
进入API管理
查找“API”、“API访问”或“集成”部分。
创建新的API令牌
生成并保存令牌
填写必要信息后,点击“生成”或“创建”以生成API令牌。
重要提示:务必复制并安全保存您的令牌!出于安全考虑,完整的令牌只会显示一次。
当使用Docker或Docker Compose启动时,日志存储在挂载为卷的logs目录中。
查看正在运行的Docker容器的日志:
docker logs wb-api-mcp