fastmcp
概要
- mcpのリモートサーバーを立てるためのライブラリ
- agent(llm)側は、インターフェイスとdoc stringを見るので、詳しくdoc stringを書く必要がある
インストール
$ pip install fastmcp
実行
$ python3 example.py
基本的なサーバー例
from fastmcp import FastMCP
from datetime import datetime
import pytz
mcp = FastMCP("TimeToolServer")
# 利用可能なタイムゾーン一覧(例:Asia/Tokyo)
AVAILABLE_ZONES = {
"日本": "Asia/Tokyo",
"アメリカ/ニューヨーク": "America/New_York",
"イギリス": "Europe/London",
"ドイツ": "Europe/Berlin",
"インド": "Asia/Kolkata",
"中国": "Asia/Shanghai",
"ブラジル": "America/Sao_Paulo",
}
@mcp.tool()
def get_current_time(country: str = "日本") -> str:
"""
指定された国や地域の現在時刻を返します。
country: 国名または地域名(リテラル)
使用可能な値:
- "日本"
- "アメリカ/ニューヨーク"
- "イギリス"
- "ドイツ"
- "インド"
- "中国"
- "ブラジル"
"""
try:
tz_name = AVAILABLE_ZONES.get(country, "Asia/Tokyo") # デフォルト: 日本
tz = pytz.timezone(tz_name)
now = datetime.now(tz)
return f"{country}({tz_name})の現在時刻は {now.strftime('%Y-%m-%d %H:%M:%S')} です。"
except Exception as e:
return f"時刻の取得に失敗しました。指定された国が無効かもしれません: {str(e)}"
if __name__ == "__main__":
mcp.run(transport="sse")