创新黑客——学术复制品
语音教学助理: Next.js+Auth0 在网络上, 快速API+语言图+OpenAI 网关, 画布 (每个用户令牌+可选Canvas MCP),以及 谷歌 通过 工作区MCP (一个OAuth)。
仓库布局
| 路径 | 目的 |
|---|---|
| 应用程序/网络 | Next.js用户界面——登录、Canvas登录、聊天 |
| 应用程序/网关 | FastAPI——JWT、加密密钥、代理 |
| 画布mcp | Canvas MCP——Python FastMCP,流式HTTP(/mcp) |
| google_workspace_mcp | 谷歌工作区MCP(Gmail、日历等) |
| 可选:容器中的所有服务 | |
| 脚本/ | 帮助者 本地 MCP流程 |
快速开始——一切 没有Docker
使用 四个终端.将共享秘密放入 apps/gateway/.env 一次(GOOGLE_CLIENT_*, CANVAS_*, USER_GOOGLE_EMAILAuth0、OpenAI, ENCRYPTION_KEY, …).
0.Auth0(网络+网关)
- 应用程序:常规Web应用程序,URL
http://localhost:3000 - API:创建API→ 标识符 =
AUTH0_AUDIENCE在web+网关中
1.谷歌工作区MCP--端口 8002
需要 紫外线 在 google_workspace_mcp:
./scripts/run-workspace-mcp-local.sh用途 apps/gateway/.env 对于Google客户端id/机密和 USER_GOOGLE_EMAIL。令牌存储在 google_workspace_mcp/store_creds_local/ (用覆盖 WORKSPACE_MCP_CREDENTIALS_DIR).
打开 http://localhost:8002 查看帮助页面;当聊天工具返回身份验证链接时,完成Google OAuth。
2.画布MCP--端口 3001
./scripts/run-canvas-mcp-local.sh使用Python服务器 canvas-mcp/ (FastMCP+玉米)。首次运行创建 canvas-mcp/.venv 并安装该包。网关发送每个用户的Canvas令牌 https:///api/v1 在每个MCP请求中 X-Canvas-Token 和 X-Canvas-URL (从入职开始——MCP流程中不需要存在Canvas秘密)。
3.网关--端口 8000
cd apps/gateway
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # if needed; fill all required keys在 apps/gateway/.env 为设置MCP端点 主机 网络:
MCP_CANVAS_URL=http://127.0.0.1:3001/mcp
MCP_GOOGLE_WORKSPACE_URL=http://127.0.0.1:8002/mcp
MCP_WORKSPACE_BROWSER_URL=http://localhost:8002然后:
uvicorn app.main:app --reload --host 0.0.0.0 --port 80004.Web端口 3000
cd apps/web
cp .env.local.example .env.local
# AUTH0_* + AUTH0_AUDIENCE + GATEWAY_URL=http://127.0.0.1:8000
npm install && npm run dev打开 http://localhost:3000 → 登录→ Canvas入职培训→ Chat.
______________________________________________________________________
稍后:Docker(当你需要一个命令时)
# apps/gateway/.env must exist; compose overrides MCP_* URLs for in-network services
docker compose up --build网关正在监听 8000;做 不 运行主机 uvicorn 上 8000 同时。
环境变量
- 网状物: 看见 apps/web/.env.local.example
- 网关: 看见 apps/gateway/.env.示例
书写/HITL
首先实施只读工具。任何日历/电子邮件/画布 写 必须通过a 人类认可 step(LangGraph中断+UI)——接下来是脚手架。
谷歌(日历、Gmail等)
使用 工作区MCP OAuth一次(例如。 http://localhost:8002 Docker)。放 GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET 在 apps/gateway/.env 并允许重定向 http://localhost:8002/oauth2callback 在OAuth客户端上。聊天代理使用 **gws__*** MCP的工具——网络应用程序中没有单独的“连接谷歌日历”流程。
