Token导航 LogoToken导航TokenDH.com
MCP quote server logo
运维云端stdio官方级别未说明来源级核验

MCP quote server

MCP Server

MCP报价服务器是一款用于生成材料报价的工具,支持价格匹配、交货时间优化和自动报价生成,适用于采购和供应链管理场景。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
Python云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jpz129

提供方

jpz129

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

MCP报价服务器

模型上下文协议(MCP)服务器,用于生成具有价格匹配、交付周期优化和自动报价生成功能的材料报价。

特性

  • 材料价格查询:为多个供应商的材料找到有竞争力的定价
  • 报价生成:创建包含行项目、定价和交付周期的综合报价
  • Markdown导出:生成Markdown格式的专业报价文档
  • 电子邮件草稿:为报价交付创建批准就绪的电子邮件草稿
  • 交付周期优化:根据最大交付周期要求筛选报价
  • 税款计算:支持报价中的税率计算

先决条件

  • Python 3.8或更高版本
  • pip(Python包安装程序)

安装

  1. 克隆仓库
   git clone https://github.com/jpz129/mcp_quote_server.git
   cd mcp_quote_server
  1. 创建虚拟环境
   python -m venv .venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项
   pip install -r requirements.txt

配置

环境变量(可选)

创建一个 .env 在项目根目录下的文件中自定义默认值:

COMPANY_NAME="Your Company Name"
CLIENT_NAME="Default Client"
CLIENT_EMAIL="client@example.com"
QUOTE_SCOPE="Default project scope"
QUOTE_ZIP="00000"

用法

运行MCP服务器

要运行服务器以与ChatGPT或其他MCP客户端一起使用:

python server.py

服务器将以stdio模式启动,并等待JSON-RPC请求。

局部测试

运行示例脚本以在本地测试功能:

python example_call.py

这将:

  1. 搜索材料价格
  2. 生成完整的报价
  3. 创建Markdown引用文档
  4. 生成电子邮件草稿

api参考

可用工具

find_material_prices(items_json: str, zip: str) -> str

根据行项目和邮政编码搜索材料价格。

参数:

  • items_json:包含行项目数组的JSON字符串 ref, qty, uom,以及 query 字段
  • zip:交货地点的邮政编码

退货: JSON字符串,包含每个行项目的报价参考

complete_quote(quote_json: str, tax_rate: float = 0.0) -> str

生成包含最优定价和总计的完整报价。

参数:

  • quote_json:包含报价详细信息的JSON字符串(客户、公司、范围、项目、zip、lead_time_days_max)
  • tax_rate:税率以十进制表示(例如,0.0825表示8.25%)

退货: 带有完整引号的JSON字符串,包括行项目、总计和基本原理

render_quote_md(completed_quote_json: str, out_dir: str = ".") -> str

生成Markdown引用文档。

参数:

  • completed_quote_json:JSON字符串来自 complete_quote
  • out_dir:Markdown文件的输出目录

退货: JSON字符串,包含生成的Markdown文档的文件路径

email_draft(to: str, subject: str, completed_quote_json: str) -> str

生成电子邮件草稿以供报价审批。

参数:

  • to:收件人电子邮件地址
  • subject:电子邮件主题行
  • completed_quote_json:JSON字符串来自 complete_quote

退货: 包含电子邮件详细信息(收件人、主题、正文)的JSON字符串

数据模型

LineItem

{
  "ref": "L-001",
  "qty": 240,
  "uom": "ea",
  "query": {
    "keyword": "hurricane tie simpson A35"
  }
}

引用

{
  "client": {"name": "Jane Doe", "email": "jane@example.com"},
  "company": {"name": "Acme Builders"},
  "scope": "Small hardware package",
  "items": [...],
  "zip": "95476",
  "lead_time_days_max": 7
}

价格优惠

{
  "source": "Vendor Name",
  "vendor_sku": "SKU123",
  "description": "Product description",
  "unit_price": 12.50,
  "uom": "ea",
  "lead_time_days": 5,
  "fees_delivery": 25.00
}

工作流示例

  1. 定义行项目 有材料查询
  2. 搜索价格 使用 find_material_prices
  3. 创建报价 包含客户和项目详细信息
  4. 完整报价 使用 complete_quote 最优定价
  5. 生成文档 使用 render_quote_md
  6. 创建电子邮件草稿 使用 email_draft

发展

项目结构

mcp_quote_server/
├── server.py              # MCP tools (thin layer) - at root
├── example_call.py        # Local testing script
├── src/
│   ├── models/
│   │   ├── __init__.py
│   │   └── quote_models.py    # Pydantic data models
│   └── services/
│       ├── __init__.py
│       ├── price_service.py   # Price matching logic
│       ├── quote_service.py   # Quote calculation logic
│       └── rendering_service.py  # Markdown & email rendering
├── requirements.txt       # Python dependencies
├── .gitignore            # Git ignore rules
└── README.md             # This file

建筑

代码库遵循与有组织目录的关注点的清晰分离:

  • server.py (根):仅MCP工具定义-围绕服务的精简包装
  • src/models/:纯数据模型(Pydantic)-无业务逻辑

- quote_models.py:所有与报价相关的数据结构

  • src/services/:按领域组织的业务逻辑

- price_service.py:价格匹配算法和目录 - quote_service.py:报价计算和优化 - rendering_service.py:Markdown生成和电子邮件草稿

添加新功能

  1. 在中定义新的Pydantic模型 src/models/quote_models.py
  2. 以适当的方式实现业务逻辑 src/services/ 模块
  3. 从导出新功能 src/services/__init__.pysrc/models/__init__.py
  4. 在中创建新的MCP工具 server.py 使用 @mcp.tool() 装饰器
  5. 使用新的API文档更新此自述文件
  6. 将测试添加到 example_call.py

部署

码头工人

使用Docker在本地构建并运行服务器:

# Build the image
docker build -t mcp-quote-server .

# Run the container
docker run -p 8080:8080 -e PORT=8080 mcp-quote-server

当以下情况发生时,服务器将以HTTP模式启动 PORT 环境变量已设置,或者未设置时,本地MCP客户端处于stdio模式。

谷歌云运行

部署到Google Cloud Run以供生产使用:

先决条件

  • 谷歌云SDK(gcloud)已安装
  • 已安装Docker(用于本地测试)
  • 启用计费的Google Cloud项目
  • 已启用云运行API

快速部署

使用提供的部署脚本:

./deploy.sh YOUR_PROJECT_ID REGION

例子:

./deploy.sh my-project-123 us-central1

手动部署

  1. 设置您的项目:
   gcloud config set project YOUR_PROJECT_ID
  1. 构建并推送容器:
   gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/mcp-quote-server
  1. 部署到云运行:
   gcloud run deploy mcp-quote-server \
     --image gcr.io/YOUR_PROJECT_ID/mcp-quote-server \
     --platform managed \
     --region us-central1 \
     --allow-unauthenticated \
     --memory 512Mi \
     --cpu 1 \
     --port 8080
  1. 获取服务URL:
   gcloud run services describe mcp-quote-server \
     --platform managed \
     --region us-central1 \
     --format 'value(status.url)'

环境变量

通过Cloud Run控制台或在部署期间进行配置:

  • COMPANY_NAME -报价的默认公司名称
  • CLIENT_NAME -默认客户端名称
  • CLIENT_EMAIL -默认客户端电子邮件
  • QUOTE_SCOPE -默认报价范围
  • QUOTE_ZIP -默认邮政编码

环境变量示例:

gcloud run deploy mcp-quote-server \
  --image gcr.io/YOUR_PROJECT_ID/mcp-quote-server \
  --set-env-vars COMPANY_NAME="Acme Corp",QUOTE_ZIP="94102"

配置文件

  • Dockerfile -容器图像定义
  • .dockerignore -从Docker构建中排除的文件
  • cloud-run.yaml -云运行服务配置(可选)
  • deploy.sh -自动部署脚本

许可证

这个项目是开源的。请检查存储库以了解许可证详细信息。

贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

支持

对于问题和疑问,请在GitHub存储库中创建问题。

目录标签

目录标签

Python云端部署Docker报价生成本地部署价格匹配供应链管理自动化工具材料采购

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP