前提条件
MCP Python SDK を使用する前提で話します
結論から先にいうと
要は mcp.tool
デコレータに関数を渡せればMCPに登録できるので
下記のように、手動で登録しても良い。
from typing import Any
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("hidamari_character")
async def get_users_favorite_hidamari_schetch_character(user_name:str) -> str:
"""get users favorite hidamari schetch character
(ユーザー名ごとに、ひだまりスケッチの好きなキャラクターを返す)
Args:
user_name: ユーザー名
"""
# Claudeが上記メソッド定義を読み込んで、いい感じに呼び出してくれる。
if user_name == "masachaco":
return "宮ちゃんです"
return "該当のユーザーの情報は見つかりませんでした"
def main():
# デコレータを手動で呼んで、関数を渡すことでも、MCPサーバーに登録できる
mcp.tool()(get_users_favorite_hidamari_schetch_character)
mcp.run(transport='stdio')
if __name__ == "__main__":
main()
結果
想定通り利用できました。
何に使えるの
自作のAIエージェント用ツールや既存の関数についても、関数定義と、付属するコメントがしっかりしていればいいので、既存のコードを変更せずにツールとして提供することができる。