由 Claude 提出的 MCP ,提供了 Python 的 MCP SDK 工具,可作為橋接 T100 ERP 與現在大多數可支持 MCP 的 ai 模型,如 ChatGPT、Gemini 和 Claude。此方案在賦予 AI 直接查詢和理解 ERP 系統內龐大數據的能力,從而釋放數據潛能,提升決策效率,並開創全新的智能化應用場景。
為了解決上述挑戰,可利用 MCP 為橋樑,並藉助 Python + Genero 實現 AI 對傳統 ERP 系統的直接數據存取。
我們選擇使用 Python 的 UV 工具:在 windows 上可以透過 uv 建置 mcp 的步驟可以參考
https://dev.to/codemee/shi-yong-uv-guan-li-python-huan-jing-53hg
整體流程也可以參考
https://youtu.be/cdBRAVYZKFo?si=tL6Wj4ryU_MQDWyL
想像的系統架構如下:
+-----------------+ +----------+ +-----------------------+
| 使用者 (Human) |----->| LLMs |----->| MCP Server |
|(Natural Language)| |(ChatGPT, | |(Python UV Application)|
+-----------------+ | Gemini, | +-----------------------+
| Claude) | ^
+----------+ | (Web Service Call)
|
+-----------------------+
| 傳統 ERP 系統 |
|(Web Service Interface)|
+-----------------------+
實施步驟:
- 利用 uv 建置 python 專案 test_mcps,專案內使用 "mcp[cli]" mcp httpx 等套件
此處也可以參考 https://dev.to/alexmercedcoder/building-a-basic-mcp-server-with-python-5ci7
uv add "mcp[cli]" mcp httpx - 設定 T9528.py 如下
下方檔案內的 ERP_SERVER_IP 應換成 T100主機IP,web service 的部分則需要參考 T100 高階 web service開發方式設定import httpxfrom mcp.server.fastmcp import FastMCP# 初始化 FastMCP 服务器mcp = FastMCP("T9528")# 常量T100_API_BASE = "https://ERP_SERVER_IP/wtopprd/ws/r/top/asahost"async def make_nws_request(url: str) -> str:"""向 T100 API 发起请求,并进行错误处理。"""async with httpx.AsyncClient() as client:try:response = await client.get(url, headers=headers, timeout=30.0)response.raise_for_status()return response.json()except Exception:return None@mcp.tool()async def get_tablename(table_id: str) -> str:"""指定表格編號,或編號關鍵字,查詢T100系統的表格編號與名稱。Args:state: 表格編號 或關鍵字 (例如 gzza_t 或 gzxa)"""url = f"{T100_API_BASE}/base/qry_tablename?table_id={table_id}"response = httpx.get(url)return response.json()if __name__ == "__main__":# 初始化并运行服务器mcp.run(transport='stdio')
透過上述步驟,就可以將 T100內的 high level web servic 作為 AI 查詢工具的一部分,接下來只需要回到 claude 桌面程式配置 T9528.py 就可完成啟用