ERP订单验证服务

一个基于Supabase API的ERP系统订单验证服务,支持AI代理通过MCP协议验证订单存在性和获取详细信息。

  • by futureofworktraining
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 futureofworktraining/Express_ERP_MCP

使用说明

Express ERP MCP服务器

ERP模型上下文协议(MCP)服务器,允许AI代理通过Supabase API验证订单。

功能

  • ✅ 在ERP系统中验证订单的存在
  • ✅ 下载订单详细信息
  • ✅ 错误处理和复古逻辑
  • ✅ 超时处理
  • ✅ 支持本地和云部署(Railway、Google Cloud Run)

要求

  • Node.js 18 或更高版本
  • npm-lub纱线
  • Supabase ERP API 访问

本地安装

1. 删除仓库

git clone <repository-url>
cd Express_ERP_MCP

2. 安装依赖关系

npm install

3. 配置

复制文件 .env.example 做 .env:

cp .env.example .env

编辑文件 .env 并填写所需的数据:

SUPABASE_URL=https://qqlfyuhupuqcingumhqm.supabase.co/functions/v1/order-verification
SUPABASE_BEARER_TOKEN=twój_token_tutaj
NODE_ENV=development
API_TIMEOUT=5000
LOG_LEVEL=info

4.唤醒项目

npm run build

5. 启动服务器

npm start

或者在开发者模式下使用 hot reload:

npm run dev

在 Claude Desktop 中配置

若要将 MCP 服务器与 Claude Desktop 配合使用,请将配置添加到 claude_desktop_config.json:

对于本地服务器

{
  "mcpServers": {
    "express-erp": {
      "command": "node",
      "args": ["C:/path/to/Express_ERP_MCP/dist/index.js"],
      "env": {
        "SUPABASE_URL": "https://qqlfyuhupuqcingumhqm.supabase.co/functions/v1/order-verification",
        "SUPABASE_BEARER_TOKEN": "twój_token_tutaj"
      }
    }
  }
}

用于云服务器(Railway/Google Cloud Run)

{
  "mcpServers": {
    "express-erp": {
      "url": "https://your-server-url.app/sse",
      "transport": "sse"
    }
  }
}

部署

选项A:铁路

Railway提供了最简单的部署,自动集成了GitHub。

克罗基:

  1. 登录到Railway

  2. 创建新工程

    • 点击“新项目”
    • Wybierz“从GitHub仓库部署”
    • 选择 Express_ERP_MCP 仓库
  3. 配置环境变量

    • 在项目面板中,转到“变量”标签
    • 添加以下变量 :
      • SUPABASE_URL
      • SUPABASE_BEARER_TOKEN
      • NODE_ENV=production
  4. 部署

    • Railway将自动构建和部署应用程序
    • 您将获得公共 URL

自动部署

Railway会在每次推送到主分支时自动部署。

选项 B:Google Cloud Run

Google Cloud Run 提供自动扩展的无服务器部署。

要求:

  • Konto谷歌云
  • 已安装 gcloud 命令行界面

克罗基:

  1. 登录到 Google Cloud
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
  1. 启用所需API
gcloud services enable cloudbuild.googleapis.com
gcloud services enable run.googleapis.com
  1. 创建并将映像提交到容器注册表
gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/express-erp-mcp
  1. 启用 Cloud Run
gcloud run deploy express-erp-mcp \
  --image gcr.io/YOUR_PROJECT_ID/express-erp-mcp \
  --platform managed \
  --region europe-central2 \
  --allow-unauthenticated \
  --set-env-vars SUPABASE_URL="https://qqlfyuhupuqcingumhqm.supabase.co/functions/v1/order-verification" \
  --set-env-vars SUPABASE_BEARER_TOKEN="your_token_here" \
  --set-env-vars NODE_ENV="production"
  1. 您将收到 URL
    • Cloud Run 将返回公共网站 URL
    • Np。 https://express-erp-mcp-xxxxx-uc.a.run.app

MCP工具

verify_order

在ERP系统中验证订单的存在并获取详细信息。

参数测量:

  • numer_zamowienia (string, required) - 要验证的订单号(例如“OP1001”)

在Claude中使用示例:

Sprawdź zamówienie OP1001

现有订单的答案:

✓ Zamówienie zostało znalezione w systemie

📦 SZCZEGÓŁY ZAMÓWIENIA
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Numer zamówienia: OP1001
• ID zamówienia: 1a2b7eaa-fbae-46a0-b3ce-896654acb814
• Status: dostarczone
• Wartość całkowita: 1476 PLN

👤 DANE KLIENTA
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Imię i nazwisko: Anna Kowalska
• Email: anna.k101@example.com

不存在订单的答案:

✗ Zamówienie "OP9999" nie zostało znalezione w systemie

Możliwe przyczyny:
• Numer zamówienia został wpisany nieprawidłowo
• Zamówienie nie istnieje w systemie
• Zamówienie zostało usunięte

API 参考

API 响应结构

interface OrderVerificationResponse {
  zamowienieIstnieje: boolean;
  daneZamowienia: {
    id_zamowienia: string;
    numer_zamowienia: string;
    status: string;
    wartosc_calkowita: number;
    klient: {
      imie: string;
      nazwisko: string;
      email: string;
    };
  } | null;
}

错误处理

服务器支持以下错误类型:

  • 400 - 错误的请求(错误的号码格式)
  • 401 - 授权错误(无效令牌)
  • 408 超时(Timeout)
  • 429 速率限制(Rate Limiting)
  • 500+ API 服务器错误

所有错误都会自动重试,以指数回退过渡错误。

安全

最佳实践:

  1. 永远不要提交令牌 Git 仓库
  2. 使用环境变量 对于敏感数据
  3. 定期旋转代币 (每90天)
  4. 监视日志 未经授权的访问
  5. 使用HTTPS 在生产中

速率限制

API可能有请求限制。服务器在代码 429 的情况下自动支持重试。

故障排除

问题:“SUPABASE_URL环境变量是必需的”

解决方案: 确保您设置了环境变量 SUPABASE_URL 在文件中 .env 或者在云提供商配置中。

问题:“授权错误 - 无效的令牌”

解决方案: 检查Bearer令牌是否在变量中 SUPABASE_BEARER_TOKEN 是正确的。

问题:“请求超时”

解决方案: 检查网络连接或增加价值 API_TIMEOUT 在配置中。

问题:服务器没有响应

解决方案:

  1. 请检查是否安装了所有依赖关系: npm install
  2. 重建项目: npm run build
  3. 检查控制台中的错误日志

发展

在开发者模式下运行

npm run dev

代码检查

npm run lint

清理 build

npm run clean

项目结构

Express_ERP_MCP/
├── src/
│   ├── index.ts              # Główny serwer MCP
│   ├── config/
│   │   └── index.ts          # Konfiguracja
│   ├── services/
│   │   └── apiClient.ts      # Klient API
│   ├── tools/
│   │   └── orderVerification.ts  # Narzędzie MCP
│   └── types/
│       └── index.ts          # Typy TypeScript
├── dist/                     # Zbudowane pliki (generowane)
├── tests/                    # Testy (przyszłe)
├── .env.example             # Przykładowa konfiguracja
├── .gitignore
├── Dockerfile               # Dla Google Cloud Run
├── railway.json             # Konfiguracja Railway
├── package.json
├── tsconfig.json
└── README.md

环境变量

可变 必需 默认 描述
SUPABASE_URL ✅ - URL端点API数据库
SUPABASE_BEARER_TOKEN ✅ - Bearer 授权代币
NODE_ENV ❌ development 开发/生产(Development/Production)
API_TIMEOUT ❌ 5000 超时API w milisekundach
LOG_LEVEL ❌ info 登录级别
PORT ❌ 3000 端口dla HTTP传输(云)

许可证

麻省理工学院

支持

如有任何问题或疑问,请在 GitHub 中创建 issue。


版本 : 1.0.0 上次更新 : 2025-01-06