article
README
🚀 DIY Helper MCP 服务器
DIY Helper 平台的模型上下文协议(MCP)服务器。提供建筑规范查询、材料规格信息以及制造商指南访问功能,以支持实时咨询服务。
🚀 快速开始
安装
前提条件
- Python 3.8 及以上版本
- pip
安装步骤
- 克隆仓库:
git clone https://github.com/yourusername/diy-helper-mcp-servers.git
cd diy-helper-mcp-servers
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # 在 Windows 系统上使用:venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
- 配置环境:
cp .env.example .env
# 编辑 .env 文件并添加你的 API 密钥
运行服务器
运行建筑规范服务器
python src/building_codes_server/server.py
在 Claude Desktop 中使用
在你的 Claude Desktop 配置文件(claude_desktop_config.json)中添加以下内容:
{
"mcpServers": {
"building-codes": {
"command": "python",
"args": ["/path/to/diy-helper-mcp-servers/src/building_codes_server/server.py"],
"env": {
"CODE_DATABASE_PATH": "/path/to/codes.json"
}
}
}
}
编程式使用
from anthropic import Anthropic
from mcp import ClientSession, StdioServerParameters
# 初始化 MCP 客户端
server_params = StdioServerParameters(
command="python",
args=["src/building_codes_server/server.py"]
)
async with ClientSession(server_params) as session:
# 初始化连接
await session.initialize()
# 列出可用工具
tools = await session.list_tools()
# 调用工具
result = await session.call_tool(
"search_building_codes",
{"query": "客厅插座间距要求", "jurisdiction": "国家层面"}
)
print(result)
✨ 主要特性
服务器功能
建筑规范服务器
提供住宅建筑规范查询服务,包括:
- NEC(国家电气规范)
- IRC(国际住宅规范)
- IPC(国际给排水规范)
工具:
search_building_codes- 自然语言规范搜索get_code_section- 获取特定规范章节check_code_compliance- 验证场景合规性list_code_categories- 浏览可用规范
材料规格服务器
提供实时材料搜索、定价和数量计算功能。
工具:
search_materials- 在不同供应商中搜索产品get_product_details- 获取产品详细规格find_alternatives- 查找不同价格区间的类似产品check_compatibility- 验证产品兼容性calculate_wire_needed- 计算所需电线数量calculate_outlets_needed- 根据 NEC 计算插座需求calculate_tile_needed- 计算所需瓷砖数量calculate_paint_needed- 计算所需涂料量calculate_deck_lumber- 计算甲板框架材料calculate_pex_pipe- 计算给排水管道需求create_shopping_list- 生成完整购物清单
运行命令:
python src/material_specs_server/server.py
📦 安装指南
前提条件
- Python 3.8+
- pip
安装步骤
- 克隆仓库:
git clone https://github.com/yourusername/diy-helper-mcp-servers.git
cd diy-helper-mcp-servers
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # 在 Windows 系统上使用:venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
- 配置环境:
cp .env.example .env
# 编辑 .env 文件并添加你的 API 密钥
💻 使用示例
基础用法
运行建筑规范服务器
python src/building_codes_server/server.py
运行材料规格服务器
python src/material_specs_server/server.py
高级用法
在 Claude Desktop 中使用
在 claude_desktop_config.json 中配置:
{
"mcpServers": {
"building-codes": {
"command": "python",
"args": ["/path/to/diy-helper-mcp-servers/src/building_codes_server/server.py"],
"env": {
"CODE_DATABASE_PATH": "/path/to/codes.json"
}
}
}
}
编程式使用
from anthropic import Anthropic
from mcp import ClientSession, StdioServerParameters
# 初始化 MCP 客户端
server_params = StdioServerParameters(
command="python",
args=["src/building_codes_server/server.py"]
)
async with ClientSession(server_params) as session:
# 初始化连接
await session.initialize()
# 列出可用工具
tools = await session.list_tools()
# 调用工具
result = await session.call_tool(
"search_building_codes",
{"query": "厨房插座间距要求", "jurisdiction": "国家层面"}
)
print(result)
📚 详细文档
开发相关
添加新规范
编辑 src/building_codes_server/codes.json 文件:
{
"id": "唯一标识符",
"code_ref": "规范章节",
"title": "规范标题",
"category": "电气|给排水|结构|机械|通用",
"jurisdiction": "国家|州|城市",
"summary": "通俗易懂的摘要",
"source": "官方来源引用",
"common_questions": ["问题 1", "问题 2"],
"notes": "额外说明",
"related_codes": ["相关规范 1", "相关规范 2"]
}
运行测试
运行所有测试
# 运行所有测试
./run_all_tests.sh
# 或者单独运行:
python tests/test_building_codes.py
python tests/test_material_server.py
测试覆盖率
建筑规范服务器:
- ✓ 规范搜索功能
- ✓ 特定章节检索
- ✓ 类别列表
- ✓ 常见 DIY 问题
- ✓ 管辖范围过滤
- ✓ 边缘情况处理
材料规格服务器:
- ✓ 产品搜索
- ✓ 产品详情
- ✓ 材料计算器(7 种类型)
- ✓ 替代产品
- ✓ 兼容性检查
- ✓ 购物清单生成
快速测试
# 直接测试建筑规范服务器
python src/building_codes_server/server.py
# 直接测试材料规格服务器
python src/material_specs_server/server.py
网页测试界面
对于 Linux 系统用户或未使用 Claude Desktop 的用户,可以使用网页界面进行测试:
前提条件
# 安装 Flask
pip install flask
# 设置你的 Anthropic API 密钥
export ANTHROPIC_API_KEY='你的 API 密钥'
运行网页界面
python test_web_interface.py
然后在浏览器中打开:http://localhost:5000
功能特性
- 与 Claude 和 MCP 工具进行交互式聊天
- 实时建筑规范查询
- 材料搜索和定价
- 项目计算器
- 完整对话历史记录
- 提供示例查询以帮助上手
示例查询
在网页界面中尝试以下查询:
- "厨房插座间距要求是多少?"
- "搜索 12 号电线并显示价格"
- "计算 40 英尺电路所需的电线数量"
- "我要在距离配电盘 30 英尺处安装洗碗机,需要什么材料?"
🚧 路线图
- [ ] 集成向量搜索(Pinecone/pgvector)
- [ ] 完善材料规格服务器
- [ ] 开发制造商指南服务器
- [ ] 支持辖区规范修订
- [ ] 实现图像分析以检查规范合规性
- [ ] 开发成本估算工具
🤝 贡献指南
- 分叉仓库
- 创建功能分支
- 进行更改
- 提交拉取请求
📄 许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
🛠️ 支持与反馈
- 文档:docs/setup.md
- 问题反馈:https://github.com/yourusername/diy-helper-mcp-servers/issues
- 邮箱:support@yourplatform.com
微信扫一扫