工程師如何開發 MCP,讓業務人員也能使用 AI 工具
MCP(Model Context Protocol)不是只給工程師用的。只要前端換成業務熟悉的介面,他們就能透過自然語言操作工程師寫好的工具。
核心觀念:MCP server 跟介面是分開的
Cursor 是工程師用的 AI 編輯器,業務人員不會用它。但 MCP server 本身是通用標準,只要前端換成業務能用的介面(Claude.ai、自建聊天介面、Slack Bot),他們就能透過對話使用工程師寫好的工具。
整體架構
業務聊天介面 (Claude.ai / 自建 UI)
↕
MCP Server ← 工程師開發維護
↕
工程師的 Cursor
↕
CRM / 資料庫 / 第三方 API
工程師只需要寫一次 MCP server,業務和工程師都能用,維護成本集中在一個地方。
工程師的開發步驟
步驟一:先跟業務訪談,定義工具清單
不要自己猜業務需要什麼,直接問:
- 「你每天最花時間的事是什麼?」
- 「哪個步驟要查很多系統才能完成?」
- 「什麼資料你常常要等別人給你?」
把業務的答案翻譯成工具名稱:
「查客戶歷史訂單」→
get_customer_orders(customer_id)
步驟二:建立 MCP server
用官方 SDK(Node.js 或 Python),每個工具要寫清楚名稱、描述、參數。描述是寫給 AI 看的,讓 AI 知道什麼時候該呼叫這個工具。
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
const server = new McpServer({ name: "sales-tools", version: "1.0.0" });
server.tool(
"get_customer_orders",
"查詢指定客戶的歷史訂單。當業務詢問某客戶的購買紀錄、訂單狀態時使用。",
{
customer_id: z.string().describe("客戶 ID,格式為 CUST-XXXXX"),
days: z.number().optional().describe("查最近幾天,預設 90 天")
},
async ({ customer_id, days = 90 }) => {
const orders = await db.query(
`SELECT * FROM orders WHERE customer_id = $1
AND created_at > NOW() - INTERVAL '${days} days'`,
[customer_id]
);
return { content: [{ type: "text", text: JSON.stringify(orders) }] };
}
);
步驟三:寫 system prompt 控制 AI 行為
當業務使用聊天介面時,需要一個清楚的 system prompt,告訴 AI:它的角色、有哪些工具、回答要用業務能懂的語言。
你是業務助理,協助銷售團隊查詢客戶資料和訂單狀態。
可用工具:
- get_customer_orders:查客戶訂單
- check_inventory:查庫存
- create_quote:建立報價單
規則:
- 回答用繁體中文,避免技術術語
- 客戶資料要保密,不要在回答中顯示完整的個資
- 查詢前先確認客戶 ID 是否正確
步驟四:測試時模擬業務的問法
業務不會說「呼叫 get_customer_orders」,他們說的是:
- 「王小明上個月買了什麼?」
- 「CUST-00123 有沒有未出貨的訂單?」
- 「幫我看一下林先生的訂單,他說沒收到貨」
要特別確認:AI 不會把資料庫錯誤訊息原文回給業務,也不會顯示不該顯示的欄位。
業務場景範例
業務說的話 對應工具 「這客戶上次買什麼?」get_customer_orders
「A 產品還有多少庫存?」
check_inventory
「幫我建一張報價單」
create_quote
「這個月誰的業績最好?」
get_sales_report
「把這筆訂單備注更新一下」
update_order_note
實際對話範例
業務問:「黃客戶 CUST-00456 的最新訂單狀態如何?」
AI 在背景呼叫 get_customer_orders("CUST-00456"),然後回答:
黃先生最近有 2 筆訂單:
- 訂單 #8821(3/15)— 已出貨,預計明天送達
- 訂單 #8756(3/2)— 已完成
業務看到的是人話,不是 JSON。
三種部署方案
方案一:直接用 Claude.ai(最快上手)
業務安裝 Claude.ai,工程師把 MCP server 部署在公司伺服器,業務在設定中加入 MCP server URL 就能用。適合快速驗證概念。
方案二:自建聊天介面(推薦企業)
工程師用 Anthropic API 自建內部聊天頁面,把 MCP server 整合進去。業務只要開瀏覽器輸入公司網址,完全不需要懂技術。
const response = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
system: "你是業務助理...",
messages: conversation,
tools: mcpTools, // 從 MCP server 取得工具列表
max_tokens: 1000
});
優點:資料不出公司、可加入登入驗證、控制誰能用什麼工具。
方案三:整合進 Slack / Teams
業務已經在用 Slack,直接做一個 Bot 讓他們在頻道裡 @詢問。最低學習成本,業務不需要改變工作習慣。
上線前檢查清單
- [ ] 敏感資料(個資、訂單金額)有做遮罩再回給 AI
- [ ] 寫入型工具(create/update)有確認機制,防止誤操作
- [ ] MCP server 有做認證,不能被外部直接呼叫
- [ ] 錯誤訊息有 catch,不會把 SQL error 原文傳給業務
- [ ] 工具有 rate limit,防止 AI 瘋狂呼叫 API
給工程師最重要的兩個提醒
工具描述寫給 AI 看。 AI 靠描述判斷什麼時候呼叫哪個工具,描述不清楚,AI 就不知道「幫我看客戶資料」要呼叫哪個 function。
System prompt 決定回答品質。 同樣的資料庫查詢結果,給工程師看可以是 JSON,但給業務看要翻譯成人話。這是工程師容易忽略、但業務最在意的地方。
推薦起步方式:先選 2–3 個業務最常見的重複性查詢,做成工具,讓業務試用,收到回饋再擴充。不要一開始就想做完整系統。