iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
生成式 AI

nutc_imac_Agent拼裝車系列 第 13

Day 13 透過 FastMCP 開發 MCP Server

  • 分享至 

  • xImage
  •  

FastMCP 是一個以 Python 為主的框架,讓開發者能更快與方便的建立 MCP(Model Context Protocol) 規範的Server與Client。FastMCP 的出現,讓開發者可以更專注於業務邏輯本身,只需要透過 Python 上的裝飾器來定義函式,就能夠輕鬆的把它們變成 LLM 可以使用的工具或資源。FastMCP 不僅功能上簡化了開發,還能讓不同的 MCP 服務可以掛載在一起構建出模組化的系統。也能快速整合 OpenAPI 或 FastAPI,讓現有的 Web API 可以快速的轉換成 MCP 介面。對於部署來說,可以選擇STDIO、HTTP 或 SSE 模式,FastMCP 適合希望快速將 LLM 連接到外部工具或系統的開發者。無論是要把 API 或資料庫包裝成 LLM 可用的資源,還是要建構能執行特定任務的工具,FastMCP 都能提供。


首先,先安裝 FastMCP

# 建議使用虛擬環境
python -m venv .venv && source .venv/bin/activate

# 安裝 FastMCP
pip install fastmcp

接著,建立一個簡單的 MCP Server

from fastmcp import FastMCP

mcp = FastMCP("My MCP Server")

@mcp.tool
def greet(text: str) -> str:
    """回傳一段打招呼的訊息。"""
    return f"Hello, {text}!"

if __name__ == "__main__":
    # 預設使用 stdio transpor
    mcp.run()
from fastmcp import FastMCP

mcp = FastMCP("My MCP Server")

@mcp.tool
def sayHello(text: str) -> str:
    """回傳一段打招呼的訊息。"""
    return f"Hello, {text}!"

if __name__ == "__main__":
    mcp.run(transport="http", host="0.0.0.0", port=8000)

啟動 MCP Server

python mcp_server.py

https://ithelp.ithome.com.tw/upload/images/20250927/20150369tzulTPwutc.png

透過從 Client 去呼叫 Server(以 HTTP 為範例)

import asyncio
from fastmcp import Client

client = Client("http://localhost:8000/mcp")

async def call_tool(text: str):
    async with client:
        result = await client.call_tool("sayHello", {"text": text})
        print(result)

asyncio.run(call_tool("Bob"))
python mcp_client.py

https://ithelp.ithome.com.tw/upload/images/20250927/20150369n79d03v90E.png


上一篇
Day 12 Model Context Protocol(MCP)簡介
下一篇
Day 14 使用 ADK 串接 FastMCP Server
系列文
nutc_imac_Agent拼裝車14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言