RMS MCP服务器
一个全面的运费管理服务器,提供:
- MCP协议 用于Claude Desktop集成
- HTTP REST API 用于n8n工作流自动化和外部集成
- Supabase后端 用于实时数据访问
特性
MCP工具(克劳德桌面版)
- 价格查询:获取海运费率、计算利润和报价
- 费率管理:创建、更新和搜索运费和附加费
- 保证金规则:管理全球、贸易区和港口对特定的保证金规则
- 报价生成:根据定价数据创建完整报价
- 位置和供应商管理:端口、ICD和供应商的CRUD操作
- 辅助工具:搜索位置、列出收费代码等
HTTP API(n8n集成)
- 搜索价格:通过灵活过滤查找海运费率
- 获取当地费用:通过外汇兑换检索出发地/目的地费用
- 准备报价:通过自动货币转换生成完整报价
- 健康检查:监视服务器状态
快速开始
选项1:Docker部署(建议用于VM)
# Clone repository
git clone https://github.com/siduman268-debug/RMS-MCP-Server.git
cd RMS-MCP-Server
# Create .env file
echo "SUPABASE_URL=https://xsvwhctzwpfcwmmvbgmf.supabase.co" > .env
echo "SUPABASE_SERVICE_KEY=your_service_key" >> .env
# Start with Docker
docker-compose up -d
# Test
curl http://localhost:3000/health请参阅DOCKER_DEPLOYMENT.md以获取完整指南
选项2:Node.js开发(本地)
# Install dependencies
npm install
# Create .env file
SUPABASE_URL=https://xsvwhctzwpfcwmmvbgmf.supabase.co
SUPABASE_SERVICE_KEY=your_service_role_key_here
# Build
npm run build
# Run
npm run dev开发工作流程请参见DEVELOPMENT_SETUP.md
使用Claude Desktop
将此配置添加到您的Claude Desktop配置文件中:
视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"rms-supabase": {
"command": "node",
"args": ["C:\\Users\\Admin\\RMS\\rms-mcp-server\\dist\\index.js"],
"env": {
"SUPABASE_URL": "https://xsvwhctzwpfcwmmvbgmf.supabase.co",
"SUPABASE_SERVICE_KEY": "your_service_role_key_here"
}
}
}
}更新配置后,重新启动Claude Desktop。
HTTP API使用情况(n8n/外部集成)
服务器在端口3000上与MCP协议一起运行Fastify HTTP API。
API终点
基本URL: http://localhost:3000
GET /health-健康检查POST /api/search-rates-搜索海运费率(V1)POST /api/v2/search-rates-增强速率搜索(V2)POST /api/v2/prepare-quote-特定费率报价(V2)POST /api/v3/prepare-quote-内陆地区增强报价(V3)POST /api/v3/get-inland-haulage-获取内陆运输费用(V3)POST /api/v4/search-rates-使用来源/目的地字段进行搜索(V4)✨ 新POST /api/v4/prepare-quote-带自动内陆和时间表的报价(V4)✨ 新POST /api/get-local-charges-获取出发地/目的地费用
示例:
curl -X POST http://localhost:3000/api/prepare-quote \
-H "Content-Type: application/json" \
-d '{
"pol_code": "INNSA",
"pod_code": "NLRTM",
"container_type": "40HC",
"container_count": 2
}'有关API的完整参考,请参见API_DOCUMENTATION.mod
n8n工作流自动化
导入预构建的工作流:
- 打开n8n
- 导入
n8n-workflow-example.json - 配置HTTP请求节点以指向RMS服务器
- 激活工作流
有关完整的集成指南,请参阅N8N_WORKFLOW_GUIDE.md
可用工具(MCP)
定价
price_enquiry-获取路线的完整定价明细search_rates-查找可用运费get_surcharges-获取适用的附加费
费率管理
create_freight_rate-添加新的海运费率update_freight_rate-修改现有费率create_surcharge-添加新附加费update_surcharge-修改附加费
保证金规则
list_margin_rules-查看所有保证金规则create_margin_rule-添加新的保证金规则update_margin_rule-修改保证金规则delete_margin_rule-删除边距规则
引文
create_quotation-生成客户报价get_quotation-按ID检索报价
数据管理
list_vendors-查看供应商update_vendor-修改供应商信息create_location-添加端口/ICDupdate_location-修改位置search_locations-查找端口/ICDlist_charge_codes-查看收费代码
示例用法
连接到Claude Desktop后,您可以问:
- “40HC集装箱从上海(CNSHA)运往洛杉矶(USLAX)的价格”
- “显示海运的所有保证金规则”
- “为Acme Corp从孟买到汉堡创建报价”
- “列出所有现役远洋运输公司”
- “INNSA对DEHAM的附加费是多少?”
发展
# Run in development mode with auto-reload
npm run dev
# Build TypeScript
npm run build
# Run production build
npm start数据库模式
此服务器需要以下Supabase表和视图:
locations-端口和ICDvendor-航运公司和供应商ocean_freight_rate-海运费率surcharge-额外收费margin_rule_v2-保证金计算规则charge_master-收费代码定义v_preferred_ofr-查看首选费率v_surcharges-查看附加费数据
以及以下RPC函数:
rms_pick_ofr_preferred_only-获取首选价格apply_margin_allin_v2-计算利润
文档
- API_DOCUMENTATION.md -完整的HTTP API参考
- **** -Docker部署指南
- N8N_WORKFLOW_GUIDE.md -n8n集成示例
- N8N_SETUP_STEPS.md -分步工作流设置
- 连接_设置.md -网络配置
- 开发设置.md -开发工作流程指南
建筑
┌─────────────────┐ ┌──────────────────┐
│ Claude Desktop │◄────────┤ RMS MCP Server │
│ (MCP Client) │ stdio │ │
└─────────────────┘ │ ┌──────────┐ │
│ │ MCP │ │
┌─────────────────┐ │ │ Server │ │
│ n8n │◄────────┤ └──────────┘ │
│ (HTTP Client) │ :3000 │ │
└─────────────────┘ │ ┌──────────┐ │
│ │ Fastify │ │
│ │ HTTP │ │
│ └──────────┘ │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ Supabase │ │
│ │ Client │ │
│ └──────────┘ │
└─────────┬────────┘
│
▼
┌──────────────────┐
│ Supabase Cloud │
│ (Database) │
└──────────────────┘快速部署到VM
# One-line setup (on Linux VM)
curl -sSL https://raw.githubusercontent.com/siduman268-debug/RMS-MCP-Server/master/setup-vm.sh | bash或手动遵循 DOCKER_DEPLOYMENT.md
许可证
麻省理工学院
