2026年1月22日木曜日

MCPツールshow_gui_object追加

 LLMがスケジュールナース内のオブジェクト操作を行ったとすると、それが、GUI上では、どうなるかを確認したくなると思います。LLMが「変更したけれどもこれでいいか?」みたいな状況を想定しています。

そこで、APIとMCPツールを追加しました。下がそのテストの様子です。

show_gui_objectは、二つの引数を持ちます。一つ目は、nameでこれは、

基本的には、スケジュールナース内オブジェクト固有の名前をセットします。この名前は、オブジェクト毎に決まっていて、ユーザが、変えることはできません。

例外は、制約グループ名です。複数のグループ名を区別する必要があるので、グループ名をセットします。

2番目は、def_nameで、ユーザが設定した名前が基本です。

@mcp.tool()
async def show_gui_object(name: str,def_name:str) ->ApiResponse:
    """(操作した)スケジュールナース内オブジェクトの状態に対応するGUI設定画面を前面に出すMCP ツール"""
    return await call_winforms_api("show_gui_object", {"text": name,"def_name":def_name})
  




        
async def test_show_gui_object():
        payload={"text":"ThisMonth","def_name":"今月"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"StartDisplayDate","def_name":"表示開始日"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"StartDate","def_name":"制約開始日"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"FinishDate","def_name":"制約終了日"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"HOLIDAYS","def_name":"祝"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"FRI","def_name":"金"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"AllDays","def_name":"全日"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"DayDef","def_name":"ICCRC非常勤土曜日勤務日"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()

        input()
        payload={"text":"DateAggregates","def_name":"制約開始日6日前から"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()

        payload={"text":"夜勤回数","def_name":"夜勤可能者平日の夜勤平準化"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()

        payload={"text":"管理職事務員看護師","def_name":"特定休みではない今月診療日処理"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()

        payload={"text":"Schedules","def_name":"スタッフ2184605"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()

        payload={"text":"StaffProperties","def_name":"スタッフ2184605"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"Solution","def_name":"スタッフ2184605"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"Shift Objects","def_name":"土日祝休み"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"ShiftAggregates","def_name":"夜勤"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        
        payload={"text":"GroupProperties","def_name":"Gr属性"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"GroupAggregates","def_name":"月曜休み者でない技看事"}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()
        payload={"text":"SolvingParameters","def_name":""}
        api_res= await call_winforms_api("show_gui_object",payload )
        input()

0 件のコメント:

コメントを投稿