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 都能提供。
# 建議使用虛擬環境
python -m venv .venv && source .venv/bin/activate
# 安裝 FastMCP
pip install fastmcp
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)
python mcp_server.py
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