NetSuite智能代理连接器

Suite Forge MCP是一个全栈原型,通过FastAPI后端和React前端连接NetSuite与智能代理,提供对话式界面和OAuth PKCE认证支持。

  • by Monish-K2002
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Monish-K2002/suite-forge-mcp

使用说明

Forge MCP 套件

概述

Suite Forge MCP 是一个全栈原型,它结合了 FastAPI 后端和 React(Vite + TypeScript)前端,用于探索将 NetSuite 与智能代理连接起来。该项目提供了一个对话界面,该界面将用户消息代理到一个了解 NetSuite 的连接器,并为使用 NetSuite REST API 进行 OAuth PKCE 认证提供了框架支持。

特点/功能

  • 对话式用户界面 – client/src/components/Chatbot.tsx 提供了一个以聊天为主的工作区,支持历史记录切换和暗色模式 client/src/contexts/DarkModeContext.tsx。
  • 配置模式 – client/src/components/ConfigModal.tsx 和 Navbar.tsx 暴露NetSuite凭据和AI提供商选择的UI占位符。
  • NetSuite 连接器存根 – client/src/components/NetSuiteConnector.tsx 集中调用面向NetSuite的API,用于聊天和数据检索。
  • FastAPI 服务 – server/app/main.py 建立一个启用CORS的API,并接入基于PKCE的 NetSuiteAuthService 在……中定义 server/services/netsuite_auth.py。

项目结构

.
├── client/
│   ├── package.json
│   ├── src/
│   │   ├── App.tsx
│   │   ├── components/
│   │   └── contexts/
│   └── README.md (Vite template)
├── server/
│   ├── app/main.py
│   └── services/netsuite_auth.py
└── .env

先决条件

  • Node.js 20+(用于Vite前端)
  • npm 10及以上版本
  • Python 3.10+(用于 FastAPI 后端)

环境变量

在运行堆栈之前创建环境文件:

  • client/.env
    VITE_NETSUITE_API_ENDPOINT=http://localhost:8000
    VITE_NETSUITE_API_KEY=replace_with_token
    
  • server/.env (可选) – 使用NetSuite OAuth详细信息进行填充,或使用其他密钥管理工具。当前,后端服务期望由调用者提供配置 NetSuiteAuthService。

安装

导出Python库

  1. cd server
  2. pip freeze > requirements.txt

客户

  1. cd client
  2. npm install

服务器

  1. cd server
  2. 创建并激活虚拟环境(推荐)。
  3. python -m venv venv 创建一个虚拟环境。
  4. venv\Scripts\activate 激活虚拟环境。
  5. 安装依赖项:
    pip install fastapi uvicorn[standard] requests python-dotenv
    

本地运行

启动FastAPI后端

uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
uvicorn app.main:app --host localhost --port 8000 --reload  # for local development

启动Vite前端

npm run dev -- --host

默认情况下,Vite 在 http://localhost:5173这已经在后端被列为CORS(跨源资源共享)的白名单中。

开发说明

  • PKCE(Proof Key for Code Exchange,证明密钥用于代码交换)挑战流程在 NetSuiteAuthService 在内存中保持状态。在生产环境中,请替换为持久化存储。
  • ConfigModal 包含用于通过后端触发NetSuite身份验证的钩子(参见 handleNetsuiteAuth)。 一旦实现,将其连接到适当的终端节点。
  • Tailwind CSS 和暗色模式类已全局应用;请确保 client/src/index.css 并且 client/src/App.css 包括任何主题更改。

下一步行动

  • 为(某系统/功能)充实后端接口 /chat, /data以及OAuth回调。
  • 持久化对话历史和NetSuite会话状态。
  • 添加自动化测试和持续集成(CI)工作流。