我有一個 MCP Trigger,會從 Google Gemini 傳遞參數。正確的 HTTP 呼叫已被識別 - 然而,該工具沒有收到參數。對於我在此配置中做錯了什麼,有什麼想法嗎?
Trigger:
HTTP Get:
嘿 @dagarritysps,在等待回應期間,這些資源可能對你有幫助:
@jabbson - 你之前曾協助解決類似的問題,可以看一下嗎?
由 n8n 的社群機器人自動建議。這是試用版 - 請在此分享回饋。
嘿 @dagarritysps
get_environment 是 n8n 添加的內部工具,即使是沒有用戶工具的代理也會有。其輸入是一個空物件架構。Agent Builder 不會為其公開切換或架構編輯器,憑證測試只檢查 /models,不檢查函式呼叫。
目前 Agent Builder 首先探測 Responses API 以查找自訂 OpenAI 端點;架構拒絕不會觸發到 Chat Completions 的缺失路由回退。NetArz 宣傳對您模型的工具支援,但需要檢查實際轉發的架構。請 NetArz 比較接收和轉發的 get_environment 定義,特別是空物件(如 properties: {})是否變成 []。這是一種可能性,不是確認的原因。您可以保持 WordPress 和 WooCommerce 不變。您能分享完整的錯誤回應和您的 n8n 版本嗎?
版本 2.42.6 發生錯誤時,我有時會收到
MCP session connection lost: Server error '503 Service Unavailable' for url 'http://ai.jumpcloud.com/mcp'
啊 抱歉,我之前的回覆解決的是另一個問題。
那個 503 報告的是 MCP 端點的故障;它並沒有證實 HTTP 工具丟失了其引數。你的觸發器螢幕截圖已經包含了 parameters1_Name 和 parameters1_Value,而且一個空的普通 INPUT 面板不足以證明 MCP 工具引數遺失。
當發生 503 時,n8n 中是否會出現相應的執行記錄?另外,http://ai.jumpcloud.com/mcp 是觸發器的確切生產環境 URL,還是轉發到它的閘道?如果 HTTP 工具執行了,請分享它的實際錯誤/輸出,並移除私人資料。
我建議將 503 與引數對應分開。您的觸發器螢幕截圖已經顯示引數到達該擷取的呼叫。
在 HTTP 請求螢幕截圖中,第二個查詢參數的 Name 和 Value 都設定為「由模型自動定義」。如果端點預期 q,請將 Name 固定為 q,只讓模型提供 Value。也要將 limit = 100 固定。
對於搜尋值,明確的表達式為:
{{ $fromAI('q', 'Search term for the candidate query', 'string') }}
這裡 q 是工具引數鍵,不是觸發器 JSON 的路徑。修正 HTTP 參數名稱可以減少模型的不必要選擇;但這還不足以確立整個對應是否正確。
在測試副本中,發佈變更並重新載入用戶端的工具定義。用綜合搜尋詞呼叫它,並檢查實際的外出查詢:它是否包含 q 與該確切值,以及 limit=100?
如果呼叫在 HTTP 工具執行前仍然因 503 失敗,請分開進行 Deepankar 的閘道檢查。該失敗不會告訴您查詢對應是否有效。
我认为你说得有道理。如果我使用该调用,并手动使用 q 和模型中的参数,调用在拉取数据时是成功的,但参数名称和值都不正确。有没有办法指示/提供文档说明可以在 MCP/HTTP 节点内的调用中使用什么,以便让 AI 模型更有机会发送设计正确的查询参数?
@dagarritysps 是的,做這件事的地方是 $fromAI 描述,因為那段文字正是 Gemini 為參數看到的內容。將 Name 固定為 q(當模型也填入名稱時,它必須同時猜測兩者),並將指示加上一個真實例子放入 Value 表達式的第二個參數:
{{ $fromAI('q', 'Text for the search query. Example: <a value you know returns results>. No field names, quotes or operators.', 'string') }}
n8n 會將其轉換為工具輸入架構中 q 的描述,這就是 MCP 用戶端收到的內容。然後將工具的描述從自動改為手動,用一兩句話說明端點搜尋什麼內容,以及一個好的 q 看起來像什麼。之後重新發佈,讓用戶端載入新定義。