透過「MCP」與Claude 桌面板實現T100數據存取

由 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

整體流程也可以參考

想像的系統架構如下:

+------------------+      +----------+     +-----------------------+
|   使用者 (Human) |----->|   LLMs   |---->|      MCP Server       |
|(Natural Language)|      |(ChatGPT, |     |(Python UV Application)|
+------------------+      | Gemini,  |     +-----------------------+
                          | Claude)  |             ^
                          +----------+             | (Web Service Call)
                                                   |
                                      +-----------------------+
                                      |   傳統 ERP 系統       |
                                      |(Web Service Interface)|
                                      +-----------------------+

實施步驟:

  1. 利用 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
  2. 設定 T9528.py 如下

    下方檔案內的 ERP_SERVER_IP 應換成 T100主機IP,web service 的部分則需要參考 T100 高階 web service開發方式設定

    importhttpxfrom mcp.server.fastmcp import FastMCP# 初始化 FastMCP 服务器mcp= FastMCP(“T9528”)# 常量T100_API_BASE=”https://ERP_SERVER_IP/wtopprd/ws/r/top/asahost”asyncdefmake_nws_request(url: str) -> str:”””向 T100 API 发起请求,并进行错误处理。”””asyncwithhttpx.AsyncClient() asclient:try:response=awaitclient.get(url, headers=headers, timeout=30.0)response.raise_for_status()returnresponse.json()exceptException:returnNone @mcp.tool()asyncdefget_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)returnresponse.json() if__name__==”__main__”:# 初始化并运行服务器mcp.run(transport=’stdio’)

透過上述步驟,就可以將 T100內的 high level web servic 作為 AI 查詢工具的一部分,接下來只需要回到 claude 桌面程式配置 T9528.py 就可完成啟用

啟用後,就可以回到 claude 看到桌面下方槌子的部分亮起來 (mcp 工具後續均以 “槌子” 或 “板手” 表示 “工具” ) 。每一個 mcp 程式可以包含不只一個工具。

工具生效後就可以執行詢問,我們首先上傳的是詢問表格名稱的,就針對性的問一下:

至此可以明確地看出 mcp 工具在 windows 桌面是能被使用的。