{"tools":[{"name":"show_csv_upload_ui","title":"法人番号CSVアップロードUI","description":"CSVファイルを選択してRailsへ一時アップロードし、法人番号検索ジョブを開始するUIを表示します。CSVファイルを処理したい、アップロードしたい、UIを開きたい場合に使ってください。","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ready":{"type":"boolean"}},"required":["ready"],"additionalProperties":false},"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"CSVアップロードUIを開いています…","openai/toolInvocation/invoked":"CSVアップロードUIを表示しました"},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}]},{"name":"search","title":"法人番号検索","description":"法人名と所在地から、日本の法人番号・正規化された企業名・本店所在地を検索します。入力する法人名は登記上の正式名称である必要があります。","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"検索したい法人名。例: 任天堂、トヨタ自動車"},"prefecture":{"type":"string","description":"都道府県名。例: 東京都、京都府"},"city":{"type":"string","description":"市区町村名。例: 千代田区、京都市南区"}},"required":["name"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"法人番号を検索しています…","openai/toolInvocation/invoked":"法人番号検索が完了しました"}},{"name":"search_corporate_numbers_in_csv_chunk","title":"100行以内CSVチャンク同期検索","description":"CSVテキストから法人番号を同期検索します。必ずヘッダー行を含めてください。このツールは少量確認用です。100行を超えるCSV、または複数チャンクを処理する場合は、このツールを繰り返すのではなく enqueue_corporate_number_search_job を使ってください。","inputSchema":{"type":"object","properties":{"csv_content":{"type":"string","description":"検索したい企業リストのCSVテキスト。ヘッダー行必須。"},"max_rows":{"type":"integer","description":"処理する最大行数。未指定の場合は50行、最大100行まで。","minimum":1,"maximum":100},"output_format":{"type":"string","enum":["json","csv","both"],"description":"出力形式。未指定の場合はboth。"}},"required":["csv_content"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"CSVテキストを解析して一括検索しています…","openai/toolInvocation/invoked":"CSVテキストの一括検索が完了しました"}},{"name":"enqueue_corporate_number_search_job","title":"CSVチャンク非同期検索ジョブ投入","description":"CSVテキストを非同期の法人番号検索ジョブとしてキューに投入し、job_idを返します。ChatGPTで大きいCSVを扱う場合は、CSVをヘッダー付きで100行以下のチャンクに分割し、このツールをチャンクごとに連続で呼び出してください。前のジョブ完了を待たずに全チャンクを先に投入してください。返されたjob_idは元のチャンク順に保持し、あとで get_corporate_number_search_job_result を同じ順番で呼び、返されたCSV本文を連結してください。","inputSchema":{"type":"object","properties":{"csv_content":{"type":"string","description":"検索したい企業リストのCSVテキスト。ヘッダー行必須。ChatGPTから渡す場合は100行以下のチャンク推奨。"},"max_rows":{"type":"integer","description":"このジョブで処理する最大行数。ChatGPTからの分割投入では100を指定してください。サーバー直送の大きなCSV本文では最大5000行まで。","minimum":1,"maximum":5000},"chunk_size":{"type":"integer","description":"ジョブ内部の分割件数。ChatGPTからの分割投入では100を指定してください。最大100。","minimum":1,"maximum":100}},"required":["csv_content"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"法人番号検索ジョブを開始しています…","openai/toolInvocation/invoked":"法人番号検索ジョブを開始しました"}},{"name":"bulk_search_job_start_from_file","title":"CSVファイルURL非同期検索ジョブ投入","description":"ChatGPT Apps UI の uploadFile / getFileDownloadUrl で得た file_url からCSVをRails側で取得し、法人番号検索ジョブとしてキューに投入します。大量CSVの本文をツール引数へ直接渡さずに処理する本番用ツールです。結果取得時は result_download_url を返すので、LLMはそのURLをダウンロードリンクとして提示してください。","inputSchema":{"type":"object","properties":{"file_url":{"type":"string","description":"ChatGPT Apps UI の getFileDownloadUrl が返したCSVダウンロードURL。"},"max_rows":{"type":"integer","description":"処理する最大行数。未指定は5000行、最大5000行まで。","minimum":1,"maximum":5000},"chunk_size":{"type":"integer","description":"ジョブ内部の分割件数。未指定は100、最大100。","minimum":1,"maximum":100}},"required":["file_url"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"CSVファイルを取得して法人番号検索ジョブを開始しています…","openai/toolInvocation/invoked":"法人番号検索ジョブを開始しました"}},{"name":"bulk_search_job_start_from_uploaded_file","title":"添付CSVファイル非同期検索ジョブ投入 v6.1","description":"v6.1: ChatGPTに添付されたCSVファイルを fileParams の file 引数として受け取り、download_url からRails側で取得して法人番号検索ジョブに投入します。ログ検索は V61_UPLOADED_FILE_TOOL / V61_FILE_REF で確認してください。","inputSchema":{"type":"object","properties":{"file":{"type":"object","description":"ChatGPTに添付されたCSVファイル。openai/fileParams により { download_url, file_id, mime_type, file_name } の形で渡されます。","properties":{"download_url":{"type":"string","description":"ChatGPTが発行する一時ダウンロードURL。"},"file_id":{"type":"string","description":"ChatGPT側のファイルID。"},"mime_type":{"type":"string","description":"ファイルのMIME type。"},"file_name":{"type":"string","description":"元ファイル名。"}},"required":["download_url"],"additionalProperties":true},"max_rows":{"type":"integer","description":"処理する最大行数。未指定は5000行、最大5000行まで。","minimum":1,"maximum":5000},"chunk_size":{"type":"integer","description":"ジョブ内部の分割件数。未指定は100、最大100。","minimum":1,"maximum":100}},"required":["file"],"additionalProperties":false},"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"添付CSVから法人番号検索ジョブを開始しています…","openai/toolInvocation/invoked":"添付CSVから法人番号検索ジョブを開始しました","openai/fileParams":["file"]},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}]},{"name":"bulk_search_job_start_from_buffer","title":"CSVバッファ非同期検索ジョブ投入","description":"ChatGPT iframe UI からRailsの upload_csv_buffer エンドポイントへ直接アップロード済みのCSVを、file_token で参照して法人番号検索ジョブに投入します。MCP tools/call にCSV本体や添付ファイルを渡さない本番用ツールです。","inputSchema":{"type":"object","properties":{"file_token":{"type":"string","description":"upload_csv_buffer が返した一時CSVバッファのトークン。"},"max_rows":{"type":"integer","description":"処理する最大行数。未指定は5000行、最大5000行まで。","minimum":1,"maximum":5000},"chunk_size":{"type":"integer","description":"ジョブ内部の分割件数。未指定は100、最大100。","minimum":1,"maximum":100}},"required":["file_token"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"アップロード済みCSVバッファから法人番号検索ジョブを開始しています…","openai/toolInvocation/invoked":"法人番号検索ジョブを開始しました"}},{"name":"check_corporate_number_search_job_status","title":"検索ジョブ進捗確認（任意）","description":"非同期検索ジョブの進捗確認用ツールです。processed_rows/total_rows, progress, progress_label を返します。LLMは progress_label を使って「143/1000 件完了」のように表示してください。","inputSchema":{"type":"object","properties":{"job_id":{"type":"string","description":"検索ジョブID。"}},"required":["job_id"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"ジョブ状況を確認しています…","openai/toolInvocation/invoked":"ジョブ状況を確認しました"}},{"name":"get_corporate_number_search_job_result","title":"検索ジョブ結果CSV取得","description":"非同期ジョブの結果を取得します。completedなら法人番号付きCSV本文ではなく result_download_url を返します。LLMは result_download_url をMarkdownリンクとしてユーザーに提示してください。running/queued の場合もエラーではなく processed_rows/total_rows, progress, progress_label を返すので、LLMは「143/1000 件完了」のように進捗をユーザーへ表示してください。","inputSchema":{"type":"object","properties":{"job_id":{"type":"string","description":"検索ジョブID。"}},"required":["job_id"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"_meta":{"securitySchemes":[{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/authorize?audience=https%3A%2F%2Fhoujin-bangou.stdev.jp%2Fapi","tokenUrl":"https://dev-xxeyzfnd6zp88cue.us.auth0.com/oauth/token","scopes":{"openid":"OpenID Connect","profile":"User profile","email":"Email address","read:corporate_number":"法人番号検索を実行する"}}}}],"ui":{"resourceUri":"ui://widget/corporate_number_upload.html","visibility":["model","app"]},"openai/outputTemplate":"ui://widget/corporate_number_upload.html","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"ジョブ結果を取得しています…","openai/toolInvocation/invoked":"ジョブ結果を取得しました"}}]}