{"responseCode":200,"message":"success","content":{"server":{"id":"mcp-app"},"tools":[{"name":"analyze_submissions","title":"Analyze Submissions","description":"Perform deep AI-powered analysis on one or more forms' submissions.\nUse this tool when the user wants insights, patterns, statistics, trends, or summaries derived from submission data.\nThis tool requires formIDs\u2014use search_asset first if you need to find the form IDs.\nSupports analyzing multiple forms in parallel; results are combined into a single response.\nExamples: \"What are the most common responses?\", \"Show trends in submission dates\", \"Analyze sentiment in feedback\", \"Give me a statistical summary\".\nDo NOT use this tool for simply listing or browsing submissions\u2014use list_submissions instead.\n\nCHUNKED ANALYSIS (important): For large datasets this tool splits results into chunks. When the response contains \"hasMore\": true you MUST immediately call this tool again with the nextChunkIndex value, keeping the same formIDs and analysisQuery. Do NOT speak to the user, do NOT summarize partial results, do NOT ask for confirmation between chunks. Silently continue fetching every chunk until hasMore is false. Only after the LAST chunk (hasMore: false) should you combine ALL chunk results and present a single comprehensive analysis to the user.","summary":"Perform deep AI-powered analysis on one or more forms' submissions.\nUse this tool when the user wants insights, patterns, statistics, trends, or summaries derived from submission data.\nThis tool requires formIDs\u2014use search_asset first if you need to find the form IDs.\nSupports analyzing multiple forms in parallel; results are combined into a single response.\nExamples: \"What are the most common responses?\", \"Show trends in submission dates\", \"Analyze sentiment in feedback\", \"Give me a statistical summary\".\nDo NOT use this tool for simply listing or browsing submissions\u2014use list_submissions instead.\n\nCHUNKED ANALYSIS (important): For large datasets this tool splits results into chunks. When the response contains \"hasMore\": true you MUST immediately call this tool again with the nextChunkIndex value, keeping the same formIDs and analysisQuery. Do NOT speak to the user, do NOT summarize partial results, do NOT ask for confirmation between chunks. Silently continue fetching every chunk until hasMore is false. Only after the LAST chunk (hasMore: false) should you combine ALL chunk results and present a single comprehensive analysis to the user.","inputSchema":{"type":"object","properties":{"formIDs":{"type":"array","items":{"type":"string"},"description":"Form IDs whose submissions will be analyzed. Provide a single form ID by default. Only supply more than one ID when the user explicitly requests cross-form comparison or combined analysis. Use the search_asset tool first if you need to find the form ID."},"analysisQuery":{"type":"string","description":"A natural-language query describing the desired analysis. Examples: \"What are the most common responses?\", \"Show submission trends by month\", \"Analyze sentiment in feedback\", \"Give me a statistical breakdown of all answers\"."},"limit":{"type":"number","description":"Maximum number of submissions to include in the analysis. Higher values provide more comprehensive results but increase processing time.","default":10000},"chunkIndex":{"type":"number","description":"Zero-based chunk index for large dataset analysis. Always start at 0. When hasMore is true in the response, immediately call again with nextChunkIndex without speaking to the user.","default":0}},"required":["formIDs","analysisQuery"]},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"task_type":{"type":"string","description":"The analysis task type."},"chunking":{"type":"object","description":"Present only when the dataset is large and split across multiple calls. When hasMore is true, call this tool again with the next chunkIndex.","properties":{"currentChunk":{"type":"number","description":"Zero-based index of the chunk returned in this response."},"totalChunks":{"type":"number","description":"Total number of chunks the dataset is split into."},"totalSubmissions":{"type":"number","description":"Total number of submissions across all chunks."},"chunkSize":{"type":"number","description":"Maximum number of submissions per chunk."},"analyzedInThisChunk":{"type":"number","description":"Actual number of submissions analyzed in this chunk."},"hasMore":{"type":"boolean","description":"True if there are more chunks to process. When true, call this tool again with the nextChunkIndex value."},"nextChunkIndex":{"type":"number","description":"The chunkIndex value to use for the next call. Null when hasMore is false."}}}},"additionalProperties":true,"required":["task_type"]}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"hasUI":false,"preventRetry":true},{"name":"assign_form","title":"Assign Form","description":"Assign a form to a email address","summary":"Assign a form to a email address","inputSchema":{"type":"object","properties":{"form_id":{"type":"string","description":"The ID of the form to assign"},"assignee_email":{"type":"string","description":"The email address to assign the form to"},"assignee_name":{"type":"string","description":"The name of the assignee. This will be used in the email that will be sent to the assignee."},"assignee_message":{"type":"string","description":"The message to assign the form to. This will be used in the email that will be sent to the assignee."}},"required":["form_id","assignee_email"]},"outputSchema":null,"outputMode":"unstructured","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"hasUI":false,"preventRetry":false},{"name":"create_form","title":"Create Form","description":"Create a new form based on the user's prompt When the response url is \"in_progress\", do not call create_form or edit_form again to check progress. Call fetch with the returned form id until metadata.build_status is \"completed\", \"awaiting_confirmation\", or \"failed\", waiting metadata.poll_after_seconds between retries. Use fetch.text as the final reply to the user. If fetch.text contains \"Tell the user:\", follow it exactly. When build_status is \"awaiting_confirmation\", ask the follow-up question in fetch.text and wait for the user's choice before calling edit_form again.","summary":"Create a new form based on the user's prompt","inputSchema":{"type":"object","properties":{"description":{"type":"string","description":"Description of the form to create"},"workspace_type":{"type":"string","enum":["personal","team"],"description":"The type of workspace where the form should be created. Use 'personal' for personal workspace, or 'team' for a team workspace. When the user mentions a team name, you MUST first call the get_teams tool to resolve the numeric team ID before calling this tool."},"team_id":{"type":"string","description":"The numeric team ID (e.g. '261523745469061'). This is NOT the team name. When workspace_type is 'team', you MUST first call the get_teams tool to look up the numeric team ID from the team name, then pass that numeric ID here. When workspace_type is 'personal', pass an empty string."}},"required":["description","workspace_type","team_id"],"additionalProperties":true},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"related_asset":{"type":"object","properties":{"asset_id":{"type":"string"},"asset_title":{"type":"string"},"asset_type":{"type":"string"},"asset_created_at":{"type":"string","description":"Creation datetime in ISO8601"},"asset_updated_at":{"type":"string","description":"Last updated datetime in ISO8601"},"action":{"type":"string"},"revision_id":{"type":["string","null"]},"url":{"type":"string","description":"The URL of the created form."},"is_draft_enabled":{"type":"boolean"}}}},"additionalProperties":true,"required":["related_asset"]}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"hasUI":true,"preventRetry":true},{"name":"create_submission","title":"Submit a new submission for a form","description":"Create a submission for a form.","summary":"Create a submission for a form.","inputSchema":{"type":"object","description":"The input to create a submission for a form. Guidance will be proveded if submission have missing fields or fails.","properties":{"form_id":{"description":"The ID of the form to submit to. If you do not have information about to form use list_forms, search or fetch to get the form by its id.","type":"string"},"question_answers":{"type":"array","description":"The answers to the questions in the form in text format. Answers will be extracted based on the question text and answer.","items":{"type":"object","properties":{"question_text":{"description":"The text of the question to answer.","type":"string"},"answer":{"description":"The answer to the question.","type":"string"}}}}},"required":["form_id","question_answers"]},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"form_id":{"description":"The ID of the form that the submission is for.","type":"string"},"result":{"description":"The result of the submission.","oneOf":[{"description":"The result of the submission. If the submission is successful, the submission id can be returned or an unknown value can be returned. Show the inbox link and submission link if the its possible.","type":"object","properties":{"submission_id":{"type":"string","description":"The submission ID of the submission."},"inbox_link":{"type":"string","description":"The inbox link of the submission."},"submission_link":{"type":"string","description":"The submission link of the submission."}},"required":["submission_id"]},{"description":"The result of the submission. If the submission fails, the error message will be returned with a guidance to troubleshoot the submission failure.","type":"object","properties":{"error":{"description":"The error message of the submission failure.","type":"string"},"guidance":{"description":"The guidance to the user to troubleshoot the submission failure. (e.g. if the submission fails because of a missing question, the guidance might suggest filling the missing question)","type":"string"}},"required":["error","guidance"]},{"description":"The result of the submission. If the submission requires more information, the guidance will be returned to ask the user for the information.","type":"object","properties":{"guidance":{"description":"The guidance to the user to ask for the information.","type":"string"}},"required":["guidance"]}]}},"additionalProperties":true}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"hasUI":false,"preventRetry":false},{"name":"display_form","title":"Display Form","description":"Display an existing form when the user wants to see, show, open, or view a specific form. \nUsed for displaying a single form, if the user wants to list or search forms, use search tool instead.\nRequires a known form ID. If the form ID is not known yet, use search first.\nExample scenario -- \"Show me my quiz form\": \nFirst step: Use search tool to find the form ID of the quiz form.\nSecond step: Use display form tool with the form ID to display the form. --","summary":"Display an existing form when the user wants to see, show, open, or view a specific form. \nUsed for displaying a single form, if the user wants to list or search forms, use search tool instead.\nRequires a known form ID. If the form ID is not known yet, use search first.\nExample scenario -- \"Show me my quiz form\": \nFirst step: Use search tool to find the form ID of the quiz form.\nSecond step: Use display form tool with the form ID to display the form. --","inputSchema":{"type":"object","properties":{"form_id":{"type":"string","description":"The ID of the form to display. "}},"required":["form_id"]},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the displayed form."},"url":{"type":"string","description":"The render URL of the displayed form."},"created_questions":{"type":"array","description":"The question texts of the displayed form.","items":{"type":"string"}}},"additionalProperties":true}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"hasUI":true,"preventRetry":false},{"name":"edit_form","title":"Edit Form","description":"Edit a form based on the user's prompt. Use high-level natural-language instructions only (e.g., \"Add a name question at the top\", \"Move the email question to the end\"). Do not specify internal field types, control names, or IDs. Another agent will map your intent to exact field types. When the response url is \"in_progress\", do not call create_form or edit_form again to check progress. Call fetch with the returned form id until metadata.build_status is \"completed\", \"awaiting_confirmation\", or \"failed\", waiting metadata.poll_after_seconds between retries. Use fetch.text as the final reply to the user. If fetch.text contains \"Tell the user:\", follow it exactly. When build_status is \"awaiting_confirmation\", ask the follow-up question in fetch.text and wait for the user's choice before calling edit_form again.","summary":"Edit a form based on the user's prompt. Use high-level natural-language instructions only (e.g., \"Add a name question at the top\", \"Move the email question to the end\"). Do not specify internal field types, control names, or IDs. Another agent will map your intent to exact field types.","inputSchema":{"type":"object","properties":{"form_id":{"type":"string","description":"ID of the form to edit."},"description":{"type":"string","description":"High-level natural-language instruction describing what to change (e.g., add\/move\/rename questions). Avoid specifying internal types or identifiers; another agent will infer the appropriate field types."}},"required":["form_id","description"],"additionalProperties":true},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"related_asset":{"type":"object","properties":{"asset_id":{"type":"string"},"asset_title":{"type":"string"},"asset_type":{"type":"string"},"asset_created_at":{"type":"string","description":"Creation datetime in ISO8601"},"asset_updated_at":{"type":"string","description":"Last updated datetime in ISO8601"},"action":{"type":"string"},"url":{"type":"string","description":"The URL of the edited form."},"link_asset_id":{"type":["string","null"]},"is_draft_mode":{"type":"boolean"},"changes":{"type":["string","null"]}}},"startRevisionID":{"type":"string"},"editedRevisionID":{"type":"string"}},"additionalProperties":true}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"hasUI":true,"preventRetry":true},{"name":"fetch","title":"Fetch","description":"This tool fetches information and metadata from Jotform based on a form id or a submission id When metadata.build_status is \"processing\", wait metadata.poll_after_seconds and call fetch again with the same form id. When build_status is \"completed\", \"awaiting_confirmation\", or \"failed\", use text as the final reply to the user. If text contains \"Tell the user:\", follow it exactly. When build_status is \"awaiting_confirmation\", ask the follow-up question with metadata.confirmation.choices and wait for the user before calling edit_form again.","summary":"This tool fetches information and metadata from Jotform based on a form id or a submission id","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The form id or the submission id to fetch information and metadata from"}},"required":["id"]},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the fetched resource"},"title":{"type":"string","description":"The title of the fetched resource"},"text":{"type":"string","description":"A short summary of the fetched resource"},"url":{"type":"string","description":"The URL of the fetched resource"},"metadata":{"type":"object","description":"Additional structured details about the resource. Properties vary by resource type.","additionalProperties":true}},"additionalProperties":true,"required":["id","title","text","metadata"]}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"hasUI":false,"preventRetry":false},{"name":"get_embed_code","title":"Get Embed Code","description":"Return the HTML embed (iframe) code for an existing form so the user can embed it on their website. \nUse this when the user wants to embed, add, or put a form on their website \/ page. \nRequires a known form ID. If the form ID is not known yet, use search first. \nShare the returned embed_code with the user verbatim so they can paste it into their site.","summary":"Return the HTML embed (iframe) code for an existing form so the user can embed it on their website. \nUse this when the user wants to embed, add, or put a form on their website \/ page. \nRequires a known form ID. If the form ID is not known yet, use search first. \nShare the returned embed_code with the user verbatim so they can paste it into their site.","inputSchema":{"type":"object","properties":{"form_id":{"type":"string","description":"The ID of the form to get the embed code for."}},"required":["form_id"]},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"form_id":{"type":"string","description":"The ID of the form."},"url":{"type":"string","description":"The render URL of the form."},"embed_code":{"type":"string","description":"The HTML iframe embed code for the form."}},"additionalProperties":true}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"hasUI":false,"preventRetry":false},{"name":"get_teams","title":"Get Teams","description":"Retrieves team information for the user in Enterprise environments. Returns team details including members when returnBasicTeamInfo is false.","summary":"Retrieves team information for the user in Enterprise environments. Returns team details including members when returnBasicTeamInfo is false.","inputSchema":{"type":"object","properties":{"returnBasicTeamInfo":{"type":"boolean","description":"If true, returns only team IDs and names without member details. If false (default), returns full team information including team members, their roles, and member count. Set to false when the user wants to see who is in a team.","default":false}},"required":["returnBasicTeamInfo"],"additionalProperties":true},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"teams":{"type":"array","description":"List of teams.","items":{"type":"object","properties":{"teamID":{"type":"string","description":"Unique team identifier."},"teamName":{"type":"string","description":"Display name of the team."}}}}},"additionalProperties":true}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"hasUI":false,"preventRetry":false},{"name":"list_submissions","title":"List Submissions","description":"List or filter form submissions.\nUse this tool when the user wants to view or filter submissions of forms.\nYou can list or filter submissions of a single form or multiple forms by passing the form_ids.\nWhen form_ids is empty, submissions are listed across the user's most recent forms, ordered by unread submissions.\nIf the user's query contains any form name, partial name, or keyword that identifies a form (e.g. \"Student Information Form\", \"RSVP\", \"Contact\"), you must resolve those to numeric form IDs before calling this tool.\nFilter Rules: date_filter is an array of two strings for the date range to filter by. The first item is the start date and the second item is the end date. Return empty array if no date filter is needed.\nFilter Rules: is_filtered_by_rules is a boolean to indicate if the submissions are filtered by rules.\nDo NOT use this tool for analysis, summaries, patterns, or statistics\u2014use analyze_submissions instead.","summary":"List or filter form submissions.\nUse this tool when the user wants to view or filter submissions of forms.\nYou can list or filter submissions of a single form or multiple forms by passing the form_ids.\nWhen form_ids is empty, submissions are listed across the user's most recent forms, ordered by unread submissions.\nIf the user's query contains any form name, partial name, or keyword that identifies a form (e.g. \"Student Information Form\", \"RSVP\", \"Contact\"), you must resolve those to numeric form IDs before calling this tool.\nFilter Rules: date_filter is an array of two strings for the date range to filter by. The first item is the start date and the second item is the end date. Return empty array if no date filter is needed.\nFilter Rules: is_filtered_by_rules is a boolean to indicate if the submissions are filtered by rules.\nDo NOT use this tool for analysis, summaries, patterns, or statistics\u2014use analyze_submissions instead.","inputSchema":{"type":"object","properties":{"form_ids":{"type":"array","items":{"type":"string"},"description":"An array of numeric form IDs whose submissions to list or filter. Only pass an empty array when the user has NOT specified any form name and wants to list across their most recent forms.","default":[]},"user_query":{"type":"string","description":"A natural-language description of what the user wants to list or filter. Used as the filtering criteria when is_filtered_by_rules is true.","default":""},"filter":{"type":"object","properties":{"date_filter":{"type":"array","items":{"type":"string","format":"date"},"description":"The date range to filter by in YYYY-MM-DD format. The first item is the start date and the second item is the end date. Return empty array if no date filter is needed.","default":[]},"is_filtered_by_rules":{"type":"boolean","description":"Set to true when the user's query contains content-based filtering criteria beyond dates. When true, an AI model filters submissions by matching answers against the user_query. Set to false for date-only or unfiltered listings.","default":false}},"default":{"date_filter":[],"is_filtered_by_rules":false}},"limit":{"type":"number","description":"Maximum number of submissions to return (default: 50).","default":1000}},"required":["form_ids","user_query","filter","limit"]},"outputSchema":{"type":"object","properties":{"message":{"type":"string","description":"A brief status message about the listing results."}},"required":["message"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"hasUI":true,"preventRetry":true},{"name":"search","title":"Asset Search","description":"Search assets.\nUse this tool when the goal is to find one or more assets that match optional title, date, submission-count, and sorting filters.\nYou can use this tool to find the asset ID of a asset by name or criteria to invoke any other tool that requires a asset ID.\nThis tool returns matching assets as search results and does not open or render a single asset.\nSubmissions are not a asset type. This tool does not search submissions.\nFilter Rules: title_filter is an array of plain strings for asset title matching (OR logic). Regex is not supported.\nFilter Rules: date_filter is an array of two strings in YYYY-MM-DD format for the date range to filter by. The first item is the start date and the second item is the end date. Return empty array if no date filter is needed.\nFilter Rules: min_submission_count is for the minimum number of submissions to filter by. Return zero if no submission filter is needed. Return 1 if the user wants to assets which have submissions.\nEmpty title_filter: Empty title_filter lists your assets.\norder_by: The default value is \"last_activity\", only use another option if a specific sorting is provided by the user.\nLimit controls how many assets are returned.\nExamples: (1) title_filter = [\"invoice\"] to find assets with \"invoice\" in the title; (2) title_filter = [] to list all your assets; (3) date_filter = [\"2024-01-01\", \"2024-12-31\"] to find assets created between January 1, 2024 and December 31, 2024; (4) order_by = \"most_recent_created\" to sort assets by the most recent creation date","summary":"Search assets.\nUse this tool when the goal is to find one or more assets that match optional title, date, submission-count, and sorting filters.\nYou can use this tool to find the asset ID of a asset by name or criteria to invoke any other tool that requires a asset ID.\nThis tool returns matching assets as search results and does not open or render a single asset.\nSubmissions are not a asset type. This tool does not search submissions.\nFilter Rules: title_filter is an array of plain strings for asset title matching (OR logic). Regex is not supported.\nFilter Rules: date_filter is an array of two strings in YYYY-MM-DD format for the date range to filter by. The first item is the start date and the second item is the end date. Return empty array if no date filter is needed.\nFilter Rules: min_submission_count is for the minimum number of submissions to filter by. Return zero if no submission filter is needed. Return 1 if the user wants to assets which have submissions.\nEmpty title_filter: Empty title_filter lists your assets.\norder_by: The default value is \"last_activity\", only use another option if a specific sorting is provided by the user.\nLimit controls how many assets are returned.\nExamples: (1) title_filter = [\"invoice\"] to find assets with \"invoice\" in the title; (2) title_filter = [] to list all your assets; (3) date_filter = [\"2024-01-01\", \"2024-12-31\"] to find assets created between January 1, 2024 and December 31, 2024; (4) order_by = \"most_recent_created\" to sort assets by the most recent creation date","inputSchema":{"type":"object","properties":{"user_query":{"type":"string","description":"A natural-language instruction describing what the user wants to find and list from assets.","default":""},"filter":{"type":"object","properties":{"date_filter":{"type":"array","items":{"type":"string","format":"date"},"description":"The date range to filter by in YYYY-MM-DD format. The first item is the start date and the second item is the end date. Return empty array if no date filter is needed.","default":[]},"title_filter":{"type":"array","items":{"type":"string"},"description":"Array of plain strings for asset title matching (OR logic). Regex is not supported. Empty array lists all your assets.","default":[]},"min_submission_count":{"type":"number","description":"The minimum number of submissions to filter by. Return 0 if no submission filter is needed. Return 1 if the user wants to assets which have submissions.","default":0}},"default":{"date_filter":[],"title_filter":[],"min_submission_count":0}},"order_by":{"type":"string","description":"Sort order for the results. The default value is \"last_activity\", only use another option if a sorting is really needed.","default":"last_activity","enum":["last_activity","most_recent_created","least_recent_created","submissions_count","last_submission"]},"limit":{"type":"number","description":"Maximum items fetched per underlying request (default: 20).","default":20}},"required":["user_query"]},"outputSchema":{"type":"object","properties":{"is_success":{"type":"boolean","description":"Whether the tool execution succeeded."},"message":{"type":"string","description":"Human-readable result description."},"error":{"type":"string","description":"Error description (present only on failure)."},"data":{"type":"object","properties":{"results":{"type":"array","description":"Personal workspace search results. Each item includes id, title, url.","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","title"]}},"teams":{"type":"array","description":"Team workspace search results grouped by team. Only present for enterprise users with teams enabled.","items":{"type":"object","properties":{"teamId":{"type":"string"},"teamName":{"type":"string"},"forms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","title"]}}},"required":["teamId","teamName","forms"]}}},"additionalProperties":true,"required":["results"]}},"required":["is_success","message","error","data"]},"outputMode":"structured","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"hasUI":true,"preventRetry":false}]},"duration":"137.15ms","info":null}