上一篇我們讓一個 Client 同時使用多個 MCP Tools,不過目前為止,Tool 的使用方式還是比較偏向由程式直接指定。
今天就再往前一步,讓 LLM 自己判斷什麼時候需要使用 MCP Tool。
這次我使用 Google Gemini 作為 LLM,因為它有提供免費額度可以使用,如果有其他 LLM API 也可以依照自己的需求替換,並直接拿之前 Day 7 做好的 Calculator MCP 來實作。
首先打開終端機輸入 pip install google-genai,安裝 Gemini SDK。
接著到 Google AI Studio 取得 API Key,詳細步驟在我之前實作 n8n 的文章裡有,這裡就先不另外介紹。
API Key 使用環境變數保存 $env:GEMINI_API_KEY="你的 API Key"
程式中再透過:
client = genai.Client(
api_key=os.getenv("GEMINI_API_KEY")
)
建立 Gemini Client,這樣就可以從 Python 呼叫 Gemini。
這次不需要重新做 Calculator,直接使用 Day 7 已經完成的 server.py。
server_params = StdioServerParameters(
command="python",
args=["../day7/server.py"],
)
接著建立 MCP Client,初始化 Session:
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
這部分其實跟前面幾天的 MCP Client 差不多,不同的是,這次取得 Tool 之後,我們還要把它提供給 Gemini。
首先使用:
result = await session.list_tools()
取得 MCP Server 提供的 Tools,接著把 MCP Tool 的資訊轉換成 Gemini 可以理解的 Function Declaration:
function_declarations = []
for tool in result.tools:
function_declarations.append(
types.FunctionDeclaration(
name=tool.name,
description=tool.description,
parameters_json_schema=tool.input_schema
)
)
這裡主要是把 Tool 的:
提供給 Gemini。
以 Calculator Tool 來說,Gemini 就可以知道有一個叫做 calculator 的 Function,以及它需要的 a、b 和 operation 這些參數。
接著把這些 Function Declaration 放進 Gemini 的 Tool:
gemini_tool = types.Tool(
function_declarations=function_declarations
)
再把使用者的問題送給 Gemini:
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=user_input,
config=types.GenerateContentConfig(
tools=[gemini_tool]
)
)
這時候我們沒有直接告訴 Gemini 一定要使用 Calculator,而是把 Tool 提供給它,讓 Gemini 根據使用者的問題自行判斷是否需要使用。
前面完成 Gemini 與 MCP Tool 的設定後,接下來就可以實際執行 Agent。
當使用者輸入問題後,Gemini 會先根據目前提供的 Tools 判斷是否需要使用工具。如果需要,就會產生要呼叫的 Tool 名稱以及對應的參數。
接著由 MCP Client 根據 Gemini 提供的資訊,實際呼叫 MCP Tool。這裡使用的就是我們之前 Day 7 建立的 Calculator MCP。
Calculator 執行完成後,MCP Client 會取得 Tool 的結果,再將結果交回 Gemini,最後由 Gemini 整理成自然語言回答。
整個過程可以簡單整理成:
使用者
↓
Gemini 判斷是否使用 Tool
↓
MCP Client 呼叫 Calculator
↓
取得 Tool 結果
↓
回傳 Gemini
↓
產生最後回答
實際執行後,可以在終端機看到 Gemini 選擇的 Tool、傳入的參數、MCP Tool 的執行結果,以及最後產生的回答。

今天第一次把 LLM、MCP Client 和 MCP Tool 串在一起。
雖然目前只有一個 Calculator Tool,但已經可以看到 AI Agent 的基本流程:使用者提出需求後,LLM 先判斷是否需要使用工具,如果需要,就產生 Tool 和參數,再由 MCP Client 實際執行,最後把結果交回 LLM。
前面做的 Calculator、File System、SQLite 和 REST API 等 MCP Tools,到這裡也開始不只是單獨的工具,而是可以成為 Agent 能夠使用的能力。