試 FastMCP 天氣工具卡住,把 Codex 的模型通道接入 TaoToken)
調(diào)試 FastMCP 天氣工具卡住把 Codex 的模型通道接入 TaoTokenFastMCP 三行代碼就能把get_weather注冊(cè)成 MCP 工具但真正讓新手卡住的往往不是工具本身而是 AI 客戶端怎么連上模型。本文從接入配置視角出發(fā)把 Codex 的模型通道切到 TaoToken官網(wǎng)https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content讓 Codex 對(duì)話里能直接調(diào)用 FastMCP 暴露的get_weather解決“MCP Server 寫好卻連不上模型”的痛點(diǎn)。一、原問題與場(chǎng)景FastMCP 跑起來了Codex 卻調(diào)不到工具很多人的 FastMCP 起步是這樣的from fastmcp import FastMCP mcp FastMCP(Weather Service) mcp.tool() def get_weather(city: str) - str: 查詢指定城市的天氣 return f{city}晴30°C mcp.run()本地python weather_server.py一跑日志顯示 server 已啟動(dòng)工具列表里也能看到get_weather。但切到 Codex 客戶端輸入“幫我查一下上海天氣”模型要么答非所問要么直接說沒有可用工具。問題不在 FastMCP而在 Codex 的模型通道沒有正確指向一個(gè)能承載工具調(diào)用的后端。Codex 的模型通道由config.toml里的 provider 決定。默認(rèn)配置指向官方端點(diǎn)一旦網(wǎng)絡(luò)或額度受限工具調(diào)用鏈路就會(huì)斷在“模型請(qǐng)求”這一步——MCP Server 明明活著模型卻收不到工具描述自然也不會(huì)發(fā)起call_tool。把 Codex 的 Base URL 換成 TaoToken 的https://taotoken.net/api模型請(qǐng)求先走通FastMCP 的工具才有機(jī)會(huì)被真正調(diào)用。二、TaoToken 前置拿 Key、認(rèn)端點(diǎn)、分清兩套地址在改 Codex 配置之前先把三件事做完。第一創(chuàng)建 API Key。打開 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注冊(cè)后在控制臺(tái)生成一個(gè) Key形如YOUR_API_KEY。這個(gè) Key 是 Codex 訪問模型的憑證不要寫進(jìn) FastMCP 的代碼里兩者職責(zé)不同F(xiàn)astMCP 負(fù)責(zé)暴露工具TaoToken 負(fù)責(zé)提供模型通道。第二記住兩個(gè)地址的區(qū)別。官網(wǎng)入口是https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content用于注冊(cè)、看文檔、管理 KeyAPI 端點(diǎn)是https://taotoken.net/api只作為 Codex 的 Base URL 使用不要加 UTM 參數(shù)。很多新手把帶查詢參數(shù)的官網(wǎng)地址填進(jìn)config.toml結(jié)果請(qǐng)求 404就是沒分清這兩者。第三確認(rèn)模型 ID。在模型對(duì)話頁(yè)面或接入文檔里能看到當(dāng)前可用的模型標(biāo)識(shí)Codex 的model字段要填這個(gè) ID而不是隨手寫gpt-4之類的猜測(cè)值。Key、Base URL、Model ID 三者對(duì)齊模型通道才算配好。三、可復(fù)制配置Codex 的 config.toml 怎么寫Codex 的配置集中在config.toml。下面是一份可直接復(fù)制的最小配置把占位符替換成你自己的值即可model MODEL_ID model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chat配套設(shè)置環(huán)境變量避免 Key 硬編碼進(jìn)配置文件export TAOTOKEN_API_KEYYOUR_API_KEYWindows PowerShell 用$env:TAOTOKEN_API_KEYYOUR_API_KEY幾點(diǎn)說明。base_url必須是https://taotoken.net/api結(jié)尾不要多加/v1或斜杠否則容易拼出錯(cuò)誤路徑。env_key的名字要和實(shí)際環(huán)境變量一致Codex 啟動(dòng)時(shí)會(huì)去讀它。wire_api按接入文檔的說明填寫不同客戶端版本字段名可能略有差異以文檔為準(zhǔn)。如果你同時(shí)用 Claude Code配置位置不同改的是settings.json里的ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY不要和 Codex 的config.toml混在一起。兩套客戶端各管各的配置文件這是新手最容易串的地方。四、驗(yàn)證請(qǐng)求與成功結(jié)果從模型通道到工具調(diào)用配置改完先驗(yàn)證模型通道本身是否通。重啟 Codex發(fā)一條不帶工具的普通消息比如“你好簡(jiǎn)單介紹一下你自己”。如果模型正?;貜?fù)說明 Base URL 和 Key 已經(jīng)生效如果報(bào) 401是 Key 問題報(bào) 404多半是 Base URL 寫錯(cuò)。通道通了之后再驗(yàn)證 FastMCP 工具是否被識(shí)別。保持weather_server.py運(yùn)行在 Codex 里輸入“幫我查一下上海天氣”。成功的表現(xiàn)是模型先輸出一段工具調(diào)用意圖隨后返回類似“上海晴30°C”的結(jié)果這個(gè)字符串正是get_weather的返回值。此時(shí)鏈路完整——Codex 通過 TaoToken 拿到模型響應(yīng)模型根據(jù) FastMCP 注冊(cè)的工具描述發(fā)起調(diào)用FastMCP 執(zhí)行函數(shù)并把結(jié)果回傳。如果模型回復(fù)“我沒有查詢天氣的工具”說明工具列表沒有傳到模型側(cè)。檢查 FastMCP 是否真的在運(yùn)行、Codex 是否配置了連接該 MCP Server、以及工具描述是否為空。工具描述為空時(shí)模型看不到get_weather的用途自然不會(huì)調(diào)用。五、本篇常見錯(cuò)排查錯(cuò)誤一Base URL 帶了 UTM 參數(shù)。把https://taotoken.net/?utm_source...填進(jìn)config.toml請(qǐng)求會(huì)打到官網(wǎng)首頁(yè)而不是 API。正確值是https://taotoken.net/api。錯(cuò)誤二Key 寫進(jìn)代碼而不是環(huán)境變量。有人把YOUR_API_KEY直接寫進(jìn) FastMCP 腳本結(jié)果 Codex 讀不到。Key 屬于 Codex 的模型通道配置放在環(huán)境變量或config.toml引用的變量里。錯(cuò)誤三模型 ID 猜著填。model字段必須是接入文檔里列出的真實(shí) ID填錯(cuò)會(huì)返回模型不存在。去模型對(duì)話頁(yè)面確認(rèn)當(dāng)前可用 ID。錯(cuò)誤四FastMCP 沒啟動(dòng)就測(cè)工具。Codex 報(bào)“工具不可用”時(shí)先確認(rèn)weather_server.py進(jìn)程還在。MCP Server 是獨(dú)立進(jìn)程關(guān)掉終端它就停了。錯(cuò)誤五Claude Code 和 Codex 配置混用。Claude Code 改settings.json的ANTHROPIC_*Codex 改config.toml兩者不通用。改錯(cuò)文件等于沒改。錯(cuò)誤六環(huán)境變量沒生效。export只在當(dāng)前終端會(huì)話有效換一個(gè)終端或重啟 IDE 就丟了。要持久化就寫進(jìn) shell 配置文件或在啟動(dòng)腳本里設(shè)置。排查順序建議先確認(rèn)模型通道普通對(duì)話能否回復(fù)再確認(rèn)工具注冊(cè)工具列表是否可見最后確認(rèn)調(diào)用鏈路模型是否發(fā)起call_tool。逐層定位比一次性改一堆配置高效得多。六、語(yǔ)義一致 CTA接入配置和排障相關(guān)的操作集中在 API Keys 和接入文檔兩處先到 https://taotoken.net/api-keys 生成或管理 Key再對(duì)照 https://taotoken.net/doc 里的 Codex 配置說明逐字段核對(duì)。模型是否可用、ID 是否正確可以直接在模型對(duì)話頁(yè)面驗(yàn)證。如果你打算長(zhǎng)期用 Codex 跑編碼和 Agent 任務(wù)Coding Plan 更適合持續(xù)調(diào)用場(chǎng)景避免頻繁手動(dòng)換 Key。把 FastMCP 的工具能力和 TaoToken 的模型通道接上之后get_weather只是起點(diǎn)后面可以繼續(xù)把數(shù)據(jù)庫(kù)查詢、內(nèi)部 API 封裝成工具讓 Codex 在對(duì)話里直接調(diào)用。