fastmcp

fastmcp

タグ fastmcp sse


概要

  • 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")

参考