基于React的客户端应用程序,通过模型上下文协议(MCP)与Box进行交互。此应用程序提供了一个聊天界面,用于与Box MCP服务器通信并访问Box内容和工具。
React 应用程序 → MCP 客户端 → Box MCP 服务器
应用程序遵循分层架构:
@modelcontextprotocol/sdk(官方TypeScript SDK)克隆并安装依赖项:
git clone <repository-url>
cd box-mcp-client-react
npm install
设置环境变量:
cp .env.example .env
编辑.env文件以添加您的配置:
# 必需:Box OAuth凭证
VITE_BOX_CLIENT_ID=your_box_client_id_here
VITE_BOX_CLIENT_SECRET=your_box_client_secret_here
VITE_BOX_REDIRECT_URI=http://localhost:3000/auth/callback
# 可选:Box MCP服务器URL
VITE_BOX_MCP_SERVER_URL=https://your-box-mcp-server.example.com
# OpenAI API配置
V
VITE_OPENAI_API_KEY=your_openai_key
# 可选:调试模式
VITE_DEBUG=false
运行开发服务器:
npm run dev
打开浏览器:
导航至http://localhost:3000
创建Box应用:
配置OAuth:
http://localhost:3000/auth/callback更新环境:
.env文件中添加您的客户端ID和密钥此客户端与实现模型上下文协议的Box MCP服务器兼容。
.env文件中设置VITE_BOX_MCP_SERVER_URL如果未配置MCP服务器URL,应用程序将以开发模式运行,并使用模拟响应。这允许您:
身份验证:
聊天界面:
工具命令:
!tool <toolname> [参数]执行MCP工具!tool list_files path=/src/
├── components/
│ ├── Auth/ # 身份验证组件
│ │ ├── LoginButton.tsx
│ │ └── AuthCallback.tsx
│ ├── Chat/ # 聊天界面组件
│ │ ├── ChatContainer.tsx
│ │ ├── ChatHeader.tsx
│ │ ├── MessageList.tsx
│ │ ├── MessageBubble.tsx
│ │ ├── MessageInput.tsx
│ │ └── TypingIndicator.tsx
│ └── Common/ # 共享组件
│ ├── ThemeProvider.tsx
│ ├── GlobalStyles.tsx
│ └── ErrorBoundary.tsx
├── services/
│ ├── authService.ts # Box OAuth处理
│ └── mcpClient.ts # MCP客户端实现
├── hooks/
│ └── useAuth.ts # 身份验证钩子
├── types/
│ ├── auth.ts # 身份验证类型
│ ├── chat.ts # 聊天消息类型
│ └── mcp.ts # MCP协议类型
├── styles/
│ └── theme.ts # 主题配置
├── utils/
│ └── crypto.ts # 令牌加密实用工具
├── App.tsx # 主应用程序组件
└── index.tsx # 应用程序入口点
npm run dev - 在端口3000启动开发服务器npm run build - 构建生产版本npm run preview - 预览生产构建npm test - 运行测试(尚未配置)应用程序实现了模型上下文协议规范:
身份验证失败
MCP连接问题
构建问题
npm cache clean --force启用调试日志记录,设置:
REACT_APP_DEBUG=true
该项目根据ISC许可发布。
对于以下相关问题: