iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
AI Engineering

30 天探索 MCP:從基礎概念到實作系列 第 6

# Hello MCP:打造我的第一個 MCP Tool

  • 分享至 

  • xImage
  •  

上一篇我們認識了 MCP Server 裡面的 Tools、Resources、Prompts,也知道 Client 可以透過 tools/list 找到 Server 提供的 Tool。

今天就來打造一個 MCP Tool 看看,這次我們先不做太複雜的功能,就從最簡單的 Hello 開始。


建立第一個 MCP Tool

首先打開昨天建立好的 server.py加入:

from mcp.server.mcpserver import MCPServer

server = MCPServer("Hello MCP")


@server.tool()
def hello(name: str) -> str:
    return f"Hello, {name}!"


if __name__ == "__main__":
    server.run()

這裡最重要的是@server.tool(),它會把下面的 hello() 註冊成 MCP Tool,而這個 Tool 很簡單,只需要一個名字,最後回傳:

Hello, 名字!

這裡使用的是 MCP 2.x 的寫法,和部分教學的 FastMCP 寫法不同,記得先確認套件版本一致,避免執行時報錯。

啟動 MCP Server

接下來在 VS Code 的終端機確認目前還在虛擬環境,(.venv),然後輸入:
mcp dev server.py

第一次執行時,如果看到:

(.venv) PS C:\Users\USER\Desktop\mcp-learning> mcp dev server. py
Need to install the following packages:
@modelcontextprotocol/inspector@2.7.0
Ok to proceed? (y)

輸入 y 就可以,讓它安裝 MCP Inspector,安裝完成後瀏覽器會開啟 MCP Inspector。


連接 MCP Server

進入 Inspector 後,可以看到我們的,Server這裡使用的是 STDIO,它會透過uv run --with mcp==2.2.0 mcp run server.py,來啟動我們的 Server。

https://ithelp.ithome.com.tw/upload/images/20260918/20178769O6HudAJIzw.png

點擊Disconnected將他切換成Connected。

https://ithelp.ithome.com.tw/upload/images/20260918/20178769ElsZF6sMST.png

連線成功的瞬間,你可能會注意到 Inspector 畫面右側跳出了很多列項目(例如 initialize、notifications/initialized、tools/list)。
這裡注意一下右側出現的不是 Tool,而是底層的 Protocol 訊息紀錄,這代表 MCP Client(Inspector)與 Server 正在背後進行握手(Handshake)與溝通。其中最關鍵的一條訊息就是 tools/list,這就是 Client 在問 Server你有哪些 Tool?


找到 hello Tool

連線成功後,在上方找到 Tools,這時候就可以看到在畫面左邊看到我們剛剛建立的hello,點進去後可以看到它需要一個參數 name,

https://ithelp.ithome.com.tw/upload/images/20260918/20178769TSiC8M0b4M.png

這就是我們在 Python 裡面寫的:

def hello(name: str) -> str:

所以 Inspector 已經知道:

Tool:hello
參數:name

第一次呼叫 Tool

接下來在 name 裡輸入MCP,然後執行 Tool,最後就會看到:

https://ithelp.ithome.com.tw/upload/images/20260918/20178769HBBkCyb2Iz.png

成功!
這代表我們剛剛建立的 MCP Tool 已經真的被呼叫了。

整個流程可以整理成:

MCP Inspector
      ↓
   Connect
      ↓
   tools/list
      ↓
找到 hello Tool
      ↓
輸入 name = MCP
      ↓
呼叫 hello
      ↓
Hello, MCP!

這跟普通 Python 函式有什麼不同?

看到這裡可能會覺得,這不就是一個 Python 函式嗎?沒錯hello() 本身確實就是一個 Python 函式,但加上@server.tool()之後,它就不只是我們程式裡自己呼叫的函式,而是可以透過 MCP Server 提供給 Client 使用的 Tool,我們成功完成了把一個 Python 函式變成 MCP Tool,並讓 Client 成功找到和呼叫它。


總結

今天我們終於把第一個 MCP Tool 跑起來了,從建立@server.tool()````def hello(name: str),到 MCP Inspector 找到hello最後得到Hello, MCP!
雖然這個 Tool 很簡單,但已經把 MCP Tool 最基本的流程跑過一次了,下一篇就來做一個比較實用的 Tool:

Calculator MCP。


上一篇
MCP Server 裡到底有什麼?Tools、Resources、Prompts
系列文
30 天探索 MCP:從基礎概念到實作6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言