@credal/actions 0.2.216 → 0.2.217

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -263,7 +263,7 @@ export const asanaListAsanaTasksByProjectOutputSchema = z.object({
263
263
  }))
264
264
  .nullable()
265
265
  .optional(),
266
- num_subtasks: z.number().optional(),
266
+ num_subtasks: z.coerce.number().optional(),
267
267
  }),
268
268
  subtasks: z
269
269
  .array(z.object({
@@ -281,7 +281,7 @@ export const asanaListAsanaTasksByProjectOutputSchema = z.object({
281
281
  }))
282
282
  .nullable()
283
283
  .optional(),
284
- num_subtasks: z.number().optional(),
284
+ num_subtasks: z.coerce.number().optional(),
285
285
  }))
286
286
  .nullable()
287
287
  .optional(),
@@ -443,7 +443,7 @@ export const slackGetChannelMessagesParamsSchema = z.object({
443
443
  .string()
444
444
  .describe("Only messages before this Unix timestamp will be included. Default is the current time. Use with oldest to create a time range.")
445
445
  .optional(),
446
- limit: z
446
+ limit: z.coerce
447
447
  .number()
448
448
  .describe("Maximum number of messages to return (1-999). Default is 100. Slack recommends no more than 200 results at a time for performance.")
449
449
  .optional(),
@@ -500,7 +500,7 @@ export const slackUserSearchSlackParamsSchema = z.object({
500
500
  .enum(["im", "group", "channel"])
501
501
  .describe("Optional filter for the type of messages to search for. If not specified, all message types will be searched.")
502
502
  .optional(),
503
- limit: z
503
+ limit: z.coerce
504
504
  .number()
505
505
  .gte(1)
506
506
  .lte(100)
@@ -581,7 +581,7 @@ export const slackUserSearchSlackRTSParamsSchema = z.object({
581
581
  .boolean()
582
582
  .describe("Whether to include contextual messages in search results.")
583
583
  .default(false),
584
- limit: z.number().gte(1).lte(20).describe("Maximum number of results per page (max 20).").default(20),
584
+ limit: z.coerce.number().gte(1).lte(20).describe("Maximum number of results per page (max 20).").default(20),
585
585
  before: z
586
586
  .string()
587
587
  .describe("Optional UNIX timestamp filter. If present, filters for results before this date. Use this field when you want to find messages in a specific date/time range.")
@@ -619,10 +619,10 @@ export const slackUserSearchSlackRTSOutputSchema = z.object({
619
619
  .describe("Search results containing messages and/or files."),
620
620
  });
621
621
  export const mathAddParamsSchema = z.object({
622
- a: z.number().describe("The first number to add"),
623
- b: z.number().describe("The second number to add"),
622
+ a: z.coerce.number().describe("The first number to add"),
623
+ b: z.coerce.number().describe("The second number to add"),
624
624
  });
625
- export const mathAddOutputSchema = z.object({ result: z.number().describe("The sum of the two numbers") });
625
+ export const mathAddOutputSchema = z.object({ result: z.coerce.number().describe("The sum of the two numbers") });
626
626
  export const confluenceOverwritePageParamsSchema = z.object({
627
627
  pageId: z.string().describe("The page id for the page to add content to"),
628
628
  title: z.string().describe("The title of the page that should be updated"),
@@ -821,7 +821,7 @@ export const jiraUpdateJiraTicketStatusOutputSchema = z.object({
821
821
  });
822
822
  export const jiraGetJiraIssuesByQueryParamsSchema = z.object({
823
823
  query: z.string().describe("The JQL query to execute"),
824
- limit: z
824
+ limit: z.coerce
825
825
  .number()
826
826
  .describe("The maximum number of records to retrieve. Defaults to 100. For exhaustive queries where all matching issues are needed, set this to a value larger than the expected result count (e.g. 500 or 1000).")
827
827
  .optional(),
@@ -881,7 +881,7 @@ export const jiraGetJiraIssuesByQueryOutputSchema = z.object({
881
881
  }))
882
882
  .describe("The results of the Jira issues")
883
883
  .optional(),
884
- total: z
884
+ total: z.coerce
885
885
  .number()
886
886
  .describe("The total number of Jira issues matching the query. When present and greater than the number of results returned, re-run with a higher limit to retrieve all issues.")
887
887
  .optional(),
@@ -1084,7 +1084,7 @@ export const jiraOrgUpdateJiraTicketStatusOutputSchema = z.object({
1084
1084
  });
1085
1085
  export const jiraOrgGetJiraIssuesByQueryParamsSchema = z.object({
1086
1086
  query: z.string().describe("The JQL query to execute"),
1087
- limit: z
1087
+ limit: z.coerce
1088
1088
  .number()
1089
1089
  .describe("The maximum number of records to retrieve. Defaults to 100. For exhaustive queries where all matching issues are needed, set this to a value larger than the expected result count (e.g. 500 or 1000).")
1090
1090
  .optional(),
@@ -1144,7 +1144,7 @@ export const jiraOrgGetJiraIssuesByQueryOutputSchema = z.object({
1144
1144
  }))
1145
1145
  .describe("The results of the Jira issues")
1146
1146
  .optional(),
1147
- total: z
1147
+ total: z.coerce
1148
1148
  .number()
1149
1149
  .describe("The total number of Jira issues matching the query. When present and greater than the number of results returned, re-run with a higher limit to retrieve all issues.")
1150
1150
  .optional(),
@@ -1347,7 +1347,7 @@ export const jiraDataCenterUpdateJiraTicketStatusOutputSchema = z.object({
1347
1347
  });
1348
1348
  export const jiraDataCenterGetJiraIssuesByQueryParamsSchema = z.object({
1349
1349
  query: z.string().describe("The JQL query to execute"),
1350
- limit: z
1350
+ limit: z.coerce
1351
1351
  .number()
1352
1352
  .describe("The maximum number of records to retrieve. Defaults to 100. For exhaustive queries where all matching issues are needed, set this to a value larger than the expected result count (e.g. 500 or 1000).")
1353
1353
  .optional(),
@@ -1407,7 +1407,7 @@ export const jiraDataCenterGetJiraIssuesByQueryOutputSchema = z.object({
1407
1407
  }))
1408
1408
  .describe("The results of the Jira issues")
1409
1409
  .optional(),
1410
- total: z
1410
+ total: z.coerce
1411
1411
  .number()
1412
1412
  .describe("The total number of Jira issues matching the query. When present and greater than the number of results returned, re-run with a higher limit to retrieve all issues.")
1413
1413
  .optional(),
@@ -1490,8 +1490,8 @@ export const googlemapsValidateAddressOutputSchema = z.object({
1490
1490
  .object({
1491
1491
  location: z
1492
1492
  .object({
1493
- latitude: z.number().describe("The latitude of the address.").optional(),
1494
- longitude: z.number().describe("The longitude of the address.").optional(),
1493
+ latitude: z.coerce.number().describe("The latitude of the address.").optional(),
1494
+ longitude: z.coerce.number().describe("The longitude of the address.").optional(),
1495
1495
  })
1496
1496
  .optional(),
1497
1497
  plusCode: z
@@ -1503,8 +1503,12 @@ export const googlemapsValidateAddressOutputSchema = z.object({
1503
1503
  .optional(),
1504
1504
  bounds: z
1505
1505
  .object({
1506
- northeast: z.object({ latitude: z.number().optional(), longitude: z.number().optional() }).optional(),
1507
- southwest: z.object({ latitude: z.number().optional(), longitude: z.number().optional() }).optional(),
1506
+ northeast: z
1507
+ .object({ latitude: z.coerce.number().optional(), longitude: z.coerce.number().optional() })
1508
+ .optional(),
1509
+ southwest: z
1510
+ .object({ latitude: z.coerce.number().optional(), longitude: z.coerce.number().optional() })
1511
+ .optional(),
1508
1512
  })
1509
1513
  .describe("The viewport bounds for the address.")
1510
1514
  .optional(),
@@ -1521,15 +1525,15 @@ export const googlemapsValidateAddressOutputSchema = z.object({
1521
1525
  .optional(),
1522
1526
  });
1523
1527
  export const googlemapsNearbysearchRestaurantsParamsSchema = z.object({
1524
- latitude: z.number().describe("The latitude of the location to search nearby"),
1525
- longitude: z.number().describe("The longitude of the location to search nearby"),
1528
+ latitude: z.coerce.number().describe("The latitude of the location to search nearby"),
1529
+ longitude: z.coerce.number().describe("The longitude of the location to search nearby"),
1526
1530
  });
1527
1531
  export const googlemapsNearbysearchRestaurantsOutputSchema = z.object({
1528
1532
  results: z
1529
1533
  .array(z.object({
1530
1534
  name: z.string().describe("The name of the place").optional(),
1531
1535
  address: z.string().describe("The address of the place").optional(),
1532
- rating: z.number().describe("The rating of the place").optional(),
1536
+ rating: z.coerce.number().describe("The rating of the place").optional(),
1533
1537
  priceLevel: z.string().describe("The price level of the place").optional(),
1534
1538
  openingHours: z.string().describe("The opening hours of the place").optional(),
1535
1539
  primaryType: z.string().describe("The primary type of the place").optional(),
@@ -1540,7 +1544,7 @@ export const googlemapsNearbysearchRestaurantsOutputSchema = z.object({
1540
1544
  });
1541
1545
  export const bingGetTopNSearchResultUrlsParamsSchema = z.object({
1542
1546
  query: z.string().describe("The query to search for"),
1543
- count: z.number().describe("The number of results to return. Default is 5.").optional(),
1547
+ count: z.coerce.number().describe("The number of results to return. Default is 5.").optional(),
1544
1548
  site: z
1545
1549
  .string()
1546
1550
  .describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
@@ -1558,7 +1562,7 @@ export const zendeskCreateZendeskTicketParamsSchema = z.object({
1558
1562
  subject: z.string().describe("The subject of the ticket"),
1559
1563
  body: z.string().describe("The body of the ticket").optional(),
1560
1564
  subdomain: z.string().describe("The subdomain of the Zendesk account"),
1561
- groupId: z.number().describe("The ID of the group to assign the ticket to").optional(),
1565
+ groupId: z.coerce.number().describe("The ID of the group to assign the ticket to").optional(),
1562
1566
  });
1563
1567
  export const zendeskCreateZendeskTicketOutputSchema = z.object({
1564
1568
  ticketId: z.string().describe("The ID of the ticket created"),
@@ -1570,7 +1574,7 @@ export const zendeskListZendeskTicketsParamsSchema = z.object({
1570
1574
  });
1571
1575
  export const zendeskListZendeskTicketsOutputSchema = z.object({
1572
1576
  tickets: z.array(z.object({}).catchall(z.any())).describe("List of tickets"),
1573
- count: z.number().describe("Number of tickets found"),
1577
+ count: z.coerce.number().describe("Number of tickets found"),
1574
1578
  });
1575
1579
  export const zendeskGetTicketDetailsParamsSchema = z.object({
1576
1580
  ticketId: z.string().describe("The ID of the ticket"),
@@ -1612,11 +1616,11 @@ export const zendeskSearchZendeskByQueryParamsSchema = z.object({
1612
1616
  .enum(["ticket", "user", "organization", "group"])
1613
1617
  .describe("The type of Zendesk object to search (defaults to ticket)")
1614
1618
  .optional(),
1615
- limit: z.number().describe("Maximum number of objects to return (optional, defaults to 100)").optional(),
1619
+ limit: z.coerce.number().describe("Maximum number of objects to return (optional, defaults to 100)").optional(),
1616
1620
  });
1617
1621
  export const zendeskSearchZendeskByQueryOutputSchema = z.object({
1618
1622
  results: z.array(z.object({}).catchall(z.any())).describe("List of objects matching the query"),
1619
- count: z.number().describe("Number of objects found"),
1623
+ count: z.coerce.number().describe("Number of objects found"),
1620
1624
  });
1621
1625
  export const linkedinCreateShareLinkedinPostUrlParamsSchema = z.object({
1622
1626
  text: z.string().describe("The text for the linkedin post").optional(),
@@ -1667,12 +1671,12 @@ export const snowflakeRunSnowflakeQueryParamsSchema = z.object({
1667
1671
  accountName: z.string().describe("The name of the Snowflake account"),
1668
1672
  username: z.string().describe("The username of the Snowflake Credential (optional)").optional(),
1669
1673
  outputFormat: z.enum(["json", "csv"]).describe("The format of the output").optional(),
1670
- limit: z.number().describe("A limit on the number of rows to return").optional(),
1671
- codeInterpreterLimit: z
1674
+ limit: z.coerce.number().describe("A limit on the number of rows to return").optional(),
1675
+ codeInterpreterLimit: z.coerce
1672
1676
  .number()
1673
1677
  .describe("A minimum number of rows required to pass to code interpreter for analysis and image generation (if enabled)")
1674
1678
  .optional(),
1675
- codeInterpreterImageGenLimit: z
1679
+ codeInterpreterImageGenLimit: z.coerce
1676
1680
  .number()
1677
1681
  .describe("A minimum number of rows required to pass to code interpreter for image generation only (if enabled)")
1678
1682
  .optional(),
@@ -1680,7 +1684,7 @@ export const snowflakeRunSnowflakeQueryParamsSchema = z.object({
1680
1684
  export const snowflakeRunSnowflakeQueryOutputSchema = z.object({
1681
1685
  format: z.enum(["json", "csv"]).describe("The format of the output"),
1682
1686
  content: z.string().describe("The content of the query result (json)"),
1683
- rowCount: z.number().describe("The number of rows returned by the query"),
1687
+ rowCount: z.coerce.number().describe("The number of rows returned by the query"),
1684
1688
  error: z.string().describe("The error that occurred if the query results failed or were limited").optional(),
1685
1689
  });
1686
1690
  export const openstreetmapGetLatitudeLongitudeFromLocationParamsSchema = z.object({
@@ -1689,22 +1693,22 @@ export const openstreetmapGetLatitudeLongitudeFromLocationParamsSchema = z.objec
1689
1693
  export const openstreetmapGetLatitudeLongitudeFromLocationOutputSchema = z.object({
1690
1694
  results: z
1691
1695
  .array(z.object({
1692
- latitude: z.number().describe("The latitude of the location"),
1693
- longitude: z.number().describe("The longitude of the location"),
1696
+ latitude: z.coerce.number().describe("The latitude of the location"),
1697
+ longitude: z.coerce.number().describe("The longitude of the location"),
1694
1698
  display_name: z.string().describe("The display name of the location"),
1695
1699
  }))
1696
1700
  .describe("The results of the query")
1697
1701
  .optional(),
1698
1702
  });
1699
1703
  export const nwsGetForecastForLocationParamsSchema = z.object({
1700
- latitude: z.number().describe("The latitude of the location"),
1701
- longitude: z.number().describe("The longitude of the location"),
1704
+ latitude: z.coerce.number().describe("The latitude of the location"),
1705
+ longitude: z.coerce.number().describe("The longitude of the location"),
1702
1706
  isoDate: z.string().describe("The date to get the forecast for, in ISO datetime format"),
1703
1707
  });
1704
1708
  export const nwsGetForecastForLocationOutputSchema = z.object({
1705
1709
  result: z
1706
1710
  .object({
1707
- temperature: z.number().describe("The temperature at the location"),
1711
+ temperature: z.coerce.number().describe("The temperature at the location"),
1708
1712
  temperatureUnit: z.string().describe("The unit of temperature"),
1709
1713
  forecast: z.string().describe("The forecast for the location"),
1710
1714
  })
@@ -1712,9 +1716,9 @@ export const nwsGetForecastForLocationOutputSchema = z.object({
1712
1716
  });
1713
1717
  export const firecrawlDeepResearchParamsSchema = z.object({
1714
1718
  query: z.string().describe("The query to search for"),
1715
- maxDepth: z.number().describe("The maximum depth of the search").optional(),
1716
- timeLimit: z.number().describe("The time limit for the search in seconds").optional(),
1717
- maxUrls: z.number().describe("The maximum number of URLs to scrape").optional(),
1719
+ maxDepth: z.coerce.number().describe("The maximum depth of the search").optional(),
1720
+ timeLimit: z.coerce.number().describe("The time limit for the search in seconds").optional(),
1721
+ maxUrls: z.coerce.number().describe("The maximum number of URLs to scrape").optional(),
1718
1722
  });
1719
1723
  export const firecrawlDeepResearchOutputSchema = z.object({
1720
1724
  finalAnalysis: z.string().describe("The content of the research"),
@@ -1728,7 +1732,7 @@ export const firecrawlDeepResearchOutputSchema = z.object({
1728
1732
  });
1729
1733
  export const firecrawlScrapeUrlParamsSchema = z.object({
1730
1734
  url: z.string().describe("The URL to scrape"),
1731
- waitMs: z.number().gte(0).describe("Optional wait time in milliseconds before scraping the page").optional(),
1735
+ waitMs: z.coerce.number().gte(0).describe("Optional wait time in milliseconds before scraping the page").optional(),
1732
1736
  onlyMainContent: z
1733
1737
  .boolean()
1734
1738
  .describe("Extract only the main content of the page, excluding headers, footers, and navigation")
@@ -1752,7 +1756,7 @@ export const firecrawlScrapeUrlOutputSchema = z.object({
1752
1756
  });
1753
1757
  export const firecrawlSearchAndScrapeParamsSchema = z.object({
1754
1758
  query: z.string().describe("The query to search for"),
1755
- count: z.number().describe("The number of results to return. Default is 5.").optional(),
1759
+ count: z.coerce.number().describe("The number of results to return. Default is 5.").optional(),
1756
1760
  site: z
1757
1761
  .string()
1758
1762
  .describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
@@ -1769,7 +1773,7 @@ export const firecrawlSearchAndScrapeOutputSchema = z.object({
1769
1773
  });
1770
1774
  export const firecrawlGetTopNSearchResultUrlsParamsSchema = z.object({
1771
1775
  query: z.string().describe("The query to search for"),
1772
- count: z.number().describe("The number of results to return. Default is 5.").optional(),
1776
+ count: z.coerce.number().describe("The number of results to return. Default is 5.").optional(),
1773
1777
  site: z
1774
1778
  .string()
1775
1779
  .describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
@@ -1864,7 +1868,9 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1864
1868
  text: z.string().describe("The text to insert"),
1865
1869
  location: z
1866
1870
  .object({
1867
- index: z.number().describe("The zero-based index in the document where to insert the text"),
1871
+ index: z.coerce
1872
+ .number()
1873
+ .describe("The zero-based index in the document where to insert the text"),
1868
1874
  })
1869
1875
  .describe("The location where the text will be inserted"),
1870
1876
  })
@@ -1887,7 +1893,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1887
1893
  bold: z.boolean().describe("Whether the text is bold").optional(),
1888
1894
  fontSize: z
1889
1895
  .object({
1890
- magnitude: z.number().describe("The font size in points").optional(),
1896
+ magnitude: z.coerce.number().describe("The font size in points").optional(),
1891
1897
  unit: z.string().describe("The units for the font size").optional(),
1892
1898
  })
1893
1899
  .describe("The size of the text's font")
@@ -1907,7 +1913,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1907
1913
  weightedFontFamily: z
1908
1914
  .object({
1909
1915
  fontFamily: z.string().describe("The font family of the text").optional(),
1910
- weight: z.number().describe("The weight of the font").optional(),
1916
+ weight: z.coerce.number().describe("The weight of the font").optional(),
1911
1917
  })
1912
1918
  .describe("The font family and weight of the text")
1913
1919
  .optional(),
@@ -1916,8 +1922,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1916
1922
  fields: z.string().describe("The fields that should be updated"),
1917
1923
  range: z
1918
1924
  .object({
1919
- startIndex: z.number().describe("The zero-based starting index of the range"),
1920
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
1925
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
1926
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
1921
1927
  })
1922
1928
  .describe("The range of text to style")
1923
1929
  .optional(),
@@ -1929,8 +1935,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1929
1935
  .object({
1930
1936
  range: z
1931
1937
  .object({
1932
- startIndex: z.number().describe("The zero-based starting index of the range"),
1933
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
1938
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
1939
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
1934
1940
  })
1935
1941
  .describe("The range of content to delete"),
1936
1942
  })
@@ -1942,10 +1948,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1942
1948
  tableCellLocation: z
1943
1949
  .object({
1944
1950
  tableStartLocation: z
1945
- .object({ index: z.number().describe("The zero-based index in the document") })
1951
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1946
1952
  .describe("The location where the table starts"),
1947
- rowIndex: z.number().describe("The zero-based row index").optional(),
1948
- columnIndex: z.number().describe("The zero-based column index").optional(),
1953
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
1954
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1949
1955
  })
1950
1956
  .describe("The location where the table row will be inserted"),
1951
1957
  insertBelow: z.boolean().describe("Whether to insert the row below the reference row"),
@@ -1958,10 +1964,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1958
1964
  tableCellLocation: z
1959
1965
  .object({
1960
1966
  tableStartLocation: z
1961
- .object({ index: z.number().describe("The zero-based index in the document") })
1967
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1962
1968
  .describe("The location where the table starts"),
1963
- rowIndex: z.number().describe("The zero-based row index").optional(),
1964
- columnIndex: z.number().describe("The zero-based column index").optional(),
1969
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
1970
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1965
1971
  })
1966
1972
  .describe("The location where the table column will be inserted"),
1967
1973
  insertRight: z
@@ -1976,10 +1982,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1976
1982
  tableCellLocation: z
1977
1983
  .object({
1978
1984
  tableStartLocation: z
1979
- .object({ index: z.number().describe("The zero-based index in the document") })
1985
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1980
1986
  .describe("The location where the table starts"),
1981
- rowIndex: z.number().describe("The zero-based row index").optional(),
1982
- columnIndex: z.number().describe("The zero-based column index").optional(),
1987
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
1988
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1983
1989
  })
1984
1990
  .describe("The location of the row to delete"),
1985
1991
  })
@@ -1991,10 +1997,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1991
1997
  tableCellLocation: z
1992
1998
  .object({
1993
1999
  tableStartLocation: z
1994
- .object({ index: z.number().describe("The zero-based index in the document") })
2000
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1995
2001
  .describe("The location where the table starts"),
1996
- rowIndex: z.number().describe("The zero-based row index").optional(),
1997
- columnIndex: z.number().describe("The zero-based column index").optional(),
2002
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2003
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1998
2004
  })
1999
2005
  .describe("The location of the column to delete"),
2000
2006
  })
@@ -2005,8 +2011,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2005
2011
  .object({
2006
2012
  range: z
2007
2013
  .object({
2008
- startIndex: z.number().describe("The zero-based starting index of the range"),
2009
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2014
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2015
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2010
2016
  })
2011
2017
  .describe("The range of paragraphs to update"),
2012
2018
  paragraphStyle: z
@@ -2021,7 +2027,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2021
2027
  .optional(),
2022
2028
  indentStart: z
2023
2029
  .object({
2024
- magnitude: z.number().describe("The magnitude of indentation").optional(),
2030
+ magnitude: z.coerce.number().describe("The magnitude of indentation").optional(),
2025
2031
  unit: z.string().describe("The units of indentation").optional(),
2026
2032
  })
2027
2033
  .describe("The amount of indentation for the paragraph")
@@ -2041,7 +2047,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2041
2047
  .describe("Whether to keep all lines on the same page")
2042
2048
  .optional(),
2043
2049
  keepWithNext: z.boolean().describe("Whether to keep with the next paragraph").optional(),
2044
- lineSpacing: z.number().describe("The amount of space between lines").optional(),
2050
+ lineSpacing: z.coerce.number().describe("The amount of space between lines").optional(),
2045
2051
  spaceAbove: z
2046
2052
  .object({})
2047
2053
  .catchall(z.any())
@@ -2074,8 +2080,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2074
2080
  .object({
2075
2081
  range: z
2076
2082
  .object({
2077
- startIndex: z.number().describe("The zero-based starting index of the range"),
2078
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2083
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2084
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2079
2085
  })
2080
2086
  .describe("The range of paragraphs to bullet"),
2081
2087
  bulletPreset: z
@@ -2107,8 +2113,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2107
2113
  .object({
2108
2114
  range: z
2109
2115
  .object({
2110
- startIndex: z.number().describe("The zero-based starting index of the range"),
2111
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2116
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2117
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2112
2118
  })
2113
2119
  .describe("The range of paragraphs to remove bullets from"),
2114
2120
  })
@@ -2118,7 +2124,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2118
2124
  insertPageBreak: z
2119
2125
  .object({
2120
2126
  location: z
2121
- .object({ index: z.number().describe("The zero-based index in the document") })
2127
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2122
2128
  .describe("The location at which to insert the page break"),
2123
2129
  })
2124
2130
  .describe("Inserts a page break"),
@@ -2149,7 +2155,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2149
2155
  marginBottom: z.object({}).catchall(z.any()).describe("The bottom page margin").optional(),
2150
2156
  marginRight: z.object({}).catchall(z.any()).describe("The right page margin").optional(),
2151
2157
  marginLeft: z.object({}).catchall(z.any()).describe("The left page margin").optional(),
2152
- pageNumberStart: z.number().describe("The page number from which to start counting").optional(),
2158
+ pageNumberStart: z.coerce
2159
+ .number()
2160
+ .describe("The page number from which to start counting")
2161
+ .optional(),
2153
2162
  pageSize: z
2154
2163
  .object({
2155
2164
  width: z.object({}).catchall(z.any()).describe("The width of the page").optional(),
@@ -2207,7 +2216,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2207
2216
  .describe("The right border of the cells")
2208
2217
  .optional(),
2209
2218
  borderTop: z.object({}).catchall(z.any()).describe("The top border of the cells").optional(),
2210
- columnSpan: z.number().describe("The number of columns that the cell spans").optional(),
2219
+ columnSpan: z.coerce.number().describe("The number of columns that the cell spans").optional(),
2211
2220
  contentAlignment: z
2212
2221
  .string()
2213
2222
  .describe("The alignment of the content within the cells")
@@ -2228,7 +2237,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2228
2237
  .describe("The right padding of the cells")
2229
2238
  .optional(),
2230
2239
  paddingTop: z.object({}).catchall(z.any()).describe("The top padding of the cells").optional(),
2231
- rowSpan: z.number().describe("The number of rows that the cell spans").optional(),
2240
+ rowSpan: z.coerce.number().describe("The number of rows that the cell spans").optional(),
2232
2241
  })
2233
2242
  .describe("The style to apply to the cells"),
2234
2243
  fields: z.string().describe("The fields that should be updated"),
@@ -2237,14 +2246,14 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2237
2246
  tableCellLocation: z
2238
2247
  .object({
2239
2248
  tableStartLocation: z
2240
- .object({ index: z.number().describe("The zero-based index in the document") })
2249
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2241
2250
  .describe("The location where the table starts"),
2242
- rowIndex: z.number().describe("The zero-based row index").optional(),
2243
- columnIndex: z.number().describe("The zero-based column index").optional(),
2251
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2252
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
2244
2253
  })
2245
2254
  .describe("The location of the table cell"),
2246
- rowSpan: z.number().describe("The number of rows that the range should span"),
2247
- columnSpan: z.number().describe("The number of columns that the range should span"),
2255
+ rowSpan: z.coerce.number().describe("The number of rows that the range should span"),
2256
+ columnSpan: z.coerce.number().describe("The number of columns that the range should span"),
2248
2257
  })
2249
2258
  .describe("The table range to apply the style to"),
2250
2259
  })
@@ -2258,14 +2267,14 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2258
2267
  tableCellLocation: z
2259
2268
  .object({
2260
2269
  tableStartLocation: z
2261
- .object({ index: z.number().describe("The zero-based index in the document") })
2270
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2262
2271
  .describe("The location where the table starts"),
2263
- rowIndex: z.number().describe("The zero-based row index").optional(),
2264
- columnIndex: z.number().describe("The zero-based column index").optional(),
2272
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2273
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
2265
2274
  })
2266
2275
  .describe("The location of the table cell"),
2267
- rowSpan: z.number().describe("The number of rows that the range should span"),
2268
- columnSpan: z.number().describe("The number of columns that the range should span"),
2276
+ rowSpan: z.coerce.number().describe("The number of rows that the range should span"),
2277
+ columnSpan: z.coerce.number().describe("The number of columns that the range should span"),
2269
2278
  })
2270
2279
  .describe("The table range to merge"),
2271
2280
  })
@@ -2279,14 +2288,14 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2279
2288
  tableCellLocation: z
2280
2289
  .object({
2281
2290
  tableStartLocation: z
2282
- .object({ index: z.number().describe("The zero-based index in the document") })
2291
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2283
2292
  .describe("The location where the table starts"),
2284
- rowIndex: z.number().describe("The zero-based row index").optional(),
2285
- columnIndex: z.number().describe("The zero-based column index").optional(),
2293
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2294
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
2286
2295
  })
2287
2296
  .describe("The location of the table cell"),
2288
- rowSpan: z.number().describe("The number of rows that the range should span"),
2289
- columnSpan: z.number().describe("The number of columns that the range should span"),
2297
+ rowSpan: z.coerce.number().describe("The number of rows that the range should span"),
2298
+ columnSpan: z.coerce.number().describe("The number of columns that the range should span"),
2290
2299
  })
2291
2300
  .describe("The table range to unmerge"),
2292
2301
  })
@@ -2298,8 +2307,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2298
2307
  name: z.string().describe("The name of the range"),
2299
2308
  range: z
2300
2309
  .object({
2301
- startIndex: z.number().describe("The zero-based starting index of the range"),
2302
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2310
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2311
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2303
2312
  })
2304
2313
  .describe("The range to name"),
2305
2314
  })
@@ -2322,7 +2331,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2322
2331
  insertInlineImage: z
2323
2332
  .object({
2324
2333
  location: z
2325
- .object({ index: z.number().describe("The zero-based index in the document") })
2334
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2326
2335
  .describe("The location at which to insert the image"),
2327
2336
  uri: z.string().describe("The image URI"),
2328
2337
  objectSize: z
@@ -2383,15 +2392,15 @@ export const googleOauthScheduleCalendarMeetingParamsSchema = z.object({
2383
2392
  recurrence: z
2384
2393
  .object({
2385
2394
  frequency: z.enum(["DAILY", "WEEKLY", "MONTHLY", "YEARLY"]).describe("How often the meeting repeats").optional(),
2386
- interval: z.number().gte(1).describe("The interval between recurrences (e.g., every 2 weeks)").optional(),
2387
- count: z.number().gte(1).describe("Number of occurrences after which to stop the recurrence").optional(),
2395
+ interval: z.coerce.number().gte(1).describe("The interval between recurrences (e.g., every 2 weeks)").optional(),
2396
+ count: z.coerce.number().gte(1).describe("Number of occurrences after which to stop the recurrence").optional(),
2388
2397
  until: z.string().describe("End date for the recurrence in RFC3339 format (YYYY-MM-DD)").optional(),
2389
2398
  byDay: z
2390
2399
  .array(z.enum(["MO", "TU", "WE", "TH", "FR", "SA", "SU"]))
2391
2400
  .describe("Days of the week when the meeting occurs (for WEEKLY frequency)")
2392
2401
  .optional(),
2393
2402
  byMonthDay: z
2394
- .array(z.number().gte(1).lte(31))
2403
+ .array(z.coerce.number().gte(1).lte(31))
2395
2404
  .describe("Days of the month when the meeting occurs (for MONTHLY frequency)")
2396
2405
  .optional(),
2397
2406
  })
@@ -2409,7 +2418,7 @@ export const googleOauthScheduleCalendarMeetingOutputSchema = z.object({
2409
2418
  error: z.string().describe("The error that occurred if the meeting was not scheduled successfully").optional(),
2410
2419
  });
2411
2420
  export const googleOauthListCalendarsParamsSchema = z.object({
2412
- maxResults: z.number().describe("Maximum number of calendars to return, defaults to 250").optional(),
2421
+ maxResults: z.coerce.number().describe("Maximum number of calendars to return, defaults to 250").optional(),
2413
2422
  });
2414
2423
  export const googleOauthListCalendarsOutputSchema = z.object({
2415
2424
  success: z.boolean().describe("Whether the calendars were listed successfully"),
@@ -2421,7 +2430,7 @@ export const googleOauthListCalendarsOutputSchema = z.object({
2421
2430
  export const googleOauthListCalendarEventsParamsSchema = z.object({
2422
2431
  calendarId: z.string().describe("The ID of the calendar to list events from"),
2423
2432
  query: z.string().describe("Optional free-text search query to filter events").optional(),
2424
- maxResults: z.number().describe("Maximum number of events to return, defaults to 250").optional(),
2433
+ maxResults: z.coerce.number().describe("Maximum number of events to return, defaults to 250").optional(),
2425
2434
  timeMin: z
2426
2435
  .string()
2427
2436
  .describe("Optional lower bound (exclusive) for an event's end time to filter by. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z.")
@@ -2585,10 +2594,10 @@ export const googleOauthCreateSpreadsheetParamsSchema = z.object({
2585
2594
  title: z.string().describe("The title of the sheet").optional(),
2586
2595
  gridProperties: z
2587
2596
  .object({
2588
- rowCount: z.number().describe("The number of rows in the sheet").optional(),
2589
- columnCount: z.number().describe("The number of columns in the sheet").optional(),
2590
- frozenRowCount: z.number().describe("The number of frozen rows").optional(),
2591
- frozenColumnCount: z.number().describe("The number of frozen columns").optional(),
2597
+ rowCount: z.coerce.number().describe("The number of rows in the sheet").optional(),
2598
+ columnCount: z.coerce.number().describe("The number of columns in the sheet").optional(),
2599
+ frozenRowCount: z.coerce.number().describe("The number of frozen rows").optional(),
2600
+ frozenColumnCount: z.coerce.number().describe("The number of frozen columns").optional(),
2592
2601
  })
2593
2602
  .optional(),
2594
2603
  }))
@@ -2609,9 +2618,9 @@ export const googleOauthCreateSpreadsheetOutputSchema = z.object({
2609
2618
  spreadsheetUrl: z.string().describe("The URL to access the created spreadsheet").optional(),
2610
2619
  sheets: z
2611
2620
  .array(z.object({
2612
- sheetId: z.number().describe("The ID of the sheet").optional(),
2621
+ sheetId: z.coerce.number().describe("The ID of the sheet").optional(),
2613
2622
  title: z.string().describe("The title of the sheet").optional(),
2614
- index: z.number().describe("The index of the sheet").optional(),
2623
+ index: z.coerce.number().describe("The index of the sheet").optional(),
2615
2624
  }))
2616
2625
  .describe("Information about the created sheets")
2617
2626
  .optional(),
@@ -2626,10 +2635,10 @@ export const googleOauthGetSpreadsheetMetadataOutputSchema = z.object({
2626
2635
  spreadsheetTitle: z.string().describe("The spreadsheet title").optional(),
2627
2636
  sheets: z
2628
2637
  .array(z.object({
2629
- sheetId: z.number().describe("The ID of the sheet").optional(),
2638
+ sheetId: z.coerce.number().describe("The ID of the sheet").optional(),
2630
2639
  title: z.string().describe("The sheet title").optional(),
2631
- index: z.number().describe("The sheet index").optional(),
2632
- gid: z.number().describe("The gid used in Google Sheets URLs (same value as sheetId)").optional(),
2640
+ index: z.coerce.number().describe("The sheet index").optional(),
2641
+ gid: z.coerce.number().describe("The gid used in Google Sheets URLs (same value as sheetId)").optional(),
2633
2642
  }))
2634
2643
  .describe("The list of sheets in the spreadsheet")
2635
2644
  .optional(),
@@ -2651,8 +2660,8 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2651
2660
  title: z.string().describe("The title of the new sheet").optional(),
2652
2661
  gridProperties: z
2653
2662
  .object({
2654
- rowCount: z.number().describe("The number of rows in the sheet").optional(),
2655
- columnCount: z.number().describe("The number of columns in the sheet").optional(),
2663
+ rowCount: z.coerce.number().describe("The number of rows in the sheet").optional(),
2664
+ columnCount: z.coerce.number().describe("The number of columns in the sheet").optional(),
2656
2665
  })
2657
2666
  .optional(),
2658
2667
  })
@@ -2662,7 +2671,9 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2662
2671
  .describe("Add or update a sheet"),
2663
2672
  z
2664
2673
  .object({
2665
- deleteSheet: z.object({ sheetId: z.number().describe("The ID of the sheet to delete").optional() }),
2674
+ deleteSheet: z.object({
2675
+ sheetId: z.coerce.number().describe("The ID of the sheet to delete").optional(),
2676
+ }),
2666
2677
  })
2667
2678
  .describe("Delete a sheet"),
2668
2679
  z
@@ -2670,11 +2681,14 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2670
2681
  updateCells: z.object({
2671
2682
  range: z
2672
2683
  .object({
2673
- sheetId: z.number().describe("The ID of the sheet").optional(),
2674
- startRowIndex: z.number().describe("The start row (0-based, inclusive)").optional(),
2675
- endRowIndex: z.number().describe("The end row (0-based, exclusive)").optional(),
2676
- startColumnIndex: z.number().describe("The start column (0-based, inclusive)").optional(),
2677
- endColumnIndex: z.number().describe("The end column (0-based, exclusive)").optional(),
2684
+ sheetId: z.coerce.number().describe("The ID of the sheet").optional(),
2685
+ startRowIndex: z.coerce.number().describe("The start row (0-based, inclusive)").optional(),
2686
+ endRowIndex: z.coerce.number().describe("The end row (0-based, exclusive)").optional(),
2687
+ startColumnIndex: z.coerce
2688
+ .number()
2689
+ .describe("The start column (0-based, inclusive)")
2690
+ .optional(),
2691
+ endColumnIndex: z.coerce.number().describe("The end column (0-based, exclusive)").optional(),
2678
2692
  })
2679
2693
  .optional(),
2680
2694
  rows: z
@@ -2684,7 +2698,7 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2684
2698
  userEnteredValue: z
2685
2699
  .object({
2686
2700
  stringValue: z.string().optional(),
2687
- numberValue: z.number().optional(),
2701
+ numberValue: z.coerce.number().optional(),
2688
2702
  boolValue: z.boolean().optional(),
2689
2703
  formulaValue: z.string().optional(),
2690
2704
  })
@@ -2701,14 +2715,14 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2701
2715
  updateSheetProperties: z.object({
2702
2716
  properties: z
2703
2717
  .object({
2704
- sheetId: z.number().describe("The ID of the sheet to update").optional(),
2718
+ sheetId: z.coerce.number().describe("The ID of the sheet to update").optional(),
2705
2719
  title: z.string().describe("The new title of the sheet").optional(),
2706
2720
  gridProperties: z
2707
2721
  .object({
2708
- rowCount: z.number().describe("The new number of rows").optional(),
2709
- columnCount: z.number().describe("The new number of columns").optional(),
2710
- frozenRowCount: z.number().describe("The number of frozen rows").optional(),
2711
- frozenColumnCount: z.number().describe("The number of frozen columns").optional(),
2722
+ rowCount: z.coerce.number().describe("The new number of rows").optional(),
2723
+ columnCount: z.coerce.number().describe("The new number of columns").optional(),
2724
+ frozenRowCount: z.coerce.number().describe("The number of frozen rows").optional(),
2725
+ frozenColumnCount: z.coerce.number().describe("The number of frozen columns").optional(),
2712
2726
  })
2713
2727
  .optional(),
2714
2728
  })
@@ -2739,10 +2753,10 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2739
2753
  .object({
2740
2754
  backgroundColor: z
2741
2755
  .object({
2742
- red: z.number().describe("The red component [0.0, 1.0]").optional(),
2743
- green: z.number().describe("The green component [0.0, 1.0]").optional(),
2744
- blue: z.number().describe("The blue component [0.0, 1.0]").optional(),
2745
- alpha: z.number().describe("The alpha component [0.0, 1.0]").optional(),
2756
+ red: z.coerce.number().describe("The red component [0.0, 1.0]").optional(),
2757
+ green: z.coerce.number().describe("The green component [0.0, 1.0]").optional(),
2758
+ blue: z.coerce.number().describe("The blue component [0.0, 1.0]").optional(),
2759
+ alpha: z.coerce.number().describe("The alpha component [0.0, 1.0]").optional(),
2746
2760
  })
2747
2761
  .optional(),
2748
2762
  numberFormat: z
@@ -2767,14 +2781,14 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2767
2781
  .object({
2768
2782
  foregroundColor: z
2769
2783
  .object({
2770
- red: z.number().describe("The red component [0.0, 1.0]").optional(),
2771
- green: z.number().describe("The green component [0.0, 1.0]").optional(),
2772
- blue: z.number().describe("The blue component [0.0, 1.0]").optional(),
2773
- alpha: z.number().describe("The alpha component [0.0, 1.0]").optional(),
2784
+ red: z.coerce.number().describe("The red component [0.0, 1.0]").optional(),
2785
+ green: z.coerce.number().describe("The green component [0.0, 1.0]").optional(),
2786
+ blue: z.coerce.number().describe("The blue component [0.0, 1.0]").optional(),
2787
+ alpha: z.coerce.number().describe("The alpha component [0.0, 1.0]").optional(),
2774
2788
  })
2775
2789
  .optional(),
2776
2790
  fontFamily: z.string().describe("The font family").optional(),
2777
- fontSize: z.number().describe("The size of the font in points").optional(),
2791
+ fontSize: z.coerce.number().describe("The size of the font in points").optional(),
2778
2792
  bold: z.boolean().describe("Whether the text is bold").optional(),
2779
2793
  italic: z.boolean().describe("Whether the text is italic").optional(),
2780
2794
  strikethrough: z.boolean().describe("Whether the text has a strikethrough").optional(),
@@ -2818,9 +2832,9 @@ export const googleOauthUpdateSpreadsheetOutputSchema = z.object({
2818
2832
  .object({
2819
2833
  properties: z
2820
2834
  .object({
2821
- sheetId: z.number().describe("The ID of the newly created sheet").optional(),
2835
+ sheetId: z.coerce.number().describe("The ID of the newly created sheet").optional(),
2822
2836
  title: z.string().describe("The title of the new sheet").optional(),
2823
- index: z.number().describe("The index of the new sheet").optional(),
2837
+ index: z.coerce.number().describe("The index of the new sheet").optional(),
2824
2838
  })
2825
2839
  .optional(),
2826
2840
  })
@@ -2842,9 +2856,9 @@ export const googleOauthAppendRowsToSpreadsheetParamsSchema = z.object({
2842
2856
  .optional(),
2843
2857
  rows: z
2844
2858
  .array(z
2845
- .array(z.object({ stringValue: z.string().describe("The value of the cell") }))
2846
- .describe("A list of cells to append to the spreadsheet"))
2847
- .describe("Rows of cells to append to the spreadsheet"),
2859
+ .array(z.string().describe("The string value of the cell"))
2860
+ .describe("A list of cell values for this row, each as a plain string"))
2861
+ .describe('Rows of cells to append to the spreadsheet. Each row is an array of string cell values. For example, [["Alice", "30"], ["Bob", "25"]].'),
2848
2862
  });
2849
2863
  export const googleOauthAppendRowsToSpreadsheetOutputSchema = z.object({
2850
2864
  success: z.boolean().describe("Whether the spreadsheet was updated successfully"),
@@ -2855,11 +2869,11 @@ export const googleOauthDeleteRowFromSpreadsheetParamsSchema = z.object({
2855
2869
  spreadsheetId: z
2856
2870
  .string()
2857
2871
  .describe('The ID of the Google Spreadsheet. This should be provided by the user. Can be found in the URL of the spreadsheet. For example, "1bWp1w2OVwH19mkXEiLIaP8As7N-9c_3EXF_Eo5d5Nm0".'),
2858
- sheetId: z
2872
+ sheetId: z.coerce
2859
2873
  .number()
2860
2874
  .int()
2861
2875
  .describe('The ID of the specific sheet within the spreadsheet (not the sheet name). Sheet ID is 0 for the first sheet. Can be found in the URL after "gid=". For example, if the URL is "...#gid=123456789", the sheetId is 123456789.'),
2862
- rowIndex: z
2876
+ rowIndex: z.coerce
2863
2877
  .number()
2864
2878
  .int()
2865
2879
  .describe("The 0-based index of the row to delete. For example, to delete the first row (excluding headers if row 0 is headers), use rowIndex 1. To delete the header row, use rowIndex 0."),
@@ -2878,23 +2892,27 @@ export const googleOauthUpdateRowsInSpreadsheetParamsSchema = z.object({
2878
2892
  .string()
2879
2893
  .describe('The name of the SHEET to update. This should be provided by the user. For example, "Sheet1". Defaults to "Sheet1" if not provided.')
2880
2894
  .optional(),
2881
- startRow: z
2895
+ startRow: z.coerce
2882
2896
  .number()
2883
2897
  .int()
2884
2898
  .describe("The row number to start updating from (1-based). For example, to update starting from the first row, use 1. To start from the second row, use 2."),
2899
+ startColumn: z
2900
+ .string()
2901
+ .describe('The column letter(s) to start writing from (default: "A"). For example, use "A" to start from the first column, "C" to start from column C, or "BE" to start from column BE. This allows targeting a specific column range in the spreadsheet.')
2902
+ .optional(),
2885
2903
  rows: z
2886
2904
  .array(z
2887
- .array(z.object({ stringValue: z.string().describe("The value of the cell") }))
2888
- .describe("A list of cells for this row"))
2889
- .describe("Rows of cells to update in the spreadsheet. Each row will be written sequentially starting from startRow."),
2905
+ .array(z.string().describe("The string value of the cell"))
2906
+ .describe("A list of cell values for this row, each as a plain string"))
2907
+ .describe('Rows of cells to update in the spreadsheet. Each row is an array of string cell values written sequentially starting from startRow/startColumn. For example, [["Alice", "30"], ["Bob", "25"]].'),
2890
2908
  });
2891
2909
  export const googleOauthUpdateRowsInSpreadsheetOutputSchema = z.object({
2892
2910
  success: z.boolean().describe("Whether the rows were updated successfully"),
2893
2911
  spreadsheetUrl: z.string().describe("The URL of the updated spreadsheet").optional(),
2894
2912
  updatedRange: z.string().describe("The range that was updated in A1 notation").optional(),
2895
- updatedRows: z.number().int().describe("The number of rows that were updated").optional(),
2896
- updatedColumns: z.number().int().describe("The number of columns that were updated").optional(),
2897
- updatedCells: z.number().int().describe("The total number of cells that were updated").optional(),
2913
+ updatedRows: z.coerce.number().int().describe("The number of rows that were updated").optional(),
2914
+ updatedColumns: z.coerce.number().int().describe("The number of columns that were updated").optional(),
2915
+ updatedCells: z.coerce.number().int().describe("The total number of cells that were updated").optional(),
2898
2916
  error: z.string().describe("The error that occurred if the rows were not updated successfully").optional(),
2899
2917
  });
2900
2918
  export const googleOauthCreatePresentationParamsSchema = z.object({
@@ -2904,14 +2922,14 @@ export const googleOauthCreatePresentationParamsSchema = z.object({
2904
2922
  width: z
2905
2923
  .object({
2906
2924
  unit: z.enum(["EMU", "PT"]).describe("The unit of the width").optional(),
2907
- magnitude: z.number().describe("The width of the presentation").optional(),
2925
+ magnitude: z.coerce.number().describe("The width of the presentation").optional(),
2908
2926
  })
2909
2927
  .describe("The width object of the presentation")
2910
2928
  .optional(),
2911
2929
  height: z
2912
2930
  .object({
2913
2931
  unit: z.enum(["EMU", "PT"]).describe("The unit of the height").optional(),
2914
- magnitude: z.number().describe("The height of the presentation").optional(),
2932
+ magnitude: z.coerce.number().describe("The height of the presentation").optional(),
2915
2933
  })
2916
2934
  .describe("The height object of the presentation")
2917
2935
  .optional(),
@@ -2936,7 +2954,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2936
2954
  createSlide: z
2937
2955
  .object({
2938
2956
  objectId: z.string().describe("The object ID for the created slide").optional(),
2939
- insertionIndex: z
2957
+ insertionIndex: z.coerce
2940
2958
  .number()
2941
2959
  .describe("The 0-based index where the new slide should be inserted")
2942
2960
  .optional(),
@@ -2964,8 +2982,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2964
2982
  createTable: z
2965
2983
  .object({
2966
2984
  objectId: z.string().describe("The object ID for the created table").optional(),
2967
- rows: z.number().describe("Number of rows in the table"),
2968
- columns: z.number().describe("Number of columns in the table"),
2985
+ rows: z.coerce.number().describe("Number of rows in the table"),
2986
+ columns: z.coerce.number().describe("Number of columns in the table"),
2969
2987
  elementProperties: z
2970
2988
  .object({})
2971
2989
  .catchall(z.any())
@@ -2979,7 +2997,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2979
2997
  .object({
2980
2998
  objectId: z.string().describe("The object ID of the shape or table cell"),
2981
2999
  text: z.string().describe("The text to be inserted"),
2982
- insertionIndex: z.number().describe("The index where the text will be inserted").optional(),
3000
+ insertionIndex: z.coerce.number().describe("The index where the text will be inserted").optional(),
2983
3001
  })
2984
3002
  .describe("Inserts text into a shape or table cell"),
2985
3003
  }),
@@ -2988,7 +3006,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2988
3006
  .object({
2989
3007
  tableObjectId: z.string().describe("The table to insert rows into"),
2990
3008
  insertBelow: z.boolean().describe("Whether to insert the rows below the reference cell"),
2991
- number: z.number().describe("The number of rows to insert").optional(),
3009
+ number: z.coerce.number().describe("The number of rows to insert").optional(),
2992
3010
  cellLocation: z
2993
3011
  .object({})
2994
3012
  .catchall(z.any())
@@ -3004,7 +3022,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3004
3022
  insertRight: z
3005
3023
  .boolean()
3006
3024
  .describe("Whether to insert the columns to the right of the reference cell"),
3007
- number: z.number().describe("The number of columns to insert").optional(),
3025
+ number: z.coerce.number().describe("The number of columns to insert").optional(),
3008
3026
  cellLocation: z
3009
3027
  .object({})
3010
3028
  .catchall(z.any())
@@ -3053,10 +3071,10 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3053
3071
  objectId: z.string().describe("The object ID of the element to update"),
3054
3072
  transform: z
3055
3073
  .object({
3056
- scaleX: z.number().describe("The horizontal scale factor").optional(),
3057
- scaleY: z.number().describe("The vertical scale factor").optional(),
3058
- translateX: z.number().describe("The horizontal translation").optional(),
3059
- translateY: z.number().describe("The vertical translation").optional(),
3074
+ scaleX: z.coerce.number().describe("The horizontal scale factor").optional(),
3075
+ scaleY: z.coerce.number().describe("The vertical scale factor").optional(),
3076
+ translateX: z.coerce.number().describe("The horizontal translation").optional(),
3077
+ translateY: z.coerce.number().describe("The vertical translation").optional(),
3060
3078
  unit: z.string().describe("The unit for translate values").optional(),
3061
3079
  })
3062
3080
  .describe("The transform to apply"),
@@ -3067,7 +3085,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3067
3085
  updateSlidesPosition: z
3068
3086
  .object({
3069
3087
  slideObjectIds: z.array(z.string()).describe("The IDs of the slides to reorder"),
3070
- insertionIndex: z
3088
+ insertionIndex: z.coerce
3071
3089
  .number()
3072
3090
  .describe("The 0-based index where the slides should be moved to")
3073
3091
  .optional(),
@@ -3080,8 +3098,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3080
3098
  objectId: z.string().describe("The object ID of the shape or table cell"),
3081
3099
  textRange: z
3082
3100
  .object({
3083
- startIndex: z.number().describe("The starting index of the range (0-based)").optional(),
3084
- endIndex: z.number().describe("The ending index of the range (0-based)").optional(),
3101
+ startIndex: z.coerce.number().describe("The starting index of the range (0-based)").optional(),
3102
+ endIndex: z.coerce.number().describe("The ending index of the range (0-based)").optional(),
3085
3103
  })
3086
3104
  .describe("The range of text to delete")
3087
3105
  .optional(),
@@ -3119,7 +3137,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3119
3137
  .object({
3120
3138
  objectId: z.string().describe("The object ID for the created chart").optional(),
3121
3139
  spreadsheetId: z.string().describe("The ID of the Google Sheets spreadsheet containing the chart"),
3122
- chartId: z.number().describe("The ID of the specific chart in the spreadsheet"),
3140
+ chartId: z.coerce.number().describe("The ID of the specific chart in the spreadsheet"),
3123
3141
  elementProperties: z
3124
3142
  .object({})
3125
3143
  .catchall(z.any())
@@ -3274,11 +3292,11 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3274
3292
  .enum(["ALL", "FROM_START_INDEX", "FIXED_RANGE"])
3275
3293
  .describe("The type of range")
3276
3294
  .optional(),
3277
- startIndex: z
3295
+ startIndex: z.coerce
3278
3296
  .number()
3279
3297
  .describe("The start index for FROM_START_INDEX or FIXED_RANGE")
3280
3298
  .optional(),
3281
- endIndex: z.number().describe("The end index for FIXED_RANGE").optional(),
3299
+ endIndex: z.coerce.number().describe("The end index for FIXED_RANGE").optional(),
3282
3300
  })
3283
3301
  .describe("The range of text to style (defaults to all text if unspecified)")
3284
3302
  .optional(),
@@ -3289,7 +3307,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3289
3307
  replaceAllShapesWithSheetsChart: z
3290
3308
  .object({
3291
3309
  spreadsheetId: z.string().describe("The ID of the Google Sheets spreadsheet containing the chart"),
3292
- chartId: z.number().describe("The ID of the chart within the spreadsheet"),
3310
+ chartId: z.coerce.number().describe("The ID of the chart within the spreadsheet"),
3293
3311
  containsText: z
3294
3312
  .object({
3295
3313
  text: z.string().describe("The text the shape must contain to be replaced"),
@@ -3317,11 +3335,11 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3317
3335
  .enum(["ALL", "FROM_START_INDEX", "FIXED_RANGE"])
3318
3336
  .describe("The type of range")
3319
3337
  .optional(),
3320
- startIndex: z
3338
+ startIndex: z.coerce
3321
3339
  .number()
3322
3340
  .describe("The start index for FROM_START_INDEX or FIXED_RANGE")
3323
3341
  .optional(),
3324
- endIndex: z.number().describe("The end index for FIXED_RANGE").optional(),
3342
+ endIndex: z.coerce.number().describe("The end index for FIXED_RANGE").optional(),
3325
3343
  })
3326
3344
  .describe("The range of text to delete bullets from (defaults to all text if unspecified)")
3327
3345
  .optional(),
@@ -3345,11 +3363,11 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3345
3363
  .enum(["ALL", "FROM_START_INDEX", "FIXED_RANGE"])
3346
3364
  .describe("The type of range")
3347
3365
  .optional(),
3348
- startIndex: z
3366
+ startIndex: z.coerce
3349
3367
  .number()
3350
3368
  .describe("The start index for FROM_START_INDEX or FIXED_RANGE")
3351
3369
  .optional(),
3352
- endIndex: z.number().describe("The end index for FIXED_RANGE").optional(),
3370
+ endIndex: z.coerce.number().describe("The end index for FIXED_RANGE").optional(),
3353
3371
  })
3354
3372
  .describe("The range of text to apply the style to (defaults to all paragraphs if unspecified)")
3355
3373
  .optional(),
@@ -3375,8 +3393,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3375
3393
  tableRange: z
3376
3394
  .object({
3377
3395
  location: z.object({}).catchall(z.any()).describe("The starting cell location").optional(),
3378
- rowSpan: z.number().describe("The number of rows in the range").optional(),
3379
- columnSpan: z.number().describe("The number of columns in the range").optional(),
3396
+ rowSpan: z.coerce.number().describe("The number of rows in the range").optional(),
3397
+ columnSpan: z.coerce.number().describe("The number of columns in the range").optional(),
3380
3398
  })
3381
3399
  .describe("The range of cells whose border should be updated (defaults to the entire table if unspecified)")
3382
3400
  .optional(),
@@ -3387,7 +3405,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3387
3405
  updateTableColumnProperties: z
3388
3406
  .object({
3389
3407
  objectId: z.string().describe("The object ID of the table"),
3390
- columnIndices: z.array(z.number()).describe("The 0-based indices of the columns to update"),
3408
+ columnIndices: z.array(z.coerce.number()).describe("The 0-based indices of the columns to update"),
3391
3409
  tableColumnProperties: z
3392
3410
  .object({})
3393
3411
  .catchall(z.any())
@@ -3402,7 +3420,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3402
3420
  updateTableRowProperties: z
3403
3421
  .object({
3404
3422
  objectId: z.string().describe("The object ID of the table"),
3405
- rowIndices: z.array(z.number()).describe("The 0-based indices of the rows to update"),
3423
+ rowIndices: z.array(z.coerce.number()).describe("The 0-based indices of the rows to update"),
3406
3424
  tableRowProperties: z
3407
3425
  .object({})
3408
3426
  .catchall(z.any())
@@ -3420,8 +3438,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3420
3438
  tableRange: z
3421
3439
  .object({
3422
3440
  location: z.object({}).catchall(z.any()).describe("The starting cell location").optional(),
3423
- rowSpan: z.number().describe("The number of rows in the range").optional(),
3424
- columnSpan: z.number().describe("The number of columns in the range").optional(),
3441
+ rowSpan: z.coerce.number().describe("The number of rows in the range").optional(),
3442
+ columnSpan: z.coerce.number().describe("The number of columns in the range").optional(),
3425
3443
  })
3426
3444
  .describe("The range of cells to merge"),
3427
3445
  })
@@ -3434,8 +3452,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3434
3452
  tableRange: z
3435
3453
  .object({
3436
3454
  location: z.object({}).catchall(z.any()).describe("The starting cell location").optional(),
3437
- rowSpan: z.number().describe("The number of rows in the range").optional(),
3438
- columnSpan: z.number().describe("The number of columns in the range").optional(),
3455
+ rowSpan: z.coerce.number().describe("The number of rows in the range").optional(),
3456
+ columnSpan: z.coerce.number().describe("The number of columns in the range").optional(),
3439
3457
  })
3440
3458
  .describe("The range of cells to unmerge"),
3441
3459
  })
@@ -3540,7 +3558,7 @@ export const googleOauthGetPresentationOutputSchema = z.object({
3540
3558
  });
3541
3559
  export const googleOauthSearchDriveByKeywordsParamsSchema = z.object({
3542
3560
  keywords: z.array(z.string()).describe("List of keywords to search for in file contents."),
3543
- limit: z.number().describe("The maximum number of files to return").optional(),
3561
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3544
3562
  includeTrashed: z
3545
3563
  .boolean()
3546
3564
  .describe("Whether to include trashed files in the search results. Usually false unless otherwise noted by the user.")
@@ -3561,7 +3579,7 @@ export const googleOauthSearchDriveByKeywordsOutputSchema = z.object({
3561
3579
  });
3562
3580
  export const googleOauthSearchDriveByQueryParamsSchema = z.object({
3563
3581
  query: z.string().describe("The query to search for in file contents."),
3564
- limit: z.number().describe("The maximum number of files to return").optional(),
3582
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3565
3583
  searchDriveByDrive: z
3566
3584
  .boolean()
3567
3585
  .describe("Whether we should search drive by drive or run a general search. Usually false unless otherwise noted by the user."),
@@ -3589,8 +3607,8 @@ export const googleOauthSearchDriveByQueryOutputSchema = z.object({
3589
3607
  });
3590
3608
  export const googleOauthSearchDriveByKeywordsAndGetFileContentParamsSchema = z.object({
3591
3609
  searchQuery: z.string().describe("The query input to Google Drive search"),
3592
- limit: z.number().describe("The maximum number of files to return").optional(),
3593
- fileSizeLimit: z.number().describe("The maximum length of a file in characters").optional(),
3610
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3611
+ fileSizeLimit: z.coerce.number().describe("The maximum length of a file in characters").optional(),
3594
3612
  searchDriveByDrive: z
3595
3613
  .boolean()
3596
3614
  .describe("Search drive by drive or run a general search. Usually false unless otherwise noted by the user."),
@@ -3625,8 +3643,8 @@ export const googleOauthSearchDriveByKeywordsAndGetFileContentOutputSchema = z.o
3625
3643
  });
3626
3644
  export const googleOauthSearchDriveByQueryAndGetFileContentParamsSchema = z.object({
3627
3645
  query: z.string().describe("Google Drive API search syntax, eg \"fullText contains 'Valentine\\'s Day'\""),
3628
- limit: z.number().describe("The maximum number of files to return").optional(),
3629
- fileSizeLimit: z.number().describe("The maximum length of a file in characters").optional(),
3646
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3647
+ fileSizeLimit: z.coerce.number().describe("The maximum length of a file in characters").optional(),
3630
3648
  searchDriveByDrive: z
3631
3649
  .boolean()
3632
3650
  .describe("Search drive by drive or run a general search. Usually false unless otherwise noted by the user."),
@@ -3655,12 +3673,15 @@ export const googleOauthSearchDriveByQueryAndGetFileContentOutputSchema = z.obje
3655
3673
  });
3656
3674
  export const googleOauthGetDriveFileContentByIdParamsSchema = z.object({
3657
3675
  fileId: z.string().describe("The ID of the file to get content from"),
3658
- limit: z.number().describe("The character limit for the file content").optional(),
3659
- timeoutLimit: z
3676
+ limit: z.coerce.number().describe("The character limit for the file content").optional(),
3677
+ timeoutLimit: z.coerce
3660
3678
  .number()
3661
3679
  .describe("The timeout limit for the file content retrieval (default of 15 seconds)")
3662
3680
  .optional(),
3663
- fileSizeLimit: z.number().describe("Max file size (in MB) to retrieve content from (default of 30MB)").optional(),
3681
+ fileSizeLimit: z.coerce
3682
+ .number()
3683
+ .describe("Max file size (in MB) to retrieve content from (default of 30MB)")
3684
+ .optional(),
3664
3685
  });
3665
3686
  export const googleOauthGetDriveFileContentByIdOutputSchema = z.object({
3666
3687
  success: z.boolean().describe("Whether the file content was retrieved successfully"),
@@ -3672,7 +3693,7 @@ export const googleOauthGetDriveFileContentByIdOutputSchema = z.object({
3672
3693
  .object({
3673
3694
  content: z.string().describe("The content of the file").optional(),
3674
3695
  fileName: z.string().describe("The name of the file").optional(),
3675
- fileLength: z.number().describe("The length of the file content prior to truncating").optional(),
3696
+ fileLength: z.coerce.number().describe("The length of the file content prior to truncating").optional(),
3676
3697
  })
3677
3698
  .describe("The contents of the file"),
3678
3699
  }))
@@ -3681,7 +3702,7 @@ export const googleOauthGetDriveFileContentByIdOutputSchema = z.object({
3681
3702
  error: z.string().describe("Error message if file content retrieval failed").optional(),
3682
3703
  });
3683
3704
  export const googleOauthListGroupsParamsSchema = z.object({
3684
- maxResults: z.number().describe("The maximum number of groups to return (max allowed is 200)").optional(),
3705
+ maxResults: z.coerce.number().describe("The maximum number of groups to return (max allowed is 200)").optional(),
3685
3706
  });
3686
3707
  export const googleOauthListGroupsOutputSchema = z.object({
3687
3708
  success: z.boolean().describe("Whether the groups were listed successfully"),
@@ -3710,7 +3731,7 @@ export const googleOauthGetGroupOutputSchema = z.object({
3710
3731
  });
3711
3732
  export const googleOauthListGroupMembersParamsSchema = z.object({
3712
3733
  groupKey: z.string().describe("The group's email address or unique group ID"),
3713
- maxResults: z.number().describe("The maximum number of members to return (max allowed is 200)").optional(),
3734
+ maxResults: z.coerce.number().describe("The maximum number of members to return (max allowed is 200)").optional(),
3714
3735
  });
3715
3736
  export const googleOauthListGroupMembersOutputSchema = z.object({
3716
3737
  success: z.boolean().describe("Whether the members were listed successfully"),
@@ -3753,8 +3774,8 @@ export const googleOauthDeleteGroupMemberOutputSchema = z.object({
3753
3774
  export const googleOauthQueryGoogleBigQueryParamsSchema = z.object({
3754
3775
  query: z.string().describe("The SQL query to execute in BigQuery"),
3755
3776
  projectId: z.string().describe("The Google Cloud Project ID. If not provided, will use the default project"),
3756
- maxResults: z.number().describe("Maximum number of results to return. Defaults to 1000").optional(),
3757
- timeoutMs: z.number().describe("Timeout for the query in milliseconds. Defaults to 30000").optional(),
3777
+ maxResults: z.coerce.number().describe("Maximum number of results to return. Defaults to 1000").optional(),
3778
+ timeoutMs: z.coerce.number().describe("Timeout for the query in milliseconds. Defaults to 30000").optional(),
3758
3779
  maximumBytesProcessed: z
3759
3780
  .string()
3760
3781
  .describe("Maximum bytes to process for the query. Defaults to 500000000 (500MB). Use -1 for no limit")
@@ -3779,8 +3800,8 @@ export const googleOauthQueryGoogleBigQueryOutputSchema = z.object({
3779
3800
  });
3780
3801
  export const googlemailSearchGmailMessagesParamsSchema = z.object({
3781
3802
  query: z.string().describe('Gmail search query (e.g. "from:alice subject:urgent")'),
3782
- maxResults: z.number().describe("Maximum number of messages to return (optional)").optional(),
3783
- timeout: z.number().describe("Timeout for the query in seconds (optional)").optional(),
3803
+ maxResults: z.coerce.number().describe("Maximum number of messages to return (optional)").optional(),
3804
+ timeout: z.coerce.number().describe("Timeout for the query in seconds (optional)").optional(),
3784
3805
  });
3785
3806
  export const googlemailSearchGmailMessagesOutputSchema = z.object({
3786
3807
  success: z.boolean(),
@@ -3809,7 +3830,7 @@ export const googlemailSearchGmailMessagesOutputSchema = z.object({
3809
3830
  });
3810
3831
  export const googlemailListGmailThreadsParamsSchema = z.object({
3811
3832
  query: z.string().describe('Gmail search query (e.g. "from:alice subject:project")'),
3812
- maxResults: z.number().describe("Maximum number of threads to return").optional(),
3833
+ maxResults: z.coerce.number().describe("Maximum number of threads to return").optional(),
3813
3834
  });
3814
3835
  export const googlemailListGmailThreadsOutputSchema = z.object({
3815
3836
  success: z.boolean(),
@@ -3875,7 +3896,7 @@ export const googleSearchCustomSearchParamsSchema = z.object({
3875
3896
  .string()
3876
3897
  .describe("Identifies a word or phrase that should not appear in any documents in the search results")
3877
3898
  .optional(),
3878
- num: z.number().int().gte(1).lte(10).describe("Number of search results to return (1-10)").optional(),
3899
+ num: z.coerce.number().int().gte(1).lte(10).describe("Number of search results to return (1-10)").optional(),
3879
3900
  siteSearch: z
3880
3901
  .string()
3881
3902
  .describe("Specifies a given site which should always be included or excluded from results")
@@ -3884,7 +3905,7 @@ export const googleSearchCustomSearchParamsSchema = z.object({
3884
3905
  .enum(["e", "i"])
3885
3906
  .describe("Controls whether to include or exclude results from the site named in siteSearch (e=exclude, i=include)")
3886
3907
  .optional(),
3887
- start: z.number().int().gte(1).lte(100).describe("The index of the first result to return").optional(),
3908
+ start: z.coerce.number().int().gte(1).lte(100).describe("The index of the first result to return").optional(),
3888
3909
  });
3889
3910
  export const googleSearchCustomSearchOutputSchema = z.object({
3890
3911
  success: z.boolean().describe("Whether the search was successful"),
@@ -3899,7 +3920,7 @@ export const googleSearchCustomSearchOutputSchema = z.object({
3899
3920
  .optional(),
3900
3921
  searchInformation: z
3901
3922
  .object({
3902
- searchTime: z.number().describe("Time taken to perform the search").optional(),
3923
+ searchTime: z.coerce.number().describe("Time taken to perform the search").optional(),
3903
3924
  totalResults: z.string().describe("Total number of search results available").optional(),
3904
3925
  })
3905
3926
  .describe("Metadata about the search")
@@ -3950,7 +3971,7 @@ export const finnhubGetBasicFinancialsOutputSchema = z.object({
3950
3971
  .array(z
3951
3972
  .object({
3952
3973
  period: z.string().describe("The period of the financial metric in YYYY-MM-DD format").optional(),
3953
- v: z.number().describe("The value of the financial metric").optional(),
3974
+ v: z.coerce.number().describe("The value of the financial metric").optional(),
3954
3975
  })
3955
3976
  .describe("The value of the financial metric"))
3956
3977
  .describe("The series of values for the financial metric")
@@ -3967,7 +3988,7 @@ export const finnhubGetBasicFinancialsOutputSchema = z.object({
3967
3988
  .array(z
3968
3989
  .object({
3969
3990
  period: z.string().describe("The period of the financial metric in YYYY-MM-DD format").optional(),
3970
- v: z.number().describe("The value of the financial metric").optional(),
3991
+ v: z.coerce.number().describe("The value of the financial metric").optional(),
3971
3992
  })
3972
3993
  .describe("The value of the financial metric"))
3973
3994
  .describe("The series of values for the financial metric")
@@ -4051,8 +4072,8 @@ export const salesforceSearchAllSalesforceRecordsParamsSchema = z.object({
4051
4072
  .boolean()
4052
4073
  .describe('Whether your Salesforce instance uses lightning knowledge articles ("true" or "false"). Ask the user if unsure.')
4053
4074
  .optional(),
4054
- limit: z.number().describe("The maximum number of records to return").optional(),
4055
- maxLimit: z.number().describe("The absolute maximum limit for records that can be returned").optional(),
4075
+ limit: z.coerce.number().describe("The maximum number of records to return").optional(),
4076
+ maxLimit: z.coerce.number().describe("The absolute maximum limit for records that can be returned").optional(),
4056
4077
  });
4057
4078
  export const salesforceSearchAllSalesforceRecordsOutputSchema = z.object({
4058
4079
  success: z.boolean().describe("Whether the records were successfully retrieved"),
@@ -4114,8 +4135,8 @@ export const salesforceSearchSalesforceRecordsParamsSchema = z.object({
4114
4135
  keyword: z.string().describe("The keyword to search for"),
4115
4136
  recordType: z.string().describe("The type of record to search for"),
4116
4137
  fieldsToSearch: z.array(z.string()).describe("The fields to search for the keyword"),
4117
- limit: z.number().describe("The maximum number of records to return").optional(),
4118
- maxLimit: z.number().describe("The absolute maximum limit for records that can be returned").optional(),
4138
+ limit: z.coerce.number().describe("The maximum number of records to return").optional(),
4139
+ maxLimit: z.coerce.number().describe("The absolute maximum limit for records that can be returned").optional(),
4119
4140
  });
4120
4141
  export const salesforceSearchSalesforceRecordsOutputSchema = z.object({
4121
4142
  success: z.boolean().describe("Whether the records were successfully retrieved"),
@@ -4147,7 +4168,7 @@ export const salesforceSearchSalesforceRecordsOutputSchema = z.object({
4147
4168
  });
4148
4169
  export const salesforceGetSalesforceRecordsByQueryParamsSchema = z.object({
4149
4170
  query: z.string().describe("The SOQL query to execute"),
4150
- limit: z.number().describe("The maximum number of records to retrieve").optional(),
4171
+ limit: z.coerce.number().describe("The maximum number of records to retrieve").optional(),
4151
4172
  });
4152
4173
  export const salesforceGetSalesforceRecordsByQueryOutputSchema = z.object({
4153
4174
  success: z.boolean().describe("Whether the records were successfully retrieved"),
@@ -4293,7 +4314,7 @@ export const githubCreatePullRequestOutputSchema = z.object({
4293
4314
  success: z.boolean().describe("Whether the pull request was created successfully"),
4294
4315
  error: z.string().describe("The error that occurred if the pull request was not created successfully").optional(),
4295
4316
  pullRequestUrl: z.string().describe("The URL of the created pull request").optional(),
4296
- pullRequestNumber: z.number().describe("The number of the created pull request").optional(),
4317
+ pullRequestNumber: z.coerce.number().describe("The number of the created pull request").optional(),
4297
4318
  });
4298
4319
  export const githubListPullRequestsParamsSchema = z.object({
4299
4320
  repositoryOwner: z.string().describe("The owner of the repository, this is a GitHub username"),
@@ -4309,7 +4330,7 @@ export const githubListPullRequestsOutputSchema = z.object({
4309
4330
  url: z.string().describe("The URL of the pull request").optional(),
4310
4331
  contents: z
4311
4332
  .object({
4312
- number: z.number().describe("The number of the pull request").optional(),
4333
+ number: z.coerce.number().describe("The number of the pull request").optional(),
4313
4334
  title: z.string().describe("The title of the pull request").optional(),
4314
4335
  state: z.string().describe("The state of the pull request (e.g., open, closed)").optional(),
4315
4336
  url: z.string().describe("The URL of the pull request").optional(),
@@ -4330,14 +4351,14 @@ export const githubListPullRequestsOutputSchema = z.object({
4330
4351
  export const githubGetPullRequestDetailsParamsSchema = z.object({
4331
4352
  repositoryOwner: z.string().describe("The owner of the repository, this is a GitHub username"),
4332
4353
  repositoryName: z.string().describe("The name of the repository"),
4333
- pullRequestNumber: z.number().describe("The number of the pull request to get details for"),
4354
+ pullRequestNumber: z.coerce.number().describe("The number of the pull request to get details for"),
4334
4355
  });
4335
4356
  export const githubGetPullRequestDetailsOutputSchema = z.object({
4336
4357
  success: z.boolean().describe("Whether the operation was successful"),
4337
4358
  error: z.string().describe("The error that occurred if the operation was not successful").optional(),
4338
4359
  pullRequest: z
4339
4360
  .object({
4340
- number: z.number().describe("The number of the pull request").optional(),
4361
+ number: z.coerce.number().describe("The number of the pull request").optional(),
4341
4362
  title: z.string().describe("The title of the pull request").optional(),
4342
4363
  description: z.string().nullable().describe("The body/description of the pull request").optional(),
4343
4364
  state: z.enum(["open", "closed", "merged"]).describe("The state of the pull request").optional(),
@@ -4403,10 +4424,10 @@ export const githubGetPullRequestDetailsOutputSchema = z.object({
4403
4424
  mergeable: z.boolean().nullable().describe("Whether the pull request can be merged").optional(),
4404
4425
  mergeableState: z.string().nullable().describe("The mergeable state of the pull request").optional(),
4405
4426
  merged: z.boolean().describe("Whether the pull request has been merged").optional(),
4406
- commits: z.number().describe("The number of commits in the pull request").optional(),
4407
- additions: z.number().describe("The number of additions in the pull request").optional(),
4408
- deletions: z.number().describe("The number of deletions in the pull request").optional(),
4409
- changedFiles: z.number().describe("The number of files changed in the pull request").optional(),
4427
+ commits: z.coerce.number().describe("The number of commits in the pull request").optional(),
4428
+ additions: z.coerce.number().describe("The number of additions in the pull request").optional(),
4429
+ deletions: z.coerce.number().describe("The number of deletions in the pull request").optional(),
4430
+ changedFiles: z.coerce.number().describe("The number of files changed in the pull request").optional(),
4410
4431
  milestone: z
4411
4432
  .object({
4412
4433
  title: z.string().describe("The title of the milestone").optional(),
@@ -4436,7 +4457,7 @@ export const githubGetFileContentOutputSchema = z.object({
4436
4457
  contents: z
4437
4458
  .object({
4438
4459
  content: z.string().describe("The decoded file content as a string").optional(),
4439
- size: z.number().describe("The size of the file in bytes").optional(),
4460
+ size: z.coerce.number().describe("The size of the file in bytes").optional(),
4440
4461
  name: z.string().describe("The name of the file").optional(),
4441
4462
  htmlUrl: z.string().describe("The URL of the file in the Github UI").optional(),
4442
4463
  })
@@ -4461,7 +4482,7 @@ export const githubListDirectoryOutputSchema = z.object({
4461
4482
  .object({
4462
4483
  path: z.string().describe("The path of the file"),
4463
4484
  type: z.string().describe("The type of the file"),
4464
- size: z.number().describe("The size of the file in bytes"),
4485
+ size: z.coerce.number().describe("The size of the file in bytes"),
4465
4486
  })
4466
4487
  .describe("The contents of the file"),
4467
4488
  }))
@@ -4491,7 +4512,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4491
4512
  path: z.string().describe("The path of the file that had a match."),
4492
4513
  sha: z.string().describe("The short SHA of the commit containing the match."),
4493
4514
  url: z.string().describe("The API URL of the file that had a match."),
4494
- score: z.number().describe("The similarity score of the match."),
4515
+ score: z.coerce.number().describe("The similarity score of the match."),
4495
4516
  textMatches: z
4496
4517
  .array(z.object({
4497
4518
  object_url: z.string().describe("The API URL of the matched object.").optional(),
@@ -4500,7 +4521,10 @@ export const githubSearchOrganizationOutputSchema = z.object({
4500
4521
  matches: z
4501
4522
  .array(z.object({
4502
4523
  text: z.string().describe("The text that matched.").optional(),
4503
- indices: z.array(z.number()).describe("Start and end indices of the match.").optional(),
4524
+ indices: z
4525
+ .array(z.coerce.number())
4526
+ .describe("Start and end indices of the match.")
4527
+ .optional(),
4504
4528
  }))
4505
4529
  .describe("List of matches found in the fragment."),
4506
4530
  }))
@@ -4526,7 +4550,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4526
4550
  })
4527
4551
  .describe("The GitHub user who authored the commit.")
4528
4552
  .optional(),
4529
- score: z.number().describe("The commit search relevance score."),
4553
+ score: z.coerce.number().describe("The commit search relevance score."),
4530
4554
  files: z
4531
4555
  .array(z.object({
4532
4556
  filename: z.string().describe("The filename of the changed file."),
@@ -4539,7 +4563,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4539
4563
  .describe("Commit search result content."),
4540
4564
  z
4541
4565
  .object({
4542
- number: z.number().describe("The issue or pull request number."),
4566
+ number: z.coerce.number().describe("The issue or pull request number."),
4543
4567
  title: z.string().describe("The title of the issue or pull request."),
4544
4568
  html_url: z.string().describe("The URL of the issue or pull request."),
4545
4569
  state: z.enum(["open", "closed"]).describe("The state of the issue or pull request."),
@@ -4551,7 +4575,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4551
4575
  email: z.string().describe("The user’s email address, if available.").optional(),
4552
4576
  })
4553
4577
  .describe("The user who created the issue or pull request."),
4554
- score: z.number().describe("The search result relevance score."),
4578
+ score: z.coerce.number().describe("The search result relevance score."),
4555
4579
  files: z
4556
4580
  .array(z.object({
4557
4581
  filename: z.string().describe("File name in the PR diff."),
@@ -4614,14 +4638,14 @@ export const githubGetBranchOutputSchema = z.object({
4614
4638
  .describe("The commit tree")
4615
4639
  .optional(),
4616
4640
  url: z.string().describe("The commit URL").optional(),
4617
- comment_count: z.number().describe("Number of comments on the commit").optional(),
4641
+ comment_count: z.coerce.number().describe("Number of comments on the commit").optional(),
4618
4642
  })
4619
4643
  .describe("The git commit object")
4620
4644
  .optional(),
4621
4645
  author: z
4622
4646
  .object({
4623
4647
  login: z.string().optional(),
4624
- id: z.number().optional(),
4648
+ id: z.coerce.number().optional(),
4625
4649
  node_id: z.string().optional(),
4626
4650
  avatar_url: z.string().optional(),
4627
4651
  html_url: z.string().optional(),
@@ -4633,7 +4657,7 @@ export const githubGetBranchOutputSchema = z.object({
4633
4657
  committer: z
4634
4658
  .object({
4635
4659
  login: z.string().optional(),
4636
- id: z.number().optional(),
4660
+ id: z.coerce.number().optional(),
4637
4661
  node_id: z.string().optional(),
4638
4662
  avatar_url: z.string().optional(),
4639
4663
  html_url: z.string().optional(),
@@ -4691,8 +4715,8 @@ export const githubListCommitsParamsSchema = z.object({
4691
4715
  .describe("Only show commits before this date (ISO 8601 format, e.g., 2023-12-31T23:59:59Z)")
4692
4716
  .optional(),
4693
4717
  author: z.string().describe("Filter commits by author (GitHub username or email)").optional(),
4694
- perPage: z.number().describe("Number of commits to return per page (default 30, max 100)").optional(),
4695
- page: z.number().describe("Page number for pagination (default 1)").optional(),
4718
+ perPage: z.coerce.number().describe("Number of commits to return per page (default 30, max 100)").optional(),
4719
+ page: z.coerce.number().describe("Page number for pagination (default 1)").optional(),
4696
4720
  });
4697
4721
  export const githubListCommitsOutputSchema = z.object({
4698
4722
  success: z.boolean().describe("Whether the operation was successful"),
@@ -4718,7 +4742,7 @@ export const githubListCommitsOutputSchema = z.object({
4718
4742
  sha: z.string().describe("The SHA of the tree object"),
4719
4743
  url: z.string().describe("The API URL of the tree object"),
4720
4744
  }),
4721
- commentCount: z.number().describe("The number of comments on the commit").optional(),
4745
+ commentCount: z.coerce.number().describe("The number of comments on the commit").optional(),
4722
4746
  }),
4723
4747
  author: z
4724
4748
  .object({ login: z.string().describe("The GitHub username of the commit author").optional() })
@@ -4734,7 +4758,7 @@ export const githubListCommitsOutputSchema = z.object({
4734
4758
  }))
4735
4759
  .describe("List of commits in the repository")
4736
4760
  .optional(),
4737
- totalCount: z.number().describe("Total number of commits (if available)").optional(),
4761
+ totalCount: z.coerce.number().describe("Total number of commits (if available)").optional(),
4738
4762
  hasMore: z.boolean().describe("Whether there are more commits available on subsequent pages").optional(),
4739
4763
  });
4740
4764
  export const notionSearchByTitleParamsSchema = z.object({
@@ -4771,9 +4795,9 @@ export const gitlabSearchGroupOutputSchema = z.object({
4771
4795
  .object({
4772
4796
  metadata: z
4773
4797
  .object({
4774
- id: z.number().describe("The ID of the merge request"),
4775
- iid: z.number().describe("The internal ID of the merge request"),
4776
- project_id: z.number().describe("The ID of the project the merge request belongs to"),
4798
+ id: z.coerce.number().describe("The ID of the merge request"),
4799
+ iid: z.coerce.number().describe("The internal ID of the merge request"),
4800
+ project_id: z.coerce.number().describe("The ID of the project the merge request belongs to"),
4777
4801
  title: z.string().describe("The title of the merge request"),
4778
4802
  web_url: z.string().describe("The URL of the merge request"),
4779
4803
  description: z.string().describe("The description of the merge request").optional(),
@@ -4803,9 +4827,9 @@ export const gitlabSearchGroupOutputSchema = z.object({
4803
4827
  path: z.string().describe("The path of the blob"),
4804
4828
  basename: z.string().describe("The basename of the blob"),
4805
4829
  data: z.string().describe("The data of the blob"),
4806
- project_id: z.number().describe("The ID of the project the blob belongs to"),
4830
+ project_id: z.coerce.number().describe("The ID of the project the blob belongs to"),
4807
4831
  ref: z.string().describe("The ref of the blob"),
4808
- startline: z.number().describe("The start line of the blob"),
4832
+ startline: z.coerce.number().describe("The start line of the blob"),
4809
4833
  filename: z.string().describe("The filename of the blob"),
4810
4834
  web_url: z.string().describe("The URL of the blob"),
4811
4835
  }),
@@ -4854,7 +4878,7 @@ export const gitlabSearchGroupOutputSchema = z.object({
4854
4878
  .optional(),
4855
4879
  });
4856
4880
  export const gitlabGetFileContentParamsSchema = z.object({
4857
- project_id: z.number().describe("Numeric project ID in GitLab (unique per project)"),
4881
+ project_id: z.coerce.number().describe("Numeric project ID in GitLab (unique per project)"),
4858
4882
  path: z.string().describe("The file path to get content from (e.g., src/index.js)"),
4859
4883
  ref: z
4860
4884
  .string()
@@ -4870,7 +4894,7 @@ export const gitlabGetFileContentOutputSchema = z.object({
4870
4894
  url: z.string().describe("The url of the file"),
4871
4895
  contents: z.object({
4872
4896
  content: z.string().describe("The decoded file content as a string"),
4873
- size: z.number().describe("The size of the file in bytes"),
4897
+ size: z.coerce.number().describe("The size of the file in bytes"),
4874
4898
  name: z.string().describe("The name of the file"),
4875
4899
  htmlUrl: z.string().describe("The URL of the file in the GitLab UI"),
4876
4900
  }),
@@ -4879,7 +4903,7 @@ export const gitlabGetFileContentOutputSchema = z.object({
4879
4903
  .optional(),
4880
4904
  });
4881
4905
  export const gitlabGetMergeRequestParamsSchema = z.object({
4882
- project_id: z
4906
+ project_id: z.coerce
4883
4907
  .number()
4884
4908
  .describe("Numeric project ID in GitLab (unique per project). Either this or the project path is required.")
4885
4909
  .optional(),
@@ -4895,9 +4919,9 @@ export const gitlabGetMergeRequestOutputSchema = z.object({
4895
4919
  results: z
4896
4920
  .array(z.object({
4897
4921
  metadata: z.object({
4898
- iid: z.number().describe("The internal ID of the merge request"),
4899
- id: z.number().describe("The ID of the merge request"),
4900
- project_id: z.number().describe("The ID of the project the merge request belongs to"),
4922
+ iid: z.coerce.number().describe("The internal ID of the merge request"),
4923
+ id: z.coerce.number().describe("The ID of the merge request"),
4924
+ project_id: z.coerce.number().describe("The ID of the project the merge request belongs to"),
4901
4925
  title: z.string().describe("The title of the merge request"),
4902
4926
  description: z.string().describe("The description of the merge request"),
4903
4927
  state: z.string().describe("The state of the merge request"),
@@ -4913,7 +4937,7 @@ export const gitlabGetMergeRequestOutputSchema = z.object({
4913
4937
  head_sha: z.string().describe("The head SHA of the merge request"),
4914
4938
  }),
4915
4939
  author: z.object({
4916
- id: z.number().describe("The ID of the author"),
4940
+ id: z.coerce.number().describe("The ID of the author"),
4917
4941
  name: z.string().describe("The name of the author"),
4918
4942
  username: z.string().describe("The username of the author"),
4919
4943
  }),
@@ -4960,7 +4984,7 @@ export const gitlabListDirectoryOutputSchema = z.object({
4960
4984
  name: z.string().describe("The name of the file or directory"),
4961
4985
  path: z.string().describe("The path of the file or directory"),
4962
4986
  type: z.string().describe('The type of the entry (either "blob" for file or "tree" for directory)'),
4963
- size: z
4987
+ size: z.coerce
4964
4988
  .number()
4965
4989
  .describe("The size of the file in bytes (only for blobs; omitted or 0 for trees)")
4966
4990
  .optional(),
@@ -4973,7 +4997,7 @@ export const gitlabListDirectoryOutputSchema = z.object({
4973
4997
  });
4974
4998
  export const linearGetIssuesParamsSchema = z.object({
4975
4999
  query: z.string().describe("Optional query string to filter issues").optional(),
4976
- maxResults: z.number().describe("Optional limit to number of results").optional(),
5000
+ maxResults: z.coerce.number().describe("Optional limit to number of results").optional(),
4977
5001
  });
4978
5002
  export const linearGetIssuesOutputSchema = z.object({
4979
5003
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5058,8 +5082,8 @@ export const linearGetIssueDetailsOutputSchema = z.object({
5058
5082
  })
5059
5083
  .describe("The project the issue belongs to")
5060
5084
  .optional(),
5061
- priority: z.number().describe("The issue priority (0-4)").optional(),
5062
- estimate: z.number().describe("The issue estimate in story points").optional(),
5085
+ priority: z.coerce.number().describe("The issue priority (0-4)").optional(),
5086
+ estimate: z.coerce.number().describe("The issue estimate in story points").optional(),
5063
5087
  dueDate: z.string().describe("The issue due date").optional(),
5064
5088
  createdAt: z.string().describe("When the issue was created").optional(),
5065
5089
  updatedAt: z.string().describe("When the issue was last updated").optional(),
@@ -5103,7 +5127,7 @@ export const linearGetProjectsOutputSchema = z.object({
5103
5127
  })
5104
5128
  .describe("The project lead")
5105
5129
  .optional(),
5106
- progress: z.number().describe("The project progress percentage").optional(),
5130
+ progress: z.coerce.number().describe("The project progress percentage").optional(),
5107
5131
  url: z.string().describe("The project URL").optional(),
5108
5132
  }))
5109
5133
  .describe("List of all projects")
@@ -5121,7 +5145,7 @@ export const linearGetProjectDetailsOutputSchema = z.object({
5121
5145
  name: z.string().describe("The project name").optional(),
5122
5146
  description: z.string().describe("The project description").optional(),
5123
5147
  state: z.string().describe("The project state").optional(),
5124
- progress: z.number().describe("The project progress percentage").optional(),
5148
+ progress: z.coerce.number().describe("The project progress percentage").optional(),
5125
5149
  targetDate: z.string().describe("The project target date").optional(),
5126
5150
  createdAt: z.string().describe("When the project was created").optional(),
5127
5151
  updatedAt: z.string().describe("When the project was last updated").optional(),
@@ -5197,14 +5221,14 @@ export const linearCreateIssueParamsSchema = z.object({
5197
5221
  description: z.string().describe("The description of the issue in markdown format").optional(),
5198
5222
  teamId: z.string().describe("The ID of the team to create the issue for"),
5199
5223
  assigneeId: z.string().describe("The ID of the user to assign the issue to").optional(),
5200
- priority: z
5224
+ priority: z.coerce
5201
5225
  .number()
5202
5226
  .describe("The priority of the issue: 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low")
5203
5227
  .optional(),
5204
5228
  projectId: z.string().describe("The ID of the project to associate the issue with").optional(),
5205
5229
  dueDate: z.string().describe("The due date of the issue in ISO 8601 format (e.g. 2024-12-31)").optional(),
5206
5230
  labelIds: z.array(z.string()).describe("Array of label IDs to apply to the issue").optional(),
5207
- estimate: z.number().describe("The estimate in story points for the issue").optional(),
5231
+ estimate: z.coerce.number().describe("The estimate in story points for the issue").optional(),
5208
5232
  });
5209
5233
  export const linearCreateIssueOutputSchema = z.object({
5210
5234
  success: z.boolean().describe("Whether the issue was created successfully"),
@@ -5224,7 +5248,7 @@ export const hubspotGetContactsParamsSchema = z.object({
5224
5248
  .string()
5225
5249
  .describe("Optional keyword search query to filter contacts by name, email, or other properties")
5226
5250
  .optional(),
5227
- limit: z.number().describe("Maximum number of contacts to return (default 100, max 100)").optional(),
5251
+ limit: z.coerce.number().describe("Maximum number of contacts to return (default 100, max 100)").optional(),
5228
5252
  });
5229
5253
  export const hubspotGetContactsOutputSchema = z.object({
5230
5254
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5275,7 +5299,7 @@ export const hubspotGetCompaniesParamsSchema = z.object({
5275
5299
  .string()
5276
5300
  .describe("Optional keyword search query to filter companies by name, domain, or other properties")
5277
5301
  .optional(),
5278
- limit: z.number().describe("Maximum number of companies to return (default 100, max 100)").optional(),
5302
+ limit: z.coerce.number().describe("Maximum number of companies to return (default 100, max 100)").optional(),
5279
5303
  });
5280
5304
  export const hubspotGetCompaniesOutputSchema = z.object({
5281
5305
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5320,7 +5344,7 @@ export const hubspotGetCompanyDetailsOutputSchema = z.object({
5320
5344
  });
5321
5345
  export const hubspotGetDealsParamsSchema = z.object({
5322
5346
  query: z.string().describe("Optional search query to filter deals by name, stage, or other properties").optional(),
5323
- limit: z.number().describe("Maximum number of deals to return (default 100, max 100)").optional(),
5347
+ limit: z.coerce.number().describe("Maximum number of deals to return (default 100, max 100)").optional(),
5324
5348
  });
5325
5349
  export const hubspotGetDealsOutputSchema = z.object({
5326
5350
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5367,7 +5391,7 @@ export const hubspotGetTicketsParamsSchema = z.object({
5367
5391
  .string()
5368
5392
  .describe("Optional search query to filter tickets by subject, status, or other properties")
5369
5393
  .optional(),
5370
- limit: z.number().describe("Maximum number of tickets to return (default 100, max 100)").optional(),
5394
+ limit: z.coerce.number().describe("Maximum number of tickets to return (default 100, max 100)").optional(),
5371
5395
  });
5372
5396
  export const hubspotGetTicketsOutputSchema = z.object({
5373
5397
  success: z.boolean().describe("Whether the operation was successful"),