Token导航 LogoToken导航TokenDH.com
Looking Com Tourism Technology Hackathon Salzburg Frontend logo
搜索检索未说明官方级别未说明来源级核验

Looking Com Tourism Technology Hackathon Salzburg Frontend

MCP Server

一个基于React和TypeScript的对话式酒店搜索和预订前端,支持多语言用户体验,集成Supabase Edge Functions和Anthropic MCP工具。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
TypeScript多语言支持搜索

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Dekuran

提供方

Dekuran

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

looking.com前端

生产就绪的React+TypeScript前端,用于对话式酒店搜索和预订体验。它集成了i18n、shadcn UI、Supabase Edge Functions和Anthropic MCP工具,可以在聊天流程中查询酒店MCP服务器。

关键能力

快速入门

需求

  • Node 18+和npm
  • 一个名为的具有边函数的Supabase项目 chat
  • 启用MCP客户端测试版的人类API密钥

安装并运行

  • 将所需的环境变量复制到本地 .env

示例.env

VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key
  • 安装并启动
npm install
npm run dev

构建和预览

npm run build
npm run preview

体系结构概述

前端入口点

页面

UI和设计系统

国际化

后端集成

聊天如何连接到MCP服务器

端到端流程

  • 聊天页面收集消息并调用Supabase边缘功能:

- 在 src/pages/Chat.tsx, handleSend 用途 supabase.functions.invoke('chat', { body: { messages }}) - 在 src/pages/Hotel.tsx, handleSendMessage 用同样的方法 type: "hotel" 应用酒店优化系统提示

  • 启用MCP后,边缘功能将转发到Anthropic:

- suabase/函数/聊天/index.ts 帖子到 https://api.anthropic.com/v1/messages - 它包括标题 anthropic-beta: mcp-client-2025-04-04 启用MCP客户端功能 - 它过去了 mcp_servers 使用您的远程MCP服务器URL suabase/函数/聊天/index.ts - Anthropic将工具调用路由到MCP服务器,并返回正常文本和可选文本 tools_used 元数据

  • 该函数提取文本块并返回一个简单的JSON有效载荷 { message, stop_reason, tools_used? }
  • 前端将助手消息呈现到聊天UI中

时序图

sequenceDiagram
  participant UI as React UI
  participant SF as Supabase Function chat
  participant Anth as Anthropic Messages API
  participant MCP as Hotel MCP Server
  UI->>SF: supabase.functions.invoke chat(messages, type)
  SF->>Anth: POST /v1/messages (anthropic-beta mcp-client)
  Anth->>MCP: Tool call via mcp_servers
  MCP-->>Anth: Tool result
  Anth-->>SF: Message content + tool_use blocks
  SF-->>UI: { message, tools_used?, stop_reason }

边缘功能配置

在当地开发和运营

  1. 环境
  • 创建 .env 随着 VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEY
  • 创建Supabase秘密 ANTHROPIC_API_KEY 为了 chat 函数
  1. 前端
  • 运行开发服务器

- npm run dev

  • 访问 http://localhost:5173
  1. Supabase边缘功能
  • 选项A:通过仪表板将该功能部署到您的Supabase项目中
  • 选项B:使用Supabase CLI

- supabase functions serve chat - supabase secrets set ANTHROPIC_API_KEY=...

  1. MCP服务器

添加新功能

添加新页面

使用shadcn添加用户界面

  • 更倾向于在中重用现有图元 src/组件/ui
  • 如果需要新的shadcn组件,请生成它并将其放置在同一文件夹下

举杯

- import { toast } from "@/hooks/use-toast" - toast({ title: "Saved", description: "Your changes are live." })

扩展聊天协议

- 添加新 type 分支与 model, system,以及 mcpUrl - 或传递多个条目 mcp_servers 如果您的模型应该访问多个MCP服务器

调用另一个Supabase函数

添加或修改翻译

  • 更新密钥 src/i18n/config.ts
  • 使用 useTranslation 在需要的地方钩住,并确保钥匙存在于两者中 deen

管理员分析

  • API基础配置在 src/pages/Admin.tsx
  • 考虑搬家 API_BASE_URL 如果您需要不同的环境,请将其转换为环境变量

安全和秘密

  • 不要将API密钥提交给回购。使用Supabase函数机密 ANTHROPIC_API_KEY.env 仅适用于可发布的客户端值
  • 文件 src/lib/claudeApi.ts 是脚手架,不应用于生产;首选边缘函数路径
  • 如果您的函数应该是私有的,请限制CORS并验证JWT。看 suabase/config.toml

故障排除

  • 401来自Supabase:验证 VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEY
  • 401来自Anthropic:确保 ANTHROPIC_API_KEY 已为该功能设置
  • 未观察到MCP工具调用:检查 anthropic-beta 标题和 mcp_servers 配置在 suabase/函数/聊天/index.ts
  • 空响应:日志 data.content 在功能;我们只提取文本块

路线图和家政服务

  • 在整个应用程序中整合到一个单一的吐司系统(shadcn),以减少deps
  • 准备就绪后删除未使用的UI包装和资产
  • 将管理员API基本URL移动到环境配置

许可证

麻省理工学院

环境与保密管理

该项目避免将真实的API密钥存储在存储库或本地前端env文件中。

已经做了什么

不要将Anthropic密钥放在Vite env中

  • 切勿使用VITE_CLAUDE_API_KEY或类似产品。任何VITE\_\*变量都会暴露给浏览器。
  • 必须通过边缘函数中的Deno.env读取服务器端密钥。

您需要提供的秘密(服务器端)

  • ANTHROPIC_API_KEY:边缘函数使用的ANTHROPIC API键
  • MCP_URL:边缘功能使用的MCP服务器URL(以前硬编码)

Supabase函数秘密(生产)

  • 使用Supabase CLI:

- supabase机密集ANTHROPIC_API_KEY=sk-ant-。..MCP_URL=https://your-mcp-server.example.com/mcp/capcorn

地方发展(职能)

  • 根据您的策略,不要在本地存储真实密钥。保持suabase/functions/.env为空(git会忽略它)。
  • 可选(仅用于本地功能测试):使用ANTHROPIC_API_KEY和MCP_URL创建supabase/functions/.env。不要提交此文件。

前端环境(Vite)

  • 必填(公共):

- 统计 - VITE_suabase_可发布密钥

  • 可选:

- VITE_API_BASE_URL(如果您稍后将当前硬编码在中的Admin API外部化 src/pages/Admin.tsx)

  • 请参阅中的模板 .env.示例.您当前的本地 .env git被忽略了。

GitHub操作:设置存储库机密

  • 添加以下GitHub机密(设置→ 秘密和变量→ 行动→ 新存储库机密):

- ANTHROPIC_API_键 - MCP_URL - 统计 - VITE_suabase_可发布密钥 - 可选:VITE_API_BASE_URL

  • 您的CI/CD工作流(如果/当添加时)可以将这些传递给构建/部署步骤。避免在日志中打印它们。

确认

  • 密钥不应存储在仓库中或推入提交中。
  • 生产密钥作为Supabase函数机密(用于边缘函数)存在。
  • 构建时/公共变量以GitHub Actions secrets的形式存在(导出为工作流的env),并且只有前缀为VITE_的变量对前端是安全的。

安全说明

  • 如果之前提交了任何敏感密钥(例如 src/lib/claudeApi.ts 在重构之前),考虑执行git历史清除(例如git过滤器仓库)并与您的提供者一起轮换密钥。

目录标签

目录标签

TypeScript多语言支持搜索酒店搜索本地部署对话式UIReact前端

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP