MCP报价系统
基于MCP(模型上下文协议)的智能报价系统,将收到的RFP与历史报价进行比较,以生成准确的成本估算和交付周期。
🚀 快速入门(Windows)
新系统? 只需双击 START.bat 并选择选项\[1\]进行自动设置!
请参阅这些指南:
- QUICKSTART.md -带有工作流程和示例的视觉指南
- 浴室-README.md -完整的批处理文件文档
- 测试用例.md -测试系统的RFQ样本
可用批处理文件
START.bat-主交互式启动器(推荐)⭐setup.bat-首次安装向导start-dev.bat-启动开发服务器start-prod.bat-启动生产服务器quick-test.bat-自动化测试stop.bat-停止服务器- 看 浴室-README.md 获取完整列表
______________________________________________________________________
特性
- RFP解析:从基于文本的征求建议书中自动提取材料、工艺、数量、公差和其他关键信息
- 历史匹配:使用智能相似性评分将新请求与过去的报价进行比较
- 成本估算:基于活动的成本计算,包括材料、加工、劳动力、工具和间接费用计算
- 交付周期预测:根据数量、流程和历史数据估算交付时间
- 信心评分:根据数据完整性和匹配质量提供低/中/高置信度评级
- 人类在循环:发送报价前需要获得批准,并附有完整的审计跟踪
- 幂等性:防止重复处理同一征求建议书
建筑
该系统被构建为具有以下功能的MCP服务器:
MCP功能(能力)
- ingestRfp -解析RFP文本并提取结构化信息
- findSimilarQuotes -在历史数据库中搜索类似的过去报价
- 估计成本交付周期 -计算成本和交付周期估算
- 生成报价 -创建格式化的报价文档
- approveQuote -将报价标记为已批准(人工参与)
- 发送报价 -通过电子邮件发送报价(启用模拟运行)
协调者
- 评估报价和起草报价 -协调所有功能以生成完整的报价评估
安装
npm install配置
- 复制
.env.example到.env:
cp .env.example .env- 编辑
.env使用您的设置:
PORT=3789
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@example.com
SMTP_PASS=your-app-password用法
启动服务器
开发模式:
npm run dev生产方式:
npm run build
npm start加载样本历史数据
将示例报价复制到主数据库:
cp data/sample-quotes.json data/quotes.jsonAPI调用示例
1.完整报价评估(协调员)
curl -X POST http://localhost:3789/mcp/invoke/evaluateRfpAndDraftQuote \
-H "Content-Type: application/json" \
-d '{
"rfp": {
"rawText": "We need 200 pcs of a 6061-T6 aluminum widget, CNC machined, anodize finish, tolerance +/-0.005, delivery by 2025-02-28. Contact: buyer@acme.com",
"qty": 200,
"contactEmail": "buyer@acme.com",
"customerName": "Acme Corp"
}
}'2.获得格式化的评论
curl -X POST http://localhost:3789/mcp/utility/formatReview \
-H "Content-Type: application/json" \
-d '{
"result": {}
}'3.查看历史报价
curl http://localhost:3789/mcp/utility/historicalQuotes4.添加历史报价
curl -X POST http://localhost:3789/mcp/utility/addHistoricalQuote \
-H "Content-Type: application/json" \
-d '{
"id": "Q-NEW",
"quoteDate": "2024-11-12T10:00:00Z",
"customerName": "New Customer",
"normalized": {
"material": "steel",
"processes": ["laser", "bend"],
"qtyRange": [51, 100],
"tolerances": "+/-0.010"
},
"costPerUnit": 25.00,
"totalCost": 1875.00,
"leadDays": 14,
"approved": true
}'相似性匹配
该系统使用基于规则的加权组件相似性评分:
- 材料 (35%):完全匹配、家庭匹配或部分匹配
- 过程 (30%):所需流程的重叠
- 数量 (20%):相同范围或相邻范围
- 公差 (10%):匹配精度要求
- 完成 (5%):表面处理匹配
信心阈值
- 高可信 (≥85%):与以往工作非常相似,估计可靠
- 中等信心 (70-85%):相似家庭,谨慎调整
- 低置信度 (\<70%):新型工作,需要工程师审查
成本估算
基于活动的成本计算模型:
Total Cost = Material + Processing + Labor + Tooling + Overhead + Margin组件
- 材料成本:单价×数量(来自材料价格表)
- 加工成本:工艺时间总和×机器小时率
- 人工成本:操作员时间×人工费率
- 工具摊销:设置成本/数量
- 开销:直接成本的15%
- 边距:20%的利润率
- 应急:低置信度报价为10%
交付周期计算
Lead Time = Procurement + Setup + Run Time + QA + Shipping调整基于:
- 数量(体积越大=交付周期越长)
- 工艺复杂性(热处理、镀层增加时间)
- 类似报价的历史实际交付周期
数据存储
目前使用JSON文件 data/ 目录:
quotes.json-历史报价数据库evaluations.json-最近的征求建议书评估(最近100次)
对于生产,考虑迁移到:
- PostgreSQL用于关系数据
- 用于语义相似性搜索的向量数据库(Pinecone、Weaviate)
- Redis用于缓存和幂等性
安全特性
- 人类在循环:所有报价默认为“草稿”状态
- 模拟电子邮件:电子邮件发送需要明确启用
- 幂等性:重复的RFP返回缓存结果
- 审计跟踪:记录所有带有时间戳的评估
- 信心评分:标记不确定的估计值以供审查
扩展系统
添加新材料
编辑 src/config.ts:
materials: {
'titanium-grade-5': 18.0,
// Add more...
}添加新流程
编辑 src/config.ts:
processes: {
'EDM': 40, // minutes per part
'Grinding': 25,
// Add more...
}集成矢量搜索
替换中的基于规则的匹配器 src/matcher.ts 与:
- 用于RFP文本的OpenAI嵌入
- 矢量数据库(松果体、织物、FAISS)
- 余弦相似度搜索
- 元数据过滤(材料、过程)
添加数据库后端
替换 src/storage.ts 使用数据库适配器:
- PostgreSQL使用Prisma或TypeORM
- 实现连接池
- 添加事务以确保数据完整性
测试
创建测试RFP:
// Test 1: High similarity match
{
"rawText": "Need 250 units of 6061-T6 aluminum, CNC milled and anodized, +/-0.005 tolerance",
"qty": 250
}
// Test 2: New material
{
"rawText": "100 titanium brackets, laser cut and polished",
"qty": 100
}
// Test 3: Low detail (low confidence)
{
"rawText": "We need some metal parts",
"qty": 50
}API 文档
启动服务器时,请参阅控制台输出中的完整API文档。
故障排除
未找到历史匹配项
- 检查一下
data/quotes.json存在并有内容 - 验证材料名称是否匹配(不区分大小写)
- 中的相似性阈值较低
src/config.ts
成本似乎不正确
- 审查材料价格
src/config.ts - 调整机器小时费率和人工费率
- 检查间接费用和利润百分比
交付周期太短/太长
- 调整
defaultLeadDays在配置中 - 审查流程时间估算
- 检查基于数量的缩放逻辑
未来的增强功能
- 基于ML的相似性:根据历史报价训练模型以赢得模式
- 图纸分析:从CAD/PDF图纸中提取特征
- 供应商整合:供应商提供的实时材料交付周期
- CRM集成:自动填充客户信息
- 仪表板用户界面:React前端供工程师审查/批准
- 分析:盈亏跟踪、定价优化
- 多种货币:国际报价支持
- 修订跟踪:报价版本历史
许可证
麻省理工学院
支持
如有任何问题或疑问,请联系您的系统管理员。
