BOM MCP 服务器
通过模型上下文协议与库存/物料清单(BOM)数据库交互的工具。
该堆栈将一个MCP服务器与一个预置的Postgres库存数据库配对,以便让大型语言模型(Claude)充当物料清单助手。通过暴露的工具,您可以:
- 查看商品详情和描述。
- 将父级装配体展开为其组件物料清单(BOM),或查找哪些父级装配体使用了某个组件。
- 通过文本搜索目录。
- 插入新项目或添加组件关系——所有操作均在后台通过安全的SQL事务进行。
先决条件
- Docker 24+ 及 Docker Compose 插件
initdb/inventory_dump.sql已提交到仓库(已包含)
快速入门
docker compose up --build这将启动两个容器:
pg-inventory(Postgres 16) 自动从……进行初始化initdb/inventory_dump.sqlmcp-bom-db(连接到该数据库的Python MCP服务器)
MCP服务器保持连接到STDIO,这是Claude在启动MCP工具时所期望的。如果您想在容器内部访问shell:
docker compose exec mcp bash数据库快照
这个(或“该”) initdb 目录被挂载到 /docker-entrypoint-initdb.d 对于Postgres镜像。任何 .sql 或者 .sh 放置在此处的文件在卷首次创建时运行一次。
要刷新运行中数据库的快照:
docker compose exec db pg_dump --format=plain --no-owner --no-privileges inventory_db > initdb/inventory_dump.sql提交更新后的SQL文件,以便合作者在首次启动时获取相同的初始数据。
关闭与清理
docker compose down # stop containers
docker compose down -v # stop containers and remove the pg_data volume移除卷会迫使 PostgreSQL 从头开始重新初始化(或重新播种数据) initdb 下次你开始堆叠的时候。
Claude 桌面设置
克劳德正在寻找MCP服务器的定义 ~/Library/Application Support/Claude/claude_desktop_config.json在(或合并)以下代码块,以便Claude可以同时启动计数工具和这个物料清单(BOM)服务器:
{
"mcpServers": {
"count-r": {
"command": "/path-to-environment-interpreter/env/bin/python3",
"args": [
"/path-to-server-file/server.py"
],
"env": { "PYTHONUNBUFFERED": "1" }
},
"bom-db-tools": {
"command": "/path-to-environment-interpreter/env/bin/python3",
"args": [
"/path-to-server-file/server.py"
],
"env": {
"PYTHONUNBUFFERED": "1",
"DATABASE_URL": "postgresql+psycopg://inventory_user:supersecret@localhost:5432/inventory_db"
}
}
}
}注:
- 如果您的本地目录或虚拟环境有所不同,请更新解释器/路径。
- 该
DATABASE_URL指向发布在端口上的Postgres容器5432; 确保docker compose up在启动Claude之前正在运行。 - 编辑配置后,重启 Claude Desktop 以重新加载 MCP 服务器列表。
- 在Claude Desktop中,您可以直接跳转到配置界面 *设置 → 开发者 → 打开配置文件*,其开启
claude_desktop_config.json在你的默认编辑器中。
