Madden Analytics MCP服务器(只读)
用于的安全只读MCP(模型上下文协议)服务器 马登分析API。旨在让Claude安全地查询您的零售/库存数据,而不会有任何修改的风险。
安全特性
| 功能 | 详细信息 |
|---|---|
| 只读 | 仅暴露GET端点。所有POST/PUT/DELETE操作都在代码级别被阻止。 |
| 基于Env的凭据 | API密钥是通过环境变量传递的,从不进行硬编码或记录。 |
| 审核日志记录 | 每个API调用都记录到带有时间戳和参数的每日JSON日志文件中。 |
| 速率限制 | 可配置的每分钟最大请求数(默认值:30)。 |
| 页面大小上限 | 防止失控查询获取整个数据库(默认最大值:100)。 |
| 令牌管理 | 不记名代币在到期前自动刷新60秒的安全裕度。 |
| 输入验证 | 在API调用之前通过Zod模式验证的所有参数。 |
| URL编码 | 所有路径参数均已正确编码,以防止注入。 |
可用工具(21个只读工具)
品牌
list_brands--使用分页和过滤功能列出品牌get_brand--按ID获取单个品牌
分类
list_categories--列出所有产品类别get_category--按ID获取单个类别
产品
list_products--列出目录中的所有产品
交易
list_transactions--列出具有丰富过滤功能的订单(状态、类型、渠道、日期范围)get_transaction--通过外部ID获取特定交易get_latest_transaction--获取最新交易
采购订单
list_purchase_orders--列出具有状态和日期过滤的POget_purchase_order--通过外部号码获取特定订单get_latest_purchase_order--获取最新订单
分销订单
list_distribution_orders--列出具有状态过滤的DOget_distribution_order--通过外部ID获取完整DOlist_open_distribution_orders--列出处理DO的ID
仓库和库存
list_warehouses--列出所有仓库get_warehouse--获取特定仓库get_stock_levels--获取仓库的库存水平
商店和交通
list_stores--列出所有商店list_store_traffic_events--列出交通事件get_store_traffic_events--获取特定计数器的事件
效用
server_status--检查服务器运行状况、速率限制和令牌状态
设置
1.先决条件
- Node.js 18+
- 拥有API证书的Madden Analytics帐户
2.安装
git clone https://github.com/seabasst/madden-analytics-mcp.git
cd madden-analytics-mcp
npm install3.配置环境变量
# Required
export MADDEN_ACCOUNT_ID="your-account-id"
export MADDEN_API_KEY="your-api-key"
# Optional
export MADDEN_LOG_DIR="./logs" # Default: ./logs
export MADDEN_MAX_RPM="30" # Max requests per minute (default: 30)
export MADDEN_MAX_PAGE_SIZE="100" # Max page size cap (default: 100)重要:向Madden索要 只读API密钥 如果可用。这在代码级限制之外增加了第二层保护。
4.测试
node index.js
# Server communicates via stdin/stdout (stdio transport)
# Check logs/ directory for audit logsClaude桌面配置
将此添加到您的 claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"madden-analytics": {
"command": "node",
"args": ["/absolute/path/to/madden-analytics-mcp/index.js"],
"env": {
"MADDEN_ACCOUNT_ID": "your-account-id",
"MADDEN_API_KEY": "your-api-key",
"MADDEN_LOG_DIR": "/absolute/path/to/logs",
"MADDEN_MAX_RPM": "30",
"MADDEN_MAX_PAGE_SIZE": "100"
}
}
}
}Claude代码配置
# Add to your Claude Code MCP config
claude mcp add madden-analytics \
--command "node" \
--args "/absolute/path/to/madden-analytics-mcp/index.js" \
--env MADDEN_ACCOUNT_ID=your-account-id \
--env MADDEN_API_KEY=your-api-key审计日志
日志被写入配置日志目录中的每日JSON文件:
logs/madden-mcp-2026-02-05.log每一行都是一个JSON对象:
{
"timestamp": "2026-02-05T14:30:00.000Z",
"level": "INFO",
"tool": "list_transactions",
"message": "GET /v2/api/transactions?page=1&pageSize=10&status=completed",
"params": { "page": 1, "pageSize": 10, "status": "completed" }
}故意不包括的内容
这些端点存在于Madden API中,但 故意排除 为了确保此服务器的安全:
- 创建/更新/删除产品
- 创建/更新交易
- 创建/更新/删除采购订单
- 创建/更新/删除配送订单
- 设置库存水平
- 创建/更新/删除商店
- 创建/更新/删除仓库
- 创建店铺流量事件
- 创建交易发货
生产建议
- 向Madden请求只读API密钥 -最好的防御是API级别的权限
- 定期旋转API键 --执行此操作时更新env变量
- 监控审核日志 --为错误级别条目设置警报
- 审查GDPR合规性 --事务/订单数据流通过Claude的上下文窗口
- 保持页面大小合理 --上下文窗口中的大型数据集快速燃烧令牌
许可证
麻省理工学院
