Skip to main content
Glama

MCP Internal

元心建材內部 MCP 整合系統 - 雙層架構

架構

┌─────────────────────────────────────────────────────────────────┐ │ 員工電腦 │ │ ┌───────────┐ ┌─────────────────────────────────────────┐ │ │ │ Claude │────▶│ Thin Client (MCP Server) │ │ │ │ Code │ │ - 無 API Keys │ │ │ └───────────┘ │ - 只有 FSUID (員工 FX-CRM ID) │ │ │ │ - 只做請求轉發 │ │ │ └──────────────┬──────────────────────────┘ │ └───────────────────────────────────│─────────────────────────────┘ │ HTTPS + Bearer Token ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Google Cloud (asia-east1) │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Cloud Run (mcp-internal-backend) │ │ │ │ 1. FSUID 驗證 → 查 FX-CRM PersonnelObj │ │ │ │ 2. 取得用戶資訊 + mcp_permission__c │ │ │ │ 3. 權限檢查 │ │ │ │ 4. API 呼叫 (Odoo/Shopify/GitHub) │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘

專案結構

mcp-internal/ ├── packages/ │ ├── thin-client/ # 本地 MCP Server │ ├── cloud-backend/ # Cloud Run 後端 │ └── shared/ # 共用型別 ├── infrastructure/ # 部署腳本 └── pnpm-workspace.yaml

快速開始

1. 安裝依賴

pnpm install

2. 建置

pnpm build

3. 本地開發

# 設定環境變數 cp .env.example .env # 編輯 .env 填入必要的值 # 啟動 Cloud Backend (開發模式) cd packages/cloud-backend pnpm dev # 在另一個終端啟動 Thin Client cd packages/thin-client pnpm dev

部署

Cloud Run Backend

# 設定 GCP Secrets (首次) ./infrastructure/setup-secrets.sh # 部署 ./infrastructure/deploy.sh

Thin Client (員工設定)

{ "mcpServers": { "mcp-internal": { "command": "npx", "args": ["-y", "github:jameslai-sparkofy/mcp-internal#master"], "env": { "FSUID": "FSUID_xxxxx", "CLOUD_RUN_URL": "https://mcp-internal-backend-xxx.a.run.app" } } } }

認證機制

  1. 員工從 FX-CRM 取得自己的 FSUID(格式:FSUID_xxxxx

  2. 員工將 FSUID 設定在本地 MCP 環境變數

  3. 每次請求帶上 FSUID → Cloud Run 驗證

  4. Cloud Run 用 FSUID 查 FX-CRM PersonnelObj → 取得用戶資訊 + 權限

環境變數

Thin Client (本地)

變數

說明

FSUID

員工 FX-CRM User ID(格式:FSUID_xxxxx

CLOUD_RUN_URL

Cloud Run Backend URL

Cloud Run (GCP Secret Manager)

變數

說明

FXCRM_APP_ID

FX-CRM App ID

FXCRM_APP_SECRET

FX-CRM App Secret

FXCRM_PERMANENT_CODE

FX-CRM Permanent Code

FXCRM_CORP_ID

FX-CRM Corp ID

ODOO_URL

Odoo URL

ODOO_DB

Odoo 資料庫名稱

ODOO_API_KEY

Odoo API Key

ODOO_USER_ID

Odoo 用戶 ID

SHOPIFY_STORE

Shopify 商店名稱

SHOPIFY_ACCESS_TOKEN

Shopify Access Token

GITHUB_TOKEN

GitHub Personal Access Token

GITHUB_OWNER

GitHub Owner

可用工具

Odoo

  • odoo_search - 搜尋記錄

  • odoo_read - 讀取記錄

  • odoo_count - 計算記錄數

  • odoo_create - 建立記錄 (admin/assistant)

  • odoo_update - 更新記錄 (admin/assistant)

  • odoo_delete - 刪除記錄 (admin/assistant)

Shopify

  • shopify_search_products - 搜尋產品

  • shopify_get_product - 取得產品

  • shopify_update_product - 更新產品 (admin/assistant)

  • shopify_update_price - 更新價格 (admin/assistant)

  • shopify_get_locations - 取得庫存位置

知識庫

  • knowledge_search - 搜尋知識庫

  • knowledge_get_file - 讀取檔案

  • knowledge_list_directory - 列出目錄

  • knowledge_get_price - 查詢價格

  • knowledge_search_spec - 搜尋規格

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jameslai-sparkofy/mcp-internal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server