• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

fastmcp

date: 2025-04-16 excerpt: fastmcp

tag: fastmcpssellm


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

参考

  • sse_example/server.py


fastmcpssellm Share Tweet