xiaozhi-MCPTools

mcp
Guvenlik Denetimi
Uyari
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.

SUMMARY

一个图形化界面的小智MCP服务连接器,包含多种工具! 自动部署服务,方便小白给小智Ai添加MCP工具

README.md

小智 MCP 工具平台

面向小智官方 MCP 接入点的多租户工具代理平台。

📖 先读这几份(新人 / 新 AI 必读)

  1. 文档总索引 —— 所有文档的地图,先看这里。
  2. 架构与阅读顺序 —— 项目全景、两条接入路线。
  3. 开发规范要求 —— 硬性规矩、称呼、UI 偏好。
  4. 本轮交接与下一步 —— 当前进度与待办。
  5. 新开发者与 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)

Sonuc bulunamadi