招标定价模型协议服务

一个基于FastMCP构建的招标定价模型协议服务,专注于从招标文件中提取定价需求、构建结构化定价模型并生成定价报告。

  • by sendsta
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sendsta/tri_tender_pricing_mcp

使用说明

三标定价MCP

这是一个生产就绪 模型上下文协议(MCP) 服务器构建于 FastMCP 为了 三标。它侧重于 投标和询价的定价表.

服务器公开了以下工具:

  1. 从投标包中检测并提取定价要求
  2. 从招标规则+公司费率构建结构化定价模型
  3. 计算最终价格(包括加价和增值税)
  4. 可选择与市场价格进行比较
  5. 生成可用于PDF导出的样式化HTML定价报告
  6. 以Tri-Tender友好格式包装输出以供预览

1.项目结构

tri_tender_pricing_mcp/
├── server.py
├── requirements.txt
├── README.md
├── tools/
│   ├── extract_pricing_requirements.py
│   ├── build_pricing_model.py
│   ├── calculate_prices.py
│   ├── generate_html_report.py
│   ├── fetch_market_prices.py
│   └── format_output.py
├── utils/
│   ├── pdf_reader.py
│   ├── docx_reader.py
│   ├── xlsx_reader.py
│   ├── classify_document.py
│   └── clean_text.py
└── resources/
    ├── pricing_templates/
    │   ├── base_template.html
    │   ├── table_style.css
    │   └── branding.css
    └── sample_data/
        └── example_pricing.json

2.安装

创建并激活虚拟环境(推荐),然后:

pip install -r requirements.txt

验证是否安装了FastMCP:

fastmcp version

3.运行MCP服务器

fastmcp run server.py

默认情况下,FastMCP将使用stdio进行传输。一些主机还支持:

python server.py

或

fastmcp run --transport sse --host 0.0.0.0 --port 8000 server.py

(如果您需要SSE或HTTP,请参阅FastMCP文档/主机文档。)

4.在Tri-Tender(桌面/Dyad)中注册

在MCP客户端中使用这样的配置条目:

{
  "mcpServers": {
    "tri_tender_pricing_mcp": {
      "command": "python",
      "args": ["server.py"],
      "env": {}
    }
  }
}

如果您使用SSE/HTTP远程部署它,则可以使用:

{
  "mcpServers": {
    "tri_tender_pricing_mcp": {
      "url": "http://YOUR-HOST:8000/sse"
    }
  }
}

5.外露工具

detect_pricing_requirements(file_path: str) -> dict

  • 读取PDF、DOCX或XLSX
  • 清除文本
  • 对文件类型进行分类(招标、定价表、工程量清单等)
  • 尝试提取与定价相关的部分
  • 退货:
    • instructions (LLM已准备好对所发现内容的描述)
    • summary
    • currency
    • pricing_items (粗略骨架列表)
    • raw_text (LLM节选)

build_model(description: str, tender_rules: str, company_rates: str) -> dict

  • 接受自由文本输入并生成 结构化定价模型 与:
    • items:描述、单位、数量、基准价格、加价百分比
    • meta:货币、增值税百分比、假设

calculate(model_json: dict) -> dict

  • 应用线级计算:
    • line_total_ex_vat
    • line_vat_amount
    • line_total_inc_vat
  • 总计
  • 退货 items + totals + instructions 对于LLM。

market_prices(item_name: str) -> dict

  • 目前返回 模拟的 市场价格。
  • 设计用于扩展真正的HTTP API(硬件、燃料等)。

render_report(pricing_data: dict) -> dict

  • 基于以下内容呈现样式化的HTML报告 resources/pricing_templates/base_template.html
  • 退货: { "mime_type": "text/html", "html": "..." }

final_output(html: str) -> dict

  • Tri-Tender桌面应用/Dyad模板使用的最终简单包装。

6.定制

  • 更新 resources/pricing_templates/base_template.html 和CSS文件 与Tri-Tender品牌相匹配。
  • 扩展逻辑 calculate_prices.py 支持:
    • 多年升级
    • 每个类别的不同加价
    • PSIRA/行业监管的最低标准
  • 将真正的HTTP API插入 fetch_market_prices.py 一旦你有一个 允许出站HTTP的主机。

7.安全注意事项

  • 此服务器确实 不 默认情况下,远程网络调用。
  • 所有计算都是纯局部和确定性的。
  • 非常适合在受限的MCP主机(FastMCP Cloud, 光标、克劳德桌面等)。