xiaozhi-MCPTools
Health Uyari
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 53 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
一个图形化界面的小智MCP服务连接器,包含多种工具! 自动部署服务,方便小白给小智Ai添加MCP工具
小智 MCP 工具平台
面向小智官方 MCP 接入点的多租户工具代理平台。
📖 先读这几份(新人 / 新 AI 必读)
- 文档总索引 —— 所有文档的地图,先看这里。
- 架构与阅读顺序 —— 项目全景、两条接入路线。
- 开发规范要求 —— 硬性规矩、称呼、UI 偏好。
- 本轮交接与下一步 —— 当前进度与待办。
- 新开发者与 AI 接手手册 —— 部署流程与已知坑。
历史文档在 docs/历史归档/,只用于查证,不要照抄里面的结论。
项目两条线
| 项目 | 目录 | 说明 |
|---|---|---|
| 主项目(MCP 服务平台) | D:\文件\网页项目\xiaozhi-MCP_NEW826 |
本仓库:前端 React(JSX)+Vite、后端 FastAPI、生产 PostgreSQL+Redis |
| SHWSSP(智能家居/设备平台) | D:\文件\网页项目\xiaozhi-SHWSSP_826 |
设备接入与命令下行(WSS),主项目通过它管设备 |
已确定的安全边界
- 客户端提交的数据全部校验;用户身份、价格、订阅和权限均由服务端判断。
- 用户最多保存 5 个智能体接入点,且只接受 api.xiaozhi.me 的 WSS 地址。
- 邮箱验证码、巴法私钥、支付密钥、SMTP 密码只可写入后端;任何接口均不返回完整明文。
- 管理员网页不能上传或粘贴 Python 脚本;工具只能由维护人员放入后端本地工具目录后同步。
- 本机控制、文件系统、命令执行、摄像头、屏幕和手机调试工具不迁移。
技术组成
- 前端:React、JavaScript(JSX)、Vite
- 接口服务:FastAPI、PostgreSQL、Redis
- MCP 工作进程:独立容器、受限 Python 脚本运行器
- 部署:Docker Compose,完整步骤见 docs/02_部署与运维/部署与运维手册.md
先读这几份(新人与 AI)
文档地图(都在 docs/,中文名)
| 文档 | 用途 |
|---|---|
| 项目总览与目录说明 | 目录结构、文档索引、常用命令入口 |
| 开放平台开发者手册 | ⭐ 第三方/自研硬件对接唯一权威手册:授权登录(含授权页展示参数)、令牌、/api/open/* 逐条契约、电脑组件、红外槽位表、自研硬件接入、字段字典与 UI 渲染规则、已知边界 |
| 组件接入与授权总览 | ⭐ 各种组件怎么接进来:电脑组件 / 红外学习软件 / 第三方应用 对照表(客户端 ID、scope、凭证、可用接口)、授权服务在哪看与撤销、新增组件清单 |
| 电脑组件(关机服务组件)接入指南 | ⭐ 电脑组件完整接入指南:授权 → 注册 → WSS 上报/收命令 → 状态刷新接口(v136 新增) → Windows 落地建议 → 完整可跑参考实现 → 排错清单 |
| 数据库与数据模型说明 | ⭐ 改表/写 SQL 前必读:82 张表逐表字段、真实建表机制(启动 DDL,不是 alembic)、_ensure_* 清单、表关系、只读排障 SQL |
| 设备数据开放接口与授权对接 | 同主题的早期简报(限流等数值已过时,以开发者手册为准) |
| 部署与运维手册 | 打包、上传、重建、验证、回退、排障 |
| 服务器运维小抄 | 服务器事实、磁盘红线、宝塔计划任务、增长预测 |
| 服务器数据迁移与老项目合并方案 | 老服务器用户数据合并进本项目(草案) |
| 待办与待拍板事项说明 | 6 件待决事项的通俗解释与建议 |
| 红外扩展云端方案 | 红外模块云端/本地整体方案(已实施) |
| 新功能待实现清单 | 规划中的功能 |
| 设备拍照上传图片_可行性与安全方案 | 设备(粮仓/米桶)拍照上传的可行性、接口设计与 20 条安全把关(待主人拍板) |
| 设备拍照上传图片_落地实施规划 | ⭐ 照着做的工作计划:4 批施工(P0 打通→P3 扩展)、接口契约、表与存储、单片机固件骨架、摄像机模拟器、端到端验收清单 |
| 本地开发环境说明 / 后端接口对接说明 / 前端对接说明_v1 | 本机跑起来、接口约定 |
| 脚本与自检清单 | ⭐ 临时脚本\ 全量索引:每个 _自检_* 覆盖什么、怎么跑、哪些是一次性别乱跑、「我改了 X 该跑什么」 |
| 平台SDK参考手册 / 工具开发说明 | 内置工具脚本可用的 platform_sdk 函数 |
生产部署时,将 backend/.env.example 复制到项目根目录并命名为 .env 后填写。生产环境必须使用随机生成的加密密钥和 JWT 密钥。
本机开发
本机直接运行时,在 backend 目录创建 .env,至少把示例配置改为:
APP_ENV=development
DATABASE_URL=sqlite:///./data/mcp_platform.db
JOB_QUEUE_MODE=inline
COOKIE_SECURE=false
PUBLIC_BASE_URL=http://127.0.0.1:5173
FIELD_ENCRYPTION_KEY、JWT_SECRET、BOOTSTRAP_ADMIN_TOKEN 和 INITIAL_SUPER_ADMIN_EMAIL 仍须填写。然后分别启动(不要改 启动脚本.bat,那是主人自己的脚本):
cd backend
python -m uvicorn app.main:app --host 127.0.0.1 --port 9230
cd frontend
npm install
npm run dev
本机页面地址为 http://127.0.0.1:5173。Vite 会把 /api 转发到 127.0.0.1:9230。
改代码后怎么自检(重要)
用项目自带的 .venv(内含与生产一致的依赖版本 fastapi==0.115.12),在 backend 目录下跑:
cd D:\文件\网页项目\xiaozhi-MCP_NEW826\backend
$env:PYTHONIOENCODING='utf-8'; $env:PYTHONPATH='.'
..\.venv\Scripts\python.exe ..\临时脚本\_自检_自动化失效设备停用.py # 以及其它 _自检_*.py
⚠️ 不要用全局 Python 跑自检:全局是
fastapi==0.140.0,它把路由挂载方式改成了_IncludedRouter包裹对象 →
那些按route.path遍历app.routes的自检会误报"路由只有 325 条"。那是版本不对,不是代码坏了。📋 全部自检/脚本的完整清单(每个覆盖什么、怎么跑、哪些是一次性别乱跑)→
脚本与自检清单。
不要把本机 SQLite 配置复制到服务器。APP_ENV=production 时,后端会拒绝 SQLite、非 HTTPS Cookie 和非 Redis 队列配置。
数据持久化
- 正式部署使用 PostgreSQL;本机单机部署可使用 SQLite。
- 账号、智能体、WSS 密文、每个智能体的工具勾选、订阅、订单、用户凭据和后台配置全部保存在服务端数据库中。
- 智能体工具选择、全局工具开关、知识库、长期记忆、用户偏好、分类和工具展示配置均使用独立 SQL 表或字段;JSON 只用于输入结构、白名单和历史快照。
- 页面刷新不会把浏览器内存当作数据源;当前智能体和工具选择会从服务端恢复。
支付运营
后端提供订单筛选、主动对账、关单、取消、退款、回调日志和异常告警接口。后台每分钟扫描超时订单:微信支付和支付宝会同步调用上游关单接口,易支付因通用协议没有安全关单/退款标准,只在本地标记过期并要求到渠道后台处理退款。
微信支付与支付宝退款均使用唯一退款单号保证幂等。新订单支付成功时会保存权益变更快照,退款成功后精确回滚本次订单发放的权益;部署此版本以前、没有权益快照的历史订单会阻止自动退款。积分套餐因为资源可能已被使用或叠加,目前不支持自动退款,需人工处理。
首次初始化
第一次打开网站时,在“首次初始化”中填写 INITIAL_SUPER_ADMIN_EMAIL 和服务器端 BOOTSTRAP_ADMIN_TOKEN。首任超级管理员创建成功后,初始化接口永久关闭。进入后台后先配置 SMTP,后续用户即可通过真实邮箱验证码注册和登录。
- 客户端提交的数据全部校验;用户身份、价格、订阅和权限均由服务端判断。
- 用户最多保存 5 个智能体接入点,且只接受 api.xiaozhi.me 的 WSS 地址。
- 邮箱验证码、巴法私钥、支付密钥、SMTP 密码只可写入后端;任何接口均不返回完整明文。
- 管理员网页不能上传或粘贴 Python 脚本;工具只能由维护人员放入后端本地工具目录后同步。
- 本机控制、文件系统、命令执行、摄像头、屏幕和手机调试工具不迁移。
技术组成
- 前端:React、JavaScript(JSX)、Vite
- 接口服务:FastAPI、PostgreSQL、Redis
- MCP 工作进程:独立容器、受限 Python 脚本运行器
- 部署:Docker Compose,完整步骤见 部署与运维手册
前端继续开发前请先阅读:
生产部署时,将 backend/.env.example 复制到项目根目录并命名为 .env 后填写。生产环境必须使用随机生成的加密密钥和 JWT 密钥。
本机开发
本机直接运行时,在 backend 目录创建 .env,至少把示例配置改为:
APP_ENV=development
DATABASE_URL=sqlite:///./data/mcp_platform.db
JOB_QUEUE_MODE=inline
COOKIE_SECURE=false
PUBLIC_BASE_URL=http://127.0.0.1:5173
FIELD_ENCRYPTION_KEY、JWT_SECRET、BOOTSTRAP_ADMIN_TOKEN 和 INITIAL_SUPER_ADMIN_EMAIL 仍须填写。然后分别启动:
cd backend
python -m uvicorn app.main:app --host 127.0.0.1 --port 9230
cd frontend
npm install
npm run dev
本机页面地址为 http://127.0.0.1:5173。Vite 会把 /api 转发到 127.0.0.1:9230。
不要把本机 SQLite 配置复制到服务器。APP_ENV=production 时,后端会拒绝 SQLite、非 HTTPS Cookie 和非 Redis 队列配置。
数据持久化
- 正式部署使用 PostgreSQL;本机单机部署可使用 SQLite。
- 账号、智能体、WSS 密文、每个智能体的工具勾选、订阅、订单、用户凭据和后台配置全部保存在服务端数据库中。
- 智能体工具选择、全局工具开关、知识库、长期记忆、用户偏好、分类和工具展示配置均使用独立 SQL 表或字段;JSON 只用于输入结构、白名单和历史快照。
- 页面刷新不会把浏览器内存当作数据源;当前智能体和工具选择会从服务端恢复。
支付运营
后端提供订单筛选、主动对账、关单、取消、退款、回调日志和异常告警接口。后台每分钟扫描超时订单:微信支付和支付宝会同步调用上游关单接口,易支付因通用协议没有安全关单/退款标准,只在本地标记过期并要求到渠道后台处理退款。
微信支付与支付宝退款均使用唯一退款单号保证幂等。新订单支付成功时会保存权益变更快照,退款成功后精确回滚本次订单发放的权益;部署此版本以前、没有权益快照的历史订单会阻止自动退款。积分套餐因为资源可能已被使用或叠加,目前不支持自动退款,需人工处理。
首次初始化
第一次打开网站时,在“首次初始化”中填写 INITIAL_SUPER_ADMIN_EMAIL 和服务器端 BOOTSTRAP_ADMIN_TOKEN。首任超级管理员创建成功后,初始化接口永久关闭。进入后台后先配置 SMTP,后续用户即可通过真实邮箱验证码注册和登录。
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi