跳轉到

MCP 服務 / MCP 函式

於 7.5.0 版本新增

「MCP 函式」是 DataFlux Func 的一個用於支援 AI Agent 呼叫 Func 中函式的功能。

使用者可以透過 MCP 服務的方式,向 AI Agent 提供 DataFlux Func 中的部分函式。

1. 接入步驟

可以按照如下步驟,將 MCP 客戶端 / AI Agent 接入 DataFlux Func 的 MCP 服務

1.1 建立 Access Token

訪問 DataFlux Func 的 MCP 服務需要建立 Access Token,並開啟「MCP 函式」功能

並可以在規則中指定所需開放函式(如:按 category 欄位值)

add-access-token.png

add-access-token-2.png

1.2 許可權規則

許可權規則可以手工編輯,從上到下依次匹配,按照首個命中的規則確定許可權。

示例如下:

規則(精確匹配 ID) 允許呼叫
category:math categorymath 的函式
scriptSet:mytest 屬於指令碼集 mytest 的函式
script:mytest__demo 屬於指令碼 mytest__demo 的函式
func:mytest__demo.func ID 為 mytest__demo.func 的函式
規則(通配 ID) 允許呼叫
scriptSet:myte* 按指令碼集 ID 通配 myte* 的函式
script:mytest__de* 按指令碼 ID 通配 mytest__de* 的函式
func:mytest__demo.fu* 按函式 ID 通配 mytest__demo.fu* 的函式
規則(禁止 禁止呼叫
!category:math categorymath 的函式

1.3 配置 MCP 客戶端

DataFlux Func 的 MCP 服務遵循 MCP 規範

在實際對接前,推薦使用 MCP Inspector 進行除錯

在 MCP 客戶端 / AI Agent 中新增如下配置:

配置項
URL 地址 {DataFlux Func 訪問地址}/mcp
/mcp2/mcp3
具體區別見下文「MCP 服務模式
請求頭 X-Dff-Access-Token: atk-xxxxx:xxxxx
示例:OpenCode 配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "mcp": {
    "dataflux-func-mcp": {
      "enabled": true,
      "type"   : "remote",
      "url"    : "{DataFlux Func 訪問地址}/mcp",
      "headers": {
        "X-Dff-Access-Token": "atk-xxxxx:xxxxx"
      }
    }
  }
}

修改配置後重啟 AI Agent

很多 AI Agent 只會在啟動時載入 MCP 服務配置。修改 MCP 服務配置後,如果新配置沒有生效,請重啟 AI Agent。比如在 VS Code 中使用 Codex 等 AI Agent 外掛時,可以透過 Ctrl + P 輸入 >Reload Window 重新載入視窗。

2. MCP 服務模式

DataFlux Func 的 MCP 服務根據接入路徑不同,支援 3 種模式:

路徑 模式
/mcp 基礎模式
/mcp2 List-Call 模式
/mcp3 Search-Call 模式(推薦)

假設 Access Token 配置如下,且程式碼庫中存在如下函式:

禁止 category:test,允許 category:math
1
2
!category:test
category:math

code.png

2.1 /mcp 基礎模式

直接將所有可用函式作為 Tool 列出

注意:當函式列表改變時,需要客戶端重連才能更新列表

2.2 /mcp2 List-Call 模式

僅提供兩個 Tool:

  • list-func:列出函式
  • call-func:呼叫函式

可以實現動態函式列表,需要 AI Agent / 模型能夠正常遵循 List-Call 方式進行呼叫

2.3 /mcp3 Search-Call 模式

僅提供兩個 Tool:

  • search-func:查詢函式
  • call-func:呼叫函式

可以實現根據關鍵字查詢所需函式,需要 AI Agent / 模型能夠正常遵循 Search-Call 方式進行呼叫

在函式數量較多時,可大幅減少上下文長度