@unclick/mcp-server 0.2.4 → 0.2.5

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.
Files changed (153) hide show
  1. package/dist/algolia-tool.d.ts +5 -0
  2. package/dist/algolia-tool.d.ts.map +1 -0
  3. package/dist/algolia-tool.js +121 -0
  4. package/dist/algolia-tool.js.map +1 -0
  5. package/dist/assemblyai-tool.d.ts +7 -0
  6. package/dist/assemblyai-tool.d.ts.map +1 -0
  7. package/dist/assemblyai-tool.js +127 -0
  8. package/dist/assemblyai-tool.js.map +1 -0
  9. package/dist/circleci-tool.d.ts +7 -0
  10. package/dist/circleci-tool.d.ts.map +1 -0
  11. package/dist/circleci-tool.js +133 -0
  12. package/dist/circleci-tool.js.map +1 -0
  13. package/dist/cohere-tool.d.ts +7 -0
  14. package/dist/cohere-tool.d.ts.map +1 -0
  15. package/dist/cohere-tool.js +225 -0
  16. package/dist/cohere-tool.js.map +1 -0
  17. package/dist/convertkit-tool.d.ts +7 -0
  18. package/dist/convertkit-tool.d.ts.map +1 -0
  19. package/dist/convertkit-tool.js +213 -0
  20. package/dist/convertkit-tool.js.map +1 -0
  21. package/dist/datadog-tool.d.ts +7 -0
  22. package/dist/datadog-tool.d.ts.map +1 -0
  23. package/dist/datadog-tool.js +121 -0
  24. package/dist/datadog-tool.js.map +1 -0
  25. package/dist/deepl-tool.d.ts +5 -0
  26. package/dist/deepl-tool.d.ts.map +1 -0
  27. package/dist/deepl-tool.js +137 -0
  28. package/dist/deepl-tool.js.map +1 -0
  29. package/dist/flyio-tool.d.ts +6 -0
  30. package/dist/flyio-tool.d.ts.map +1 -0
  31. package/dist/flyio-tool.js +158 -0
  32. package/dist/flyio-tool.js.map +1 -0
  33. package/dist/groq-tool.d.ts +3 -0
  34. package/dist/groq-tool.d.ts.map +1 -0
  35. package/dist/groq-tool.js +109 -0
  36. package/dist/groq-tool.js.map +1 -0
  37. package/dist/gumroad-tool.d.ts +6 -0
  38. package/dist/gumroad-tool.d.ts.map +1 -0
  39. package/dist/gumroad-tool.js +90 -0
  40. package/dist/gumroad-tool.js.map +1 -0
  41. package/dist/heygen-tool.d.ts +5 -0
  42. package/dist/heygen-tool.d.ts.map +1 -0
  43. package/dist/heygen-tool.js +134 -0
  44. package/dist/heygen-tool.js.map +1 -0
  45. package/dist/higgsfield-tool.d.ts +5 -0
  46. package/dist/higgsfield-tool.d.ts.map +1 -0
  47. package/dist/higgsfield-tool.js +120 -0
  48. package/dist/higgsfield-tool.js.map +1 -0
  49. package/dist/keychain-crypto.d.ts +24 -0
  50. package/dist/keychain-crypto.d.ts.map +1 -0
  51. package/dist/keychain-crypto.js +60 -0
  52. package/dist/keychain-crypto.js.map +1 -0
  53. package/dist/keychain-secure-input.d.ts +17 -0
  54. package/dist/keychain-secure-input.d.ts.map +1 -0
  55. package/dist/keychain-secure-input.js +229 -0
  56. package/dist/keychain-secure-input.js.map +1 -0
  57. package/dist/keychain-tool.d.ts +3 -0
  58. package/dist/keychain-tool.d.ts.map +1 -0
  59. package/dist/keychain-tool.js +516 -0
  60. package/dist/keychain-tool.js.map +1 -0
  61. package/dist/kling-tool.d.ts +3 -0
  62. package/dist/kling-tool.d.ts.map +1 -0
  63. package/dist/kling-tool.js +102 -0
  64. package/dist/kling-tool.js.map +1 -0
  65. package/dist/lemonsqueezy-tool.d.ts +7 -0
  66. package/dist/lemonsqueezy-tool.d.ts.map +1 -0
  67. package/dist/lemonsqueezy-tool.js +220 -0
  68. package/dist/lemonsqueezy-tool.js.map +1 -0
  69. package/dist/local-catalog-handlers.d.ts +3 -0
  70. package/dist/local-catalog-handlers.d.ts.map +1 -0
  71. package/dist/local-catalog-handlers.js +1254 -0
  72. package/dist/local-catalog-handlers.js.map +1 -0
  73. package/dist/mailchimp-tool.d.ts +8 -0
  74. package/dist/mailchimp-tool.d.ts.map +1 -0
  75. package/dist/mailchimp-tool.js +138 -0
  76. package/dist/mailchimp-tool.js.map +1 -0
  77. package/dist/mapbox-tool.d.ts +6 -0
  78. package/dist/mapbox-tool.d.ts.map +1 -0
  79. package/dist/mapbox-tool.js +106 -0
  80. package/dist/mapbox-tool.js.map +1 -0
  81. package/dist/mistral-tool.d.ts +4 -0
  82. package/dist/mistral-tool.d.ts.map +1 -0
  83. package/dist/mistral-tool.js +145 -0
  84. package/dist/mistral-tool.js.map +1 -0
  85. package/dist/mixpanel-tool.d.ts +6 -0
  86. package/dist/mixpanel-tool.d.ts.map +1 -0
  87. package/dist/mixpanel-tool.js +162 -0
  88. package/dist/mixpanel-tool.js.map +1 -0
  89. package/dist/neon-tool.d.ts +7 -0
  90. package/dist/neon-tool.d.ts.map +1 -0
  91. package/dist/neon-tool.js +156 -0
  92. package/dist/neon-tool.js.map +1 -0
  93. package/dist/pagerduty-tool.d.ts +8 -0
  94. package/dist/pagerduty-tool.d.ts.map +1 -0
  95. package/dist/pagerduty-tool.js +185 -0
  96. package/dist/pagerduty-tool.js.map +1 -0
  97. package/dist/perplexity-tool.d.ts +2 -0
  98. package/dist/perplexity-tool.d.ts.map +1 -0
  99. package/dist/perplexity-tool.js +93 -0
  100. package/dist/perplexity-tool.js.map +1 -0
  101. package/dist/pika-tool.d.ts +4 -0
  102. package/dist/pika-tool.d.ts.map +1 -0
  103. package/dist/pika-tool.js +102 -0
  104. package/dist/pika-tool.js.map +1 -0
  105. package/dist/pinecone-tool.d.ts +6 -0
  106. package/dist/pinecone-tool.d.ts.map +1 -0
  107. package/dist/pinecone-tool.js +148 -0
  108. package/dist/pinecone-tool.js.map +1 -0
  109. package/dist/postmark-tool.d.ts +7 -0
  110. package/dist/postmark-tool.d.ts.map +1 -0
  111. package/dist/postmark-tool.js +148 -0
  112. package/dist/postmark-tool.js.map +1 -0
  113. package/dist/qc-tool.d.ts +4 -0
  114. package/dist/qc-tool.d.ts.map +1 -0
  115. package/dist/qc-tool.js +415 -0
  116. package/dist/qc-tool.js.map +1 -0
  117. package/dist/render-tool.d.ts +7 -0
  118. package/dist/render-tool.d.ts.map +1 -0
  119. package/dist/render-tool.js +158 -0
  120. package/dist/render-tool.js.map +1 -0
  121. package/dist/runway-tool.d.ts +4 -0
  122. package/dist/runway-tool.d.ts.map +1 -0
  123. package/dist/runway-tool.js +110 -0
  124. package/dist/runway-tool.js.map +1 -0
  125. package/dist/segment-tool.d.ts +6 -0
  126. package/dist/segment-tool.d.ts.map +1 -0
  127. package/dist/segment-tool.js +129 -0
  128. package/dist/segment-tool.js.map +1 -0
  129. package/dist/sendgrid-tool.d.ts +7 -0
  130. package/dist/sendgrid-tool.d.ts.map +1 -0
  131. package/dist/sendgrid-tool.js +124 -0
  132. package/dist/sendgrid-tool.js.map +1 -0
  133. package/dist/server.d.ts.map +1 -1
  134. package/dist/server.js +10 -0
  135. package/dist/server.js.map +1 -1
  136. package/dist/togetherai-tool.d.ts +5 -0
  137. package/dist/togetherai-tool.d.ts.map +1 -0
  138. package/dist/togetherai-tool.js +129 -0
  139. package/dist/togetherai-tool.js.map +1 -0
  140. package/dist/tool-wiring.d.ts +4608 -692
  141. package/dist/tool-wiring.d.ts.map +1 -1
  142. package/dist/tool-wiring.js +2946 -463
  143. package/dist/tool-wiring.js.map +1 -1
  144. package/dist/turso-tool.d.ts +6 -0
  145. package/dist/turso-tool.d.ts.map +1 -0
  146. package/dist/turso-tool.js +158 -0
  147. package/dist/turso-tool.js.map +1 -0
  148. package/dist/upstash-tool.d.ts +8 -0
  149. package/dist/upstash-tool.d.ts.map +1 -0
  150. package/dist/upstash-tool.js +191 -0
  151. package/dist/upstash-tool.js.map +1 -0
  152. package/package.json +1 -1
  153. package/server.json +2 -2
@@ -115,6 +115,19 @@ import { whatsappSendText, whatsappSendTemplate, whatsappSendMedia, whatsappGetM
115
115
  // ─── Media / Data ─────────────────────────────────────────────────────────────
116
116
  import { youtubeSearch, youtubeGetVideo, youtubeGetChannel, youtubeListPlaylists, youtubeListPlaylistItems, youtubeGetCaptions, } from "./youtube-tool.js";
117
117
  import { spotifySearch, spotifyGetTrack, spotifyGetAlbum, spotifyGetArtist, spotifyGetPlaylist, spotifyGetRecommendations, spotifyGetAudioFeatures, } from "./spotify-tool.js";
118
+ // ─── AI Video ─────────────────────────────────────────────────────────────────
119
+ import { higgsfield_generate_video, higgsfield_generate_image, higgsfield_get_styles, higgsfield_get_status, } from "./higgsfield-tool.js";
120
+ import { heygen_create_avatar_video, heygen_list_avatars, heygen_get_video_status, heygen_list_voices, } from "./heygen-tool.js";
121
+ import { runway_generate_video, runway_get_task, runway_list_models, } from "./runway-tool.js";
122
+ import { pika_generate_video, pika_get_generation, pika_list_styles, } from "./pika-tool.js";
123
+ import { kling_generate_video, kling_get_task, } from "./kling-tool.js";
124
+ // ─── Monitoring / CI / CDP / Email / Commerce / Inference ─────────────────────
125
+ import { pagerduty_list_incidents, pagerduty_get_incident, pagerduty_create_incident, pagerduty_acknowledge_incident, pagerduty_resolve_incident, pagerduty_list_services, pagerduty_list_oncalls, } from "./pagerduty-tool.js";
126
+ import { circleci_list_pipelines, circleci_get_pipeline, circleci_list_workflows, circleci_get_workflow, circleci_list_jobs, circleci_trigger_pipeline, } from "./circleci-tool.js";
127
+ import { segment_track_event, segment_identify_user, segment_list_sources, segment_list_destinations, segment_get_source, } from "./segment-tool.js";
128
+ import { postmark_send_email, postmark_send_batch, postmark_get_delivery_stats, postmark_list_templates, postmark_get_template, postmark_search_messages, } from "./postmark-tool.js";
129
+ import { gumroad_list_products, gumroad_get_product, gumroad_list_sales, gumroad_get_sale, gumroad_list_subscribers, } from "./gumroad-tool.js";
130
+ import { togetherai_chat_completion, togetherai_completion, togetherai_create_embedding, togetherai_list_models, } from "./togetherai-tool.js";
118
131
  // ─── AI ───────────────────────────────────────────────────────────────────────
119
132
  import { elevenlabsListVoices, elevenlabsGetVoice, elevenlabsTextToSpeech, elevenlabsGetModels, elevenlabsGetHistory, } from "./elevenlabs-tool.js";
120
133
  import { replicateListModels, replicateGetModel, replicateCreatePrediction, replicateGetPrediction, replicateListPredictions, replicateCancelPrediction, } from "./replicate-tool.js";
@@ -135,6 +148,19 @@ import { plaidAccounts, plaidTransactions, plaidBalances, plaidIdentity, plaidLi
135
148
  import { wooProducts, wooOrders, wooCustomers, } from "./woocommerce-tool.js";
136
149
  import { csuitAnalyze } from "./csuite-tool.js";
137
150
  import { vaultAction } from "./vault-tool.js";
151
+ import { qcRunChecklist, qcCheckApi, qcCopyAudit } from "./qc-tool.js";
152
+ import { keychainAction } from "./keychain-tool.js";
153
+ // ─── Marketing / Communication / Data ─────────────────────────────────────────
154
+ import { mailchimpListAudiences, mailchimpListCampaigns, mailchimpGetCampaign, mailchimpCreateCampaign, mailchimpListMembers, mailchimpAddMember, mailchimpSearchMembers, } from "./mailchimp-tool.js";
155
+ import { sendgridSendEmail, sendgridListTemplates, sendgridGetTemplate, sendgridListContacts, sendgridAddContact, sendgridGetStats, } from "./sendgrid-tool.js";
156
+ import { mapboxGeocodeForward, mapboxGeocodeReverse, mapboxGetDirections, mapboxGetStaticMap, mapboxListTilesets, } from "./mapbox-tool.js";
157
+ import { algoliaSearch, algoliaGetObject, algoliaListIndices, algoliaBrowseIndex, } from "./algolia-tool.js";
158
+ import { pineconeListIndexes, pineconeDescribeIndex, pineconeQueryVectors, pineconeUpsertVectors, pineconeDeleteVectors, } from "./pinecone-tool.js";
159
+ import { mixpanelTrackEvent, mixpanelGetEvents, mixpanelGetFunnels, mixpanelGetRetention, mixpanelExportData, } from "./mixpanel-tool.js";
160
+ import { datadogListMonitors, datadogGetMonitor, datadogCreateMonitor, datadogListDashboards, datadogQueryMetrics, datadogListEvents, } from "./datadog-tool.js";
161
+ import { deeplTranslateText, deeplGetUsage, deeplListLanguages, deeplTranslateDocument, } from "./deepl-tool.js";
162
+ import { assemblyaiTranscribe, assemblyaiGetTranscript, assemblyaiListTranscripts, assemblyaiGetSentences, assemblyaiGetParagraphs, assemblyaiSummarize, } from "./assemblyai-tool.js";
163
+ import { groqChatCompletion, groqListModels, } from "./groq-tool.js";
138
164
  // ─── Developer / Productivity ─────────────────────────────────────────────────
139
165
  import { githubAction } from "./github-tool.js";
140
166
  import { gitlabAction } from "./gitlab-tool.js";
@@ -154,6 +180,19 @@ import { getSteamPlayerSummaries, getSteamOwnedGames, getSteamAchievements, getS
154
180
  import { igdbSearchGames, igdbGetGame, igdbListPlatforms, igdbListGenres, igdbGetCompany, } from "./igdb-tool.js";
155
181
  import { speedrunSearchGames, speedrunGetGame, speedrunGetLeaderboard, speedrunListRuns, speedrunGetUser, } from "./speedrun-tool.js";
156
182
  import { exchangerateLatest, exchangerateConvert, exchangerateHistorical, exchangerateCodes, } from "./exchangerate-tool.js";
183
+ // ─── Dev / Cloud ──────────────────────────────────────────────────────────────
184
+ import { neonListProjects, neonGetProject, neonListBranches, neonCreateBranch, neonListDatabases, neonExecuteSql, } from "./neon-tool.js";
185
+ import { upstashRedisGet, upstashRedisSet, upstashRedisDel, upstashRedisListKeys, upstashRedisIncr, upstashKafkaProduce, upstashKafkaListTopics, } from "./upstash-tool.js";
186
+ import { tursoListDatabases, tursoCreateDatabase, tursoListGroups, tursoGetDatabase, tursoExecuteSql, } from "./turso-tool.js";
187
+ import { renderListServices, renderGetService, renderListDeploys, renderTriggerDeploy, renderListEnvVars, renderSetEnvVar, } from "./render-tool.js";
188
+ import { flyListApps, flyGetApp, flyListMachines, flyCreateMachine, flyListVolumes, } from "./flyio-tool.js";
189
+ // ─── AI Models ────────────────────────────────────────────────────────────────
190
+ import { mistralChatCompletion, mistralListModels, mistralCreateEmbedding, } from "./mistral-tool.js";
191
+ import { cohereChat, cohereGenerate, cohereEmbed, cohereRerank, cohereClassify, cohereListModels, } from "./cohere-tool.js";
192
+ import { perplexityChatCompletion } from "./perplexity-tool.js";
193
+ // ─── Commerce / Creator ───────────────────────────────────────────────────────
194
+ import { lsListStores, lsListProducts, lsListOrders, lsListSubscriptions, lsGetOrder, lsListCustomers, } from "./lemonsqueezy-tool.js";
195
+ import { ckListSubscribers, ckAddSubscriber, ckListForms, ckListSequences, ckListTags, ckTagSubscriber, } from "./convertkit-tool.js";
157
196
  // ─────────────────────────────────────────────────────────────────────────────
158
197
  // ADDITIONAL_TOOLS
159
198
  // ─────────────────────────────────────────────────────────────────────────────
@@ -6402,6 +6441,63 @@ export const ADDITIONAL_TOOLS = [
6402
6441
  required: ["scenario"],
6403
6442
  },
6404
6443
  },
6444
+ // ── qc-tool.ts ───────────────────────────────────────────────────────────────
6445
+ {
6446
+ name: "qc_run_checklist",
6447
+ description: "Run a sequential QC checklist against a website URL. Checks site load, SSL, meta tags, og:image, robots.txt, sitemap, console errors, broken links, response time, and copy quality (em dashes, banned words). Runs checks one at a time and returns a pass/fail/warn result for each.",
6448
+ inputSchema: {
6449
+ type: "object",
6450
+ properties: {
6451
+ url: { type: "string", description: "The full URL to check (e.g. https://example.com)" },
6452
+ checks: {
6453
+ type: "array",
6454
+ items: { type: "string" },
6455
+ description: "Optional subset of checks to run. Available: site_loads, ssl_valid, meta_tags, og_image_valid, robots_txt, sitemap, no_console_errors, link_check, response_time, copy_check. Defaults to all.",
6456
+ },
6457
+ },
6458
+ required: ["url"],
6459
+ },
6460
+ },
6461
+ {
6462
+ name: "qc_check_api",
6463
+ description: "Test a list of API endpoints and report which ones return the expected HTTP status. Runs each endpoint sequentially.",
6464
+ inputSchema: {
6465
+ type: "object",
6466
+ properties: {
6467
+ base_url: { type: "string", description: "Base URL for all endpoints (e.g. https://api.example.com)" },
6468
+ endpoints: {
6469
+ type: "array",
6470
+ description: "List of endpoints to test",
6471
+ items: {
6472
+ type: "object",
6473
+ properties: {
6474
+ path: { type: "string", description: "Endpoint path (e.g. /health)" },
6475
+ method: { type: "string", description: "HTTP method (default: GET)" },
6476
+ expected_status: { type: "number", description: "Expected HTTP status code (default: 200)" },
6477
+ },
6478
+ required: ["path"],
6479
+ },
6480
+ },
6481
+ },
6482
+ required: ["base_url", "endpoints"],
6483
+ },
6484
+ },
6485
+ {
6486
+ name: "qc_copy_audit",
6487
+ description: "Fetch a page and scan all visible text for em dashes (U+2014), en dashes (U+2013), and a configurable list of banned words. Returns every occurrence with surrounding context.",
6488
+ inputSchema: {
6489
+ type: "object",
6490
+ properties: {
6491
+ url: { type: "string", description: "The full URL to audit (e.g. https://example.com)" },
6492
+ banned_words: {
6493
+ type: "array",
6494
+ items: { type: "string" },
6495
+ description: "Optional list of banned words. Defaults to: delve, tapestry, landscape, robust, leverage, harness, empower, revolutionize, seamlessly, utilize, facilitate, synergy.",
6496
+ },
6497
+ },
6498
+ required: ["url"],
6499
+ },
6500
+ },
6405
6501
  // ── vault-tool.ts ────────────────────────────────────────────────────────────
6406
6502
  {
6407
6503
  name: "vault_action",
@@ -6418,6 +6514,65 @@ export const ADDITIONAL_TOOLS = [
6418
6514
  required: ["action", "master_password"],
6419
6515
  },
6420
6516
  },
6517
+ // ── keychain-tool.ts ─────────────────────────────────────────────────────────
6518
+ {
6519
+ name: "keychain_connect",
6520
+ description: "Store an encrypted platform credential in the UnClick Keychain. Tests the credential against the platform API before saving. Scoped to the caller's UNCLICK_API_KEY.",
6521
+ inputSchema: {
6522
+ type: "object",
6523
+ properties: {
6524
+ platform: { type: "string", description: "Platform ID: github, supabase, vercel, stripe, cloudflare." },
6525
+ credential: { type: "string", description: "API key or token for the platform." },
6526
+ label: { type: "string", description: "Optional label to distinguish multiple credentials for the same platform (default: 'default')." },
6527
+ },
6528
+ required: ["platform", "credential"],
6529
+ },
6530
+ },
6531
+ {
6532
+ name: "keychain_status",
6533
+ description: "Check the connection status of one or all platform credentials stored in the UnClick Keychain for the current UNCLICK_API_KEY.",
6534
+ inputSchema: {
6535
+ type: "object",
6536
+ properties: {
6537
+ platform: { type: "string", description: "Platform ID to check. Omit to return all connected platforms." },
6538
+ },
6539
+ },
6540
+ },
6541
+ {
6542
+ name: "keychain_disconnect",
6543
+ description: "Remove a platform credential from the UnClick Keychain. Scoped to the caller's UNCLICK_API_KEY.",
6544
+ inputSchema: {
6545
+ type: "object",
6546
+ properties: {
6547
+ platform: { type: "string", description: "Platform ID to disconnect: github, supabase, vercel, stripe, cloudflare." },
6548
+ label: { type: "string", description: "Label of the credential to remove. Omit to remove all labels for the platform." },
6549
+ },
6550
+ required: ["platform"],
6551
+ },
6552
+ },
6553
+ {
6554
+ name: "keychain_list_platforms",
6555
+ description: "List all available platform connectors in the UnClick Keychain catalog, with connection status for the current UNCLICK_API_KEY.",
6556
+ inputSchema: {
6557
+ type: "object",
6558
+ properties: {
6559
+ category: { type: "string", description: "Filter by category (e.g. 'Developer Tools', 'Business')." },
6560
+ },
6561
+ },
6562
+ },
6563
+ {
6564
+ name: "keychain_secure_connect",
6565
+ description: "Securely connect a platform credential without exposing the key in chat. Checks environment variables first; if not found, opens a localhost secure input page for the user to paste their key. Call once to get the URL, then call again after the user submits to complete the connection.",
6566
+ inputSchema: {
6567
+ type: "object",
6568
+ properties: {
6569
+ platform: { type: "string", description: "Platform ID: github, stripe, openai, vercel, cloudflare, etc." },
6570
+ label: { type: "string", description: "Optional label to distinguish multiple credentials for the same platform (default: 'default')." },
6571
+ setup_url: { type: "string", description: "Optional URL to the platform's API key settings page, shown on the input page." },
6572
+ },
6573
+ required: ["platform"],
6574
+ },
6575
+ },
6421
6576
  // ── github-tool.ts ───────────────────────────────────────────────────────────
6422
6577
  {
6423
6578
  name: "github_action",
@@ -7034,946 +7189,3083 @@ export const ADDITIONAL_TOOLS = [
7034
7189
  required: ["bearer_token", "track_id"],
7035
7190
  },
7036
7191
  },
7037
- // ── elevenlabs-tool.ts ────────────────────────────────────────────────────────
7192
+ // ── higgsfield-tool.ts ────────────────────────────────────────────────────────
7038
7193
  {
7039
- name: "elevenlabs_list_voices",
7040
- description: "List all available voices in ElevenLabs.",
7194
+ name: "higgsfield_generate_video",
7195
+ description: "Generate a video from a text prompt using Higgsfield AI. Supports Soul Styles for cinematic looks. Returns a generation_id to poll for completion.",
7041
7196
  inputSchema: {
7042
7197
  type: "object",
7043
7198
  properties: {
7044
- api_key: { type: "string" },
7199
+ api_key: { type: "string", description: "Higgsfield API key" },
7200
+ prompt: { type: "string", description: "Text description of the video to generate" },
7201
+ style: { type: "string", description: "Soul Style name (use higgsfield_get_styles to list available styles)" },
7202
+ duration: { type: "number", description: "Video duration in seconds" },
7203
+ aspect_ratio: { type: "string", description: "e.g. 16:9, 9:16, 1:1" },
7204
+ negative_prompt: { type: "string", description: "What to avoid in the video" },
7205
+ seed: { type: "number", description: "Random seed for reproducibility" },
7045
7206
  },
7046
- required: ["api_key"],
7207
+ required: ["api_key", "prompt"],
7047
7208
  },
7048
7209
  },
7049
7210
  {
7050
- name: "elevenlabs_get_voice",
7051
- description: "Get metadata for a specific ElevenLabs voice by ID.",
7211
+ name: "higgsfield_generate_image",
7212
+ description: "Generate an image from a text prompt using Higgsfield AI.",
7052
7213
  inputSchema: {
7053
7214
  type: "object",
7054
7215
  properties: {
7055
- api_key: { type: "string" },
7056
- voice_id: { type: "string" },
7057
- with_settings: { type: "boolean", description: "Include voice settings (stability, similarity_boost)" },
7216
+ api_key: { type: "string", description: "Higgsfield API key" },
7217
+ prompt: { type: "string", description: "Text description of the image to generate" },
7218
+ style: { type: "string", description: "Style name (use higgsfield_get_styles to list available styles)" },
7219
+ width: { type: "number", description: "Image width in pixels" },
7220
+ height: { type: "number", description: "Image height in pixels" },
7221
+ negative_prompt: { type: "string", description: "What to avoid in the image" },
7222
+ seed: { type: "number", description: "Random seed for reproducibility" },
7058
7223
  },
7059
- required: ["api_key", "voice_id"],
7224
+ required: ["api_key", "prompt"],
7060
7225
  },
7061
7226
  },
7062
7227
  {
7063
- name: "elevenlabs_text_to_speech",
7064
- description: "Convert text to speech with a selected ElevenLabs voice. Returns base64-encoded audio.",
7228
+ name: "higgsfield_get_styles",
7229
+ description: "List all available Soul Styles for Higgsfield AI video and image generation.",
7065
7230
  inputSchema: {
7066
7231
  type: "object",
7067
7232
  properties: {
7068
- api_key: { type: "string" },
7069
- voice_id: { type: "string" },
7070
- text: { type: "string", description: "Text to synthesize (max 5000 characters)" },
7071
- model_id: { type: "string", description: "ElevenLabs model ID (default: eleven_monolingual_v1)" },
7072
- output_format: { type: "string", description: "mp3_44100_128, pcm_16000, etc. (default: mp3_44100_128)" },
7073
- stability: { type: "number", description: "0.0-1.0 (default: 0.5)" },
7074
- similarity_boost: { type: "number", description: "0.0-1.0 (default: 0.75)" },
7075
- style: { type: "number", description: "0.0-1.0 style exaggeration" },
7076
- use_speaker_boost: { type: "boolean" },
7233
+ api_key: { type: "string", description: "Higgsfield API key" },
7077
7234
  },
7078
- required: ["api_key", "voice_id", "text"],
7235
+ required: ["api_key"],
7079
7236
  },
7080
7237
  },
7081
7238
  {
7082
- name: "elevenlabs_get_models",
7083
- description: "List available ElevenLabs TTS models and their supported languages.",
7239
+ name: "higgsfield_get_status",
7240
+ description: "Check the status of a Higgsfield AI generation by ID. Returns status, video URL when complete.",
7084
7241
  inputSchema: {
7085
7242
  type: "object",
7086
7243
  properties: {
7087
- api_key: { type: "string" },
7244
+ api_key: { type: "string", description: "Higgsfield API key" },
7245
+ generation_id: { type: "string", description: "Generation ID returned by higgsfield_generate_video or higgsfield_generate_image" },
7088
7246
  },
7089
- required: ["api_key"],
7247
+ required: ["api_key", "generation_id"],
7090
7248
  },
7091
7249
  },
7250
+ // ── heygen-tool.ts ────────────────────────────────────────────────────────────
7092
7251
  {
7093
- name: "elevenlabs_get_history",
7094
- description: "Get the TTS generation history for an ElevenLabs account.",
7252
+ name: "heygen_create_avatar_video",
7253
+ description: "Create an AI avatar video with HeyGen. The avatar speaks a script using a selected voice. Returns a video_id to poll for completion.",
7095
7254
  inputSchema: {
7096
7255
  type: "object",
7097
7256
  properties: {
7098
- api_key: { type: "string" },
7099
- page_size: { type: "number" },
7100
- voice_id: { type: "string", description: "Filter history by voice ID" },
7101
- start_after_history_item_id: { type: "string" },
7257
+ api_key: { type: "string", description: "HeyGen API key" },
7258
+ avatar_id: { type: "string", description: "Avatar ID (use heygen_list_avatars to find available avatars)" },
7259
+ script: { type: "string", description: "The text the avatar will speak" },
7260
+ voice_id: { type: "string", description: "Voice ID (use heygen_list_voices to find available voices)" },
7261
+ background_url: { type: "string", description: "URL of background image" },
7262
+ avatar_style: { type: "string", description: "Avatar style: normal, circle, closeUp (default: normal)" },
7263
+ width: { type: "number", description: "Video width in pixels (default: 1280)" },
7264
+ height: { type: "number", description: "Video height in pixels (default: 720)" },
7265
+ title: { type: "string", description: "Video title for reference" },
7266
+ test: { type: "boolean", description: "Set true to generate a watermarked test video (does not use quota)" },
7102
7267
  },
7103
- required: ["api_key"],
7268
+ required: ["api_key", "avatar_id", "script"],
7104
7269
  },
7105
7270
  },
7106
- // ── replicate-tool.ts ─────────────────────────────────────────────────────────
7107
7271
  {
7108
- name: "replicate_list_models",
7109
- description: "List public models available on Replicate.",
7272
+ name: "heygen_list_avatars",
7273
+ description: "List all available AI avatars in your HeyGen account.",
7110
7274
  inputSchema: {
7111
7275
  type: "object",
7112
7276
  properties: {
7113
- api_token: { type: "string" },
7114
- cursor: { type: "string" },
7277
+ api_key: { type: "string", description: "HeyGen API key" },
7115
7278
  },
7116
- required: ["api_token"],
7279
+ required: ["api_key"],
7117
7280
  },
7118
7281
  },
7119
7282
  {
7120
- name: "replicate_get_model",
7121
- description: "Get details and latest version for a Replicate model.",
7283
+ name: "heygen_get_video_status",
7284
+ description: "Check the generation status of a HeyGen video by video ID.",
7122
7285
  inputSchema: {
7123
7286
  type: "object",
7124
7287
  properties: {
7125
- api_token: { type: "string" },
7126
- owner: { type: "string", description: "Model owner username" },
7127
- model_name: { type: "string" },
7288
+ api_key: { type: "string", description: "HeyGen API key" },
7289
+ video_id: { type: "string", description: "Video ID returned by heygen_create_avatar_video" },
7128
7290
  },
7129
- required: ["api_token", "owner", "model_name"],
7291
+ required: ["api_key", "video_id"],
7130
7292
  },
7131
7293
  },
7132
7294
  {
7133
- name: "replicate_create_prediction",
7134
- description: "Run a Replicate model by creating a prediction.",
7295
+ name: "heygen_list_voices",
7296
+ description: "List all available voices for HeyGen avatar videos.",
7135
7297
  inputSchema: {
7136
7298
  type: "object",
7137
7299
  properties: {
7138
- api_token: { type: "string" },
7139
- version: { type: "string", description: "Model version ID (use this OR model)" },
7140
- model: { type: "string", description: "Model as owner/name or owner/name:version (use this OR version)" },
7141
- input: { description: "Model input parameters as JSON object or string" },
7142
- webhook: { type: "string" },
7143
- stream: { type: "boolean" },
7300
+ api_key: { type: "string", description: "HeyGen API key" },
7144
7301
  },
7145
- required: ["api_token", "input"],
7302
+ required: ["api_key"],
7146
7303
  },
7147
7304
  },
7305
+ // ── runway-tool.ts ────────────────────────────────────────────────────────────
7148
7306
  {
7149
- name: "replicate_get_prediction",
7150
- description: "Get the status and output of a Replicate prediction.",
7307
+ name: "runway_generate_video",
7308
+ description: "Generate a video from text or an image using Runway ML. Supports text-to-video and image-to-video. Returns a task_id to poll for completion.",
7151
7309
  inputSchema: {
7152
7310
  type: "object",
7153
7311
  properties: {
7154
- api_token: { type: "string" },
7155
- prediction_id: { type: "string" },
7312
+ api_key: { type: "string", description: "Runway API key" },
7313
+ prompt: { type: "string", description: "Text description of the video to generate" },
7314
+ image_url: { type: "string", description: "URL of an image to animate (image-to-video mode)" },
7315
+ model: { type: "string", description: "Model name: gen3a_turbo (fast) or gen3a (quality). Default: gen3a_turbo" },
7316
+ duration: { type: "number", description: "Video duration in seconds (default: 5)" },
7317
+ ratio: { type: "string", description: "Aspect ratio e.g. 1280:768 or 768:1280 (default: 1280:768)" },
7318
+ seed: { type: "number", description: "Random seed for reproducibility" },
7156
7319
  },
7157
- required: ["api_token", "prediction_id"],
7320
+ required: ["api_key"],
7158
7321
  },
7159
7322
  },
7160
7323
  {
7161
- name: "replicate_list_predictions",
7162
- description: "List recent predictions for a Replicate account.",
7324
+ name: "runway_get_task",
7325
+ description: "Check the status of a Runway ML generation task. Returns status, progress, and video URL when complete.",
7163
7326
  inputSchema: {
7164
7327
  type: "object",
7165
7328
  properties: {
7166
- api_token: { type: "string" },
7167
- cursor: { type: "string" },
7329
+ api_key: { type: "string", description: "Runway API key" },
7330
+ task_id: { type: "string", description: "Task ID returned by runway_generate_video" },
7168
7331
  },
7169
- required: ["api_token"],
7332
+ required: ["api_key", "task_id"],
7170
7333
  },
7171
7334
  },
7172
7335
  {
7173
- name: "replicate_cancel_prediction",
7174
- description: "Cancel a running Replicate prediction.",
7336
+ name: "runway_list_models",
7337
+ description: "List available Runway ML video generation models.",
7175
7338
  inputSchema: {
7176
7339
  type: "object",
7177
7340
  properties: {
7178
- api_token: { type: "string" },
7179
- prediction_id: { type: "string" },
7341
+ api_key: { type: "string", description: "Runway API key" },
7180
7342
  },
7181
- required: ["api_token", "prediction_id"],
7343
+ required: ["api_key"],
7182
7344
  },
7183
7345
  },
7184
- // ── stability-tool.ts ─────────────────────────────────────────────────────────
7346
+ // ── pika-tool.ts ──────────────────────────────────────────────────────────────
7185
7347
  {
7186
- name: "stability_text_to_image",
7187
- description: "Generate images from a text prompt using Stability AI.",
7348
+ name: "pika_generate_video",
7349
+ description: "Generate a creative AI video from a text prompt using Pika. Optionally animate an input image. Returns a generation_id to poll for completion.",
7188
7350
  inputSchema: {
7189
7351
  type: "object",
7190
7352
  properties: {
7191
- api_key: { type: "string" },
7192
- prompt: { type: "string" },
7193
- engine_id: { type: "string", description: "Stability engine ID (default: stable-diffusion-xl-1024-v1-0)" },
7194
- negative_prompt: { type: "string" },
7195
- width: { type: "number" },
7196
- height: { type: "number" },
7197
- steps: { type: "number", description: "Diffusion steps 10-150 (default: 30)" },
7198
- cfg_scale: { type: "number", description: "Guidance scale 0-35 (default: 7)" },
7199
- samples: { type: "number", description: "Number of images (max 10, default: 1)" },
7200
- style_preset: { type: "string" },
7201
- seed: { type: "number" },
7353
+ api_key: { type: "string", description: "Pika API key" },
7354
+ prompt: { type: "string", description: "Text description of the video to generate" },
7355
+ image_url: { type: "string", description: "URL of an image to animate" },
7356
+ style: { type: "string", description: "Style name or ID (use pika_list_styles to browse options)" },
7357
+ duration: { type: "number", description: "Video duration in seconds" },
7358
+ aspect_ratio: { type: "string", description: "e.g. 16:9, 9:16, 1:1" },
7359
+ negative_prompt: { type: "string", description: "What to avoid in the video" },
7360
+ motion: { type: "number", description: "Motion intensity 1-4 (default: 2)" },
7361
+ seed: { type: "number", description: "Random seed for reproducibility" },
7202
7362
  },
7203
7363
  required: ["api_key", "prompt"],
7204
7364
  },
7205
7365
  },
7206
7366
  {
7207
- name: "stability_image_to_image",
7208
- description: "Transform an existing image using a text prompt with Stability AI.",
7367
+ name: "pika_get_generation",
7368
+ description: "Check the status of a Pika video generation by ID.",
7209
7369
  inputSchema: {
7210
7370
  type: "object",
7211
7371
  properties: {
7212
- api_key: { type: "string" },
7213
- prompt: { type: "string" },
7214
- image_url: { type: "string", description: "URL of the source image" },
7215
- engine_id: { type: "string" },
7216
- negative_prompt: { type: "string" },
7217
- strength: { type: "number", description: "0.0-1.0: how much to change the image (default: 0.35)" },
7218
- steps: { type: "number" },
7219
- cfg_scale: { type: "number" },
7220
- samples: { type: "number" },
7372
+ api_key: { type: "string", description: "Pika API key" },
7373
+ generation_id: { type: "string", description: "Generation ID returned by pika_generate_video" },
7221
7374
  },
7222
- required: ["api_key", "prompt", "image_url"],
7375
+ required: ["api_key", "generation_id"],
7223
7376
  },
7224
7377
  },
7225
7378
  {
7226
- name: "stability_upscale",
7227
- description: "Upscale an image using Stability AI ESRGAN.",
7379
+ name: "pika_list_styles",
7380
+ description: "List available visual styles for Pika video generation.",
7228
7381
  inputSchema: {
7229
7382
  type: "object",
7230
7383
  properties: {
7231
- api_key: { type: "string" },
7232
- image_url: { type: "string", description: "URL of the image to upscale" },
7233
- width: { type: "number", description: "Target width in pixels (default: 2048)" },
7234
- engine_id: { type: "string", description: "Upscale engine (default: esrgan-v1-x2plus)" },
7384
+ api_key: { type: "string", description: "Pika API key" },
7235
7385
  },
7236
- required: ["api_key", "image_url"],
7386
+ required: ["api_key"],
7237
7387
  },
7238
7388
  },
7389
+ // ── mailchimp-tool.ts ─────────────────────────────────────────────────────────
7239
7390
  {
7240
- name: "stability_list_engines",
7241
- description: "List all available Stability AI generation engines.",
7391
+ name: "mailchimp_list_audiences",
7392
+ description: "List all Mailchimp audiences (lists) in the account.",
7242
7393
  inputSchema: {
7243
7394
  type: "object",
7244
7395
  properties: {
7245
- api_key: { type: "string" },
7396
+ api_key: { type: "string", description: "Mailchimp API key (format: key-dc e.g. abc123-us21)" },
7397
+ count: { type: "number", description: "Number of audiences to return (default: 10, max: 1000)" },
7246
7398
  },
7247
7399
  required: ["api_key"],
7248
7400
  },
7249
7401
  },
7250
- // ── openai-tool.ts ────────────────────────────────────────────────────────────
7251
7402
  {
7252
- name: "openai_chat_completion",
7253
- description: "Run a chat completion with an OpenAI model (GPT-4o, GPT-4, etc.).",
7403
+ name: "mailchimp_list_campaigns",
7404
+ description: "List Mailchimp email campaigns, optionally filtered by status or audience.",
7254
7405
  inputSchema: {
7255
7406
  type: "object",
7256
7407
  properties: {
7257
- api_key: { type: "string" },
7258
- model: { type: "string", description: "Model ID, e.g. gpt-4o, gpt-4o-mini (default: gpt-4o-mini)" },
7259
- prompt: { type: "string", description: "Convenience: single user message (alternative to messages array)" },
7260
- system_prompt: { type: "string", description: "System instruction (used with prompt param)" },
7261
- messages: { description: "Array of {role, content} message objects (alternative to prompt)" },
7262
- max_tokens: { type: "number" },
7263
- temperature: { type: "number" },
7264
- top_p: { type: "number" },
7265
- n: { type: "number" },
7266
- response_format: { description: "e.g. {type: 'json_object'}" },
7267
- seed: { type: "number" },
7268
- org_id: { type: "string", description: "OpenAI organization ID (optional)" },
7408
+ api_key: { type: "string", description: "Mailchimp API key" },
7409
+ count: { type: "number", description: "Number of campaigns (default: 10)" },
7410
+ status: { type: "string", enum: ["save", "paused", "schedule", "sending", "sent"], description: "Filter by campaign status" },
7411
+ list_id: { type: "string", description: "Filter by audience ID" },
7269
7412
  },
7270
7413
  required: ["api_key"],
7271
7414
  },
7272
7415
  },
7273
7416
  {
7274
- name: "openai_create_embedding",
7275
- description: "Create vector embeddings for text using an OpenAI embedding model.",
7417
+ name: "mailchimp_get_campaign",
7418
+ description: "Get details for a specific Mailchimp campaign by ID.",
7276
7419
  inputSchema: {
7277
7420
  type: "object",
7278
7421
  properties: {
7279
- api_key: { type: "string" },
7280
- input: { description: "String or array of strings to embed" },
7281
- model: { type: "string", description: "Embedding model (default: text-embedding-3-small)" },
7282
- dimensions: { type: "number", description: "Number of output dimensions (for text-embedding-3-* models)" },
7283
- org_id: { type: "string" },
7422
+ api_key: { type: "string", description: "Mailchimp API key" },
7423
+ campaign_id: { type: "string", description: "Campaign ID" },
7284
7424
  },
7285
- required: ["api_key", "input"],
7425
+ required: ["api_key", "campaign_id"],
7286
7426
  },
7287
7427
  },
7288
7428
  {
7289
- name: "openai_generate_image",
7290
- description: "Generate images from a text prompt using DALL-E.",
7429
+ name: "mailchimp_create_campaign",
7430
+ description: "Create a new Mailchimp email campaign.",
7291
7431
  inputSchema: {
7292
7432
  type: "object",
7293
7433
  properties: {
7294
- api_key: { type: "string" },
7295
- prompt: { type: "string" },
7296
- model: { type: "string", description: "dall-e-3 or dall-e-2 (default: dall-e-3)" },
7297
- n: { type: "number", description: "Number of images to generate" },
7298
- size: { type: "string", description: "1024x1024, 1792x1024, or 1024x1792 for DALL-E 3" },
7299
- quality: { type: "string", description: "standard or hd (DALL-E 3 only)" },
7300
- style: { type: "string", description: "natural or vivid (DALL-E 3 only)" },
7301
- response_format: { type: "string", description: "url or b64_json (default: url)" },
7434
+ api_key: { type: "string", description: "Mailchimp API key" },
7435
+ list_id: { type: "string", description: "Audience (list) ID to send to" },
7436
+ subject_line: { type: "string", description: "Email subject line" },
7437
+ type: { type: "string", enum: ["regular", "plaintext", "absplit", "rss", "variate"], description: "Campaign type (default: regular)" },
7438
+ from_name: { type: "string", description: "Sender display name" },
7439
+ reply_to: { type: "string", description: "Reply-to email address" },
7302
7440
  },
7303
- required: ["api_key", "prompt"],
7441
+ required: ["api_key", "list_id", "subject_line"],
7304
7442
  },
7305
7443
  },
7306
7444
  {
7307
- name: "openai_create_transcription",
7308
- description: "Transcribe audio to text using OpenAI Whisper.",
7445
+ name: "mailchimp_list_members",
7446
+ description: "List members (subscribers) in a Mailchimp audience.",
7309
7447
  inputSchema: {
7310
7448
  type: "object",
7311
7449
  properties: {
7312
- api_key: { type: "string" },
7313
- audio_url: { type: "string", description: "URL of the audio file to transcribe" },
7314
- model: { type: "string", description: "Transcription model (default: whisper-1)" },
7315
- language: { type: "string", description: "ISO-639-1 language code (optional)" },
7316
- response_format: { type: "string", description: "json, text, srt, verbose_json, vtt (default: json)" },
7317
- prompt: { type: "string" },
7318
- temperature: { type: "number" },
7319
- filename: { type: "string" },
7450
+ api_key: { type: "string", description: "Mailchimp API key" },
7451
+ list_id: { type: "string", description: "Audience ID" },
7452
+ count: { type: "number", description: "Number of members to return (default: 10)" },
7453
+ status: { type: "string", enum: ["subscribed", "unsubscribed", "cleaned", "pending", "transactional"], description: "Filter by subscription status" },
7320
7454
  },
7321
- required: ["api_key", "audio_url"],
7455
+ required: ["api_key", "list_id"],
7322
7456
  },
7323
7457
  },
7324
7458
  {
7325
- name: "openai_list_models",
7326
- description: "List all OpenAI models available to the account.",
7459
+ name: "mailchimp_add_member",
7460
+ description: "Add or update a subscriber in a Mailchimp audience.",
7327
7461
  inputSchema: {
7328
7462
  type: "object",
7329
7463
  properties: {
7330
- api_key: { type: "string" },
7464
+ api_key: { type: "string", description: "Mailchimp API key" },
7465
+ list_id: { type: "string", description: "Audience ID" },
7466
+ email: { type: "string", description: "Subscriber email address" },
7467
+ status: { type: "string", enum: ["subscribed", "unsubscribed", "cleaned", "pending"], description: "Subscription status (default: subscribed)" },
7468
+ first_name: { type: "string", description: "Subscriber first name" },
7469
+ last_name: { type: "string", description: "Subscriber last name" },
7331
7470
  },
7332
- required: ["api_key"],
7471
+ required: ["api_key", "list_id", "email"],
7333
7472
  },
7334
7473
  },
7335
- // ── anthropic-tool.ts ─────────────────────────────────────────────────────────
7336
7474
  {
7337
- name: "anthropic_create_message",
7338
- description: "Send a message to the Anthropic Messages API (Claude models). Useful for agents that need to call Claude programmatically or compare model outputs.",
7475
+ name: "mailchimp_search_members",
7476
+ description: "Search for subscribers across all or a specific Mailchimp audience.",
7339
7477
  inputSchema: {
7340
7478
  type: "object",
7341
7479
  properties: {
7342
- api_key: { type: "string" },
7343
- model: { type: "string", description: "Claude model ID (default: claude-sonnet-4-6)" },
7344
- prompt: { type: "string", description: "Convenience: single user message (alternative to messages array)" },
7345
- messages: { description: "Array of {role, content} message objects" },
7346
- system: { type: "string", description: "System prompt" },
7347
- max_tokens: { type: "number", description: "Max tokens to generate (default: 1024)" },
7348
- temperature: { type: "number" },
7349
- top_p: { type: "number" },
7350
- top_k: { type: "number" },
7351
- stop_sequences: { description: "Array of stop sequences" },
7480
+ api_key: { type: "string", description: "Mailchimp API key" },
7481
+ query: { type: "string", description: "Search query (email address, name, etc.)" },
7482
+ list_id: { type: "string", description: "Limit search to a specific audience ID" },
7352
7483
  },
7353
- required: ["api_key"],
7484
+ required: ["api_key", "query"],
7354
7485
  },
7355
7486
  },
7487
+ // ── sendgrid-tool.ts ──────────────────────────────────────────────────────────
7356
7488
  {
7357
- name: "anthropic_list_models",
7358
- description: "List all Claude models available via the Anthropic API.",
7489
+ name: "sendgrid_send_email",
7490
+ description: "Send a transactional email via SendGrid.",
7359
7491
  inputSchema: {
7360
7492
  type: "object",
7361
7493
  properties: {
7362
- api_key: { type: "string" },
7494
+ api_key: { type: "string", description: "SendGrid API key from app.sendgrid.com" },
7495
+ to: { type: "string", description: "Recipient email address" },
7496
+ from: { type: "string", description: "Sender email address (must be verified in SendGrid)" },
7497
+ subject: { type: "string", description: "Email subject line" },
7498
+ text: { type: "string", description: "Plain text content" },
7499
+ html: { type: "string", description: "HTML content" },
7500
+ to_name: { type: "string", description: "Recipient display name" },
7501
+ from_name: { type: "string", description: "Sender display name" },
7502
+ reply_to: { type: "string", description: "Reply-to email address" },
7503
+ template_id: { type: "string", description: "SendGrid dynamic template ID" },
7363
7504
  },
7364
- required: ["api_key"],
7505
+ required: ["api_key", "to", "from", "subject"],
7365
7506
  },
7366
7507
  },
7367
- // ── asana-tool.ts ────────────────────────────────────────────────────────────
7368
7508
  {
7369
- name: "list_asana_workspaces",
7370
- description: "List all Asana workspaces accessible by the authenticated user.",
7509
+ name: "sendgrid_list_templates",
7510
+ description: "List dynamic email templates in SendGrid.",
7371
7511
  inputSchema: {
7372
7512
  type: "object",
7373
7513
  properties: {
7374
- api_key: { type: "string", description: "Asana Personal Access Token (or set ASANA_API_KEY)" },
7514
+ api_key: { type: "string", description: "SendGrid API key" },
7515
+ page_size: { type: "number", description: "Number of templates (default: 10, max: 200)" },
7375
7516
  },
7517
+ required: ["api_key"],
7376
7518
  },
7377
7519
  },
7378
7520
  {
7379
- name: "list_asana_projects",
7380
- description: "List projects in an Asana workspace.",
7521
+ name: "sendgrid_get_template",
7522
+ description: "Get a specific SendGrid email template by ID.",
7381
7523
  inputSchema: {
7382
7524
  type: "object",
7383
7525
  properties: {
7384
- workspace_gid: { type: "string", description: "Workspace GID" },
7385
- archived: { type: "boolean", description: "Include archived projects (default false)" },
7386
- limit: { type: "number", description: "Max results (default 100)" },
7387
- api_key: { type: "string" },
7526
+ api_key: { type: "string", description: "SendGrid API key" },
7527
+ template_id: { type: "string", description: "Template ID" },
7388
7528
  },
7389
- required: ["workspace_gid"],
7529
+ required: ["api_key", "template_id"],
7390
7530
  },
7391
7531
  },
7392
7532
  {
7393
- name: "list_asana_tasks",
7394
- description: "List tasks in an Asana project.",
7533
+ name: "sendgrid_list_contacts",
7534
+ description: "List all marketing contacts in SendGrid.",
7395
7535
  inputSchema: {
7396
7536
  type: "object",
7397
7537
  properties: {
7398
- project_gid: { type: "string", description: "Project GID" },
7399
- completed: { type: "boolean", description: "Filter to completed tasks only" },
7400
- limit: { type: "number" },
7401
- api_key: { type: "string" },
7538
+ api_key: { type: "string", description: "SendGrid API key" },
7402
7539
  },
7403
- required: ["project_gid"],
7540
+ required: ["api_key"],
7404
7541
  },
7405
7542
  },
7406
7543
  {
7407
- name: "create_asana_task",
7408
- description: "Create a new task in Asana.",
7544
+ name: "sendgrid_add_contact",
7545
+ description: "Add or update a marketing contact in SendGrid.",
7409
7546
  inputSchema: {
7410
7547
  type: "object",
7411
7548
  properties: {
7412
- name: { type: "string", description: "Task name" },
7413
- workspace_gid: { type: "string", description: "Workspace GID" },
7414
- notes: { type: "string", description: "Task description" },
7415
- due_on: { type: "string", description: "Due date (YYYY-MM-DD)" },
7416
- assignee: { type: "string", description: "Assignee GID or 'me'" },
7417
- projects: { type: "array", items: { type: "string" }, description: "Project GIDs to add the task to" },
7418
- api_key: { type: "string" },
7549
+ api_key: { type: "string", description: "SendGrid API key" },
7550
+ email: { type: "string", description: "Contact email address" },
7551
+ first_name: { type: "string", description: "First name" },
7552
+ last_name: { type: "string", description: "Last name" },
7553
+ phone_number: { type: "string", description: "Phone number" },
7554
+ list_ids: { type: "array", items: { type: "string" }, description: "List IDs to add the contact to" },
7419
7555
  },
7420
- required: ["name", "workspace_gid"],
7556
+ required: ["api_key", "email"],
7421
7557
  },
7422
7558
  },
7423
7559
  {
7424
- name: "update_asana_task",
7425
- description: "Update an existing Asana task.",
7560
+ name: "sendgrid_get_stats",
7561
+ description: "Get SendGrid email sending statistics for a date range.",
7426
7562
  inputSchema: {
7427
7563
  type: "object",
7428
7564
  properties: {
7429
- task_gid: { type: "string", description: "Task GID" },
7430
- name: { type: "string" },
7431
- notes: { type: "string" },
7432
- completed: { type: "boolean" },
7433
- due_on: { type: "string", description: "YYYY-MM-DD or null to clear" },
7434
- assignee: { type: "string", description: "Assignee GID or null to unassign" },
7435
- api_key: { type: "string" },
7565
+ api_key: { type: "string", description: "SendGrid API key" },
7566
+ start_date: { type: "string", description: "Start date (YYYY-MM-DD). Defaults to 7 days ago." },
7567
+ end_date: { type: "string", description: "End date (YYYY-MM-DD)" },
7568
+ aggregated_by: { type: "string", enum: ["day", "week", "month"], description: "Aggregation period (default: day)" },
7436
7569
  },
7437
- required: ["task_gid"],
7570
+ required: ["api_key"],
7438
7571
  },
7439
7572
  },
7573
+ // ── mapbox-tool.ts ────────────────────────────────────────────────────────────
7440
7574
  {
7441
- name: "get_asana_task",
7442
- description: "Get full details of a single Asana task.",
7575
+ name: "mapbox_geocode_forward",
7576
+ description: "Convert an address or place name to coordinates using Mapbox.",
7443
7577
  inputSchema: {
7444
7578
  type: "object",
7445
7579
  properties: {
7446
- task_gid: { type: "string", description: "Task GID" },
7447
- api_key: { type: "string" },
7580
+ access_token: { type: "string", description: "Mapbox access token from account.mapbox.com" },
7581
+ query: { type: "string", description: "Address or place name to geocode" },
7582
+ country: { type: "string", description: "Limit results to a country (ISO 3166 alpha-2, e.g. US)" },
7583
+ language: { type: "string", description: "Language for results (e.g. en, fr)" },
7584
+ limit: { type: "number", description: "Max results (1-10, default: 5)" },
7585
+ proximity: { type: "string", description: "Bias results near coordinates (lng,lat)" },
7586
+ types: { type: "string", description: "Filter by feature types (e.g. address,place,poi)" },
7448
7587
  },
7449
- required: ["task_gid"],
7588
+ required: ["access_token", "query"],
7450
7589
  },
7451
7590
  },
7452
7591
  {
7453
- name: "search_asana_tasks",
7454
- description: "Search tasks by text within an Asana workspace.",
7592
+ name: "mapbox_geocode_reverse",
7593
+ description: "Convert coordinates to a place name or address using Mapbox reverse geocoding.",
7455
7594
  inputSchema: {
7456
7595
  type: "object",
7457
7596
  properties: {
7458
- workspace_gid: { type: "string", description: "Workspace GID" },
7459
- text: { type: "string", description: "Search query" },
7460
- completed: { type: "boolean" },
7461
- limit: { type: "number" },
7462
- api_key: { type: "string" },
7597
+ access_token: { type: "string", description: "Mapbox access token" },
7598
+ longitude: { type: "number", description: "Longitude" },
7599
+ latitude: { type: "number", description: "Latitude" },
7600
+ language: { type: "string", description: "Language for results" },
7601
+ types: { type: "string", description: "Filter by feature types" },
7463
7602
  },
7464
- required: ["workspace_gid", "text"],
7603
+ required: ["access_token", "longitude", "latitude"],
7465
7604
  },
7466
7605
  },
7467
- // ── monday-tool.ts ───────────────────────────────────────────────────────────
7468
7606
  {
7469
- name: "list_monday_boards",
7470
- description: "List boards in a Monday.com account.",
7607
+ name: "mapbox_get_directions",
7608
+ description: "Get turn-by-turn directions between two or more locations using Mapbox.",
7471
7609
  inputSchema: {
7472
7610
  type: "object",
7473
7611
  properties: {
7474
- limit: { type: "number", description: "Max boards to return (default 25)" },
7475
- api_key: { type: "string", description: "Monday.com API token (or set MONDAY_API_KEY)" },
7612
+ access_token: { type: "string", description: "Mapbox access token" },
7613
+ coordinates: { type: "string", description: "Semicolon-separated lng,lat pairs (e.g. -122.4194,37.7749;-118.2437,34.0522)" },
7614
+ profile: { type: "string", enum: ["mapbox/driving", "mapbox/walking", "mapbox/cycling", "mapbox/driving-traffic"], description: "Routing profile (default: mapbox/driving)" },
7615
+ alternatives: { type: "boolean", description: "Return alternative routes" },
7616
+ steps: { type: "boolean", description: "Include turn-by-turn steps" },
7617
+ overview: { type: "string", enum: ["full", "simplified", "false"], description: "Route overview geometry detail" },
7618
+ language: { type: "string", description: "Language for instructions" },
7476
7619
  },
7620
+ required: ["access_token", "coordinates"],
7477
7621
  },
7478
7622
  },
7479
7623
  {
7480
- name: "get_monday_board",
7481
- description: "Get details of a specific Monday.com board including columns and groups.",
7624
+ name: "mapbox_get_static_map",
7625
+ description: "Generate a static map image URL for a given location using Mapbox.",
7482
7626
  inputSchema: {
7483
7627
  type: "object",
7484
7628
  properties: {
7485
- board_id: { type: "string", description: "Board ID" },
7486
- api_key: { type: "string" },
7629
+ access_token: { type: "string", description: "Mapbox access token" },
7630
+ longitude: { type: "number", description: "Center longitude" },
7631
+ latitude: { type: "number", description: "Center latitude" },
7632
+ zoom: { type: "number", description: "Zoom level (0-22, default: 12)" },
7633
+ width: { type: "number", description: "Image width in px (max: 1280, default: 600)" },
7634
+ height: { type: "number", description: "Image height in px (max: 1280, default: 400)" },
7635
+ style: { type: "string", description: "Map style (default: mapbox/streets-v11)" },
7636
+ retina: { type: "boolean", description: "Return @2x high-DPI image" },
7487
7637
  },
7488
- required: ["board_id"],
7638
+ required: ["access_token", "longitude", "latitude"],
7489
7639
  },
7490
7640
  },
7491
7641
  {
7492
- name: "list_monday_items",
7493
- description: "List items (rows) in a Monday.com board.",
7642
+ name: "mapbox_list_tilesets",
7643
+ description: "List Mapbox tilesets owned by a user.",
7494
7644
  inputSchema: {
7495
7645
  type: "object",
7496
7646
  properties: {
7497
- board_id: { type: "string", description: "Board ID" },
7498
- limit: { type: "number", description: "Max items (default 50)" },
7499
- api_key: { type: "string" },
7647
+ access_token: { type: "string", description: "Mapbox access token" },
7648
+ username: { type: "string", description: "Mapbox username" },
7649
+ limit: { type: "number", description: "Max tilesets to return (max: 500)" },
7650
+ type: { type: "string", enum: ["raster", "vector"], description: "Filter by tileset type" },
7500
7651
  },
7501
- required: ["board_id"],
7652
+ required: ["access_token", "username"],
7502
7653
  },
7503
7654
  },
7655
+ // ── algolia-tool.ts ───────────────────────────────────────────────────────────
7504
7656
  {
7505
- name: "create_monday_item",
7506
- description: "Create a new item in a Monday.com board.",
7657
+ name: "algolia_search",
7658
+ description: "Search an Algolia index for records matching a query.",
7507
7659
  inputSchema: {
7508
7660
  type: "object",
7509
7661
  properties: {
7510
- board_id: { type: "string", description: "Board ID" },
7511
- item_name: { type: "string", description: "Item name" },
7512
- group_id: { type: "string", description: "Group ID to add the item to" },
7513
- column_values: { type: "object", description: "Column values as JSON object" },
7514
- api_key: { type: "string" },
7662
+ app_id: { type: "string", description: "Algolia Application ID" },
7663
+ api_key: { type: "string", description: "Algolia API Key (Search or Admin)" },
7664
+ index: { type: "string", description: "Index name to search" },
7665
+ query: { type: "string", description: "Search query text" },
7666
+ filters: { type: "string", description: "Algolia filter expression (e.g. category:electronics)" },
7667
+ hits_per_page: { type: "number", description: "Results per page (default: 20)" },
7668
+ page: { type: "number", description: "Page number (0-indexed)" },
7669
+ attributes_to_retrieve: { type: "array", items: { type: "string" }, description: "Attributes to include in results" },
7515
7670
  },
7516
- required: ["board_id", "item_name"],
7671
+ required: ["app_id", "api_key", "index"],
7517
7672
  },
7518
7673
  },
7519
7674
  {
7520
- name: "update_monday_item",
7521
- description: "Update a column value on a Monday.com item.",
7675
+ name: "algolia_get_object",
7676
+ description: "Retrieve a single record from an Algolia index by its objectID.",
7522
7677
  inputSchema: {
7523
7678
  type: "object",
7524
7679
  properties: {
7525
- board_id: { type: "string" },
7526
- item_id: { type: "string" },
7527
- column_id: { type: "string", description: "Column ID to update" },
7528
- value: { description: "New value (string or JSON)" },
7529
- api_key: { type: "string" },
7680
+ app_id: { type: "string", description: "Algolia Application ID" },
7681
+ api_key: { type: "string", description: "Algolia API Key" },
7682
+ index: { type: "string", description: "Index name" },
7683
+ object_id: { type: "string", description: "Record objectID" },
7530
7684
  },
7531
- required: ["board_id", "item_id", "column_id", "value"],
7685
+ required: ["app_id", "api_key", "index", "object_id"],
7532
7686
  },
7533
7687
  },
7534
7688
  {
7535
- name: "search_monday_items",
7536
- description: "Search items by name in a Monday.com board.",
7689
+ name: "algolia_list_indices",
7690
+ description: "List all Algolia indices in the application.",
7537
7691
  inputSchema: {
7538
7692
  type: "object",
7539
7693
  properties: {
7540
- board_id: { type: "string" },
7541
- query: { type: "string", description: "Search text" },
7542
- limit: { type: "number" },
7543
- api_key: { type: "string" },
7694
+ app_id: { type: "string", description: "Algolia Application ID" },
7695
+ api_key: { type: "string", description: "Algolia Admin API Key" },
7544
7696
  },
7545
- required: ["board_id", "query"],
7697
+ required: ["app_id", "api_key"],
7546
7698
  },
7547
7699
  },
7548
- // ── calendly-tool.ts ─────────────────────────────────────────────────────────
7549
7700
  {
7550
- name: "get_calendly_user",
7551
- description: "Get the authenticated Calendly user profile.",
7701
+ name: "algolia_browse_index",
7702
+ description: "Browse all records in an Algolia index (paginated cursor-based).",
7552
7703
  inputSchema: {
7553
7704
  type: "object",
7554
7705
  properties: {
7555
- api_key: { type: "string", description: "Calendly Personal Access Token (or set CALENDLY_API_KEY)" },
7706
+ app_id: { type: "string", description: "Algolia Application ID" },
7707
+ api_key: { type: "string", description: "Algolia Admin API Key" },
7708
+ index: { type: "string", description: "Index name" },
7709
+ filters: { type: "string", description: "Filter expression" },
7710
+ hits_per_page: { type: "number", description: "Records per page" },
7711
+ cursor: { type: "string", description: "Pagination cursor from previous response" },
7712
+ attributes_to_retrieve: { type: "array", items: { type: "string" }, description: "Attributes to include" },
7556
7713
  },
7714
+ required: ["app_id", "api_key", "index"],
7557
7715
  },
7558
7716
  },
7717
+ // ── pinecone-tool.ts ──────────────────────────────────────────────────────────
7559
7718
  {
7560
- name: "list_calendly_event_types",
7561
- description: "List event types for the authenticated Calendly user.",
7719
+ name: "pinecone_list_indexes",
7720
+ description: "List all Pinecone vector indexes in the project.",
7562
7721
  inputSchema: {
7563
7722
  type: "object",
7564
7723
  properties: {
7565
- user_uri: { type: "string", description: "User URI (auto-resolved if omitted)" },
7566
- active: { type: "boolean", description: "Filter to active event types only" },
7567
- count: { type: "number" },
7568
- api_key: { type: "string" },
7724
+ api_key: { type: "string", description: "Pinecone API key from app.pinecone.io" },
7569
7725
  },
7726
+ required: ["api_key"],
7570
7727
  },
7571
7728
  },
7572
7729
  {
7573
- name: "list_calendly_events",
7574
- description: "List scheduled events for the authenticated Calendly user.",
7730
+ name: "pinecone_describe_index",
7731
+ description: "Get details (dimension, metric, status, host) for a Pinecone index.",
7575
7732
  inputSchema: {
7576
7733
  type: "object",
7577
7734
  properties: {
7578
- user_uri: { type: "string", description: "User URI (auto-resolved if omitted)" },
7579
- status: { type: "string", description: "active or canceled" },
7580
- min_start_time: { type: "string", description: "ISO 8601 datetime" },
7581
- max_start_time: { type: "string", description: "ISO 8601 datetime" },
7582
- count: { type: "number" },
7583
- sort: { type: "string", description: "e.g. start_time:asc" },
7584
- api_key: { type: "string" },
7735
+ api_key: { type: "string", description: "Pinecone API key" },
7736
+ index_name: { type: "string", description: "Index name" },
7585
7737
  },
7738
+ required: ["api_key", "index_name"],
7586
7739
  },
7587
7740
  },
7588
7741
  {
7589
- name: "get_calendly_event",
7590
- description: "Get details of a single Calendly scheduled event.",
7742
+ name: "pinecone_query_vectors",
7743
+ description: "Query a Pinecone index for nearest-neighbor vectors.",
7591
7744
  inputSchema: {
7592
7745
  type: "object",
7593
7746
  properties: {
7594
- event_uuid: { type: "string", description: "Event UUID" },
7595
- api_key: { type: "string" },
7747
+ api_key: { type: "string", description: "Pinecone API key" },
7748
+ index_host: { type: "string", description: "Index host URL from describe_index (e.g. https://my-index-xxx.svc.pinecone.io)" },
7749
+ vector: { type: "array", items: { type: "number" }, description: "Query vector (array of floats matching index dimension)" },
7750
+ top_k: { type: "number", description: "Number of nearest neighbors to return (default: 10)" },
7751
+ namespace: { type: "string", description: "Namespace to query" },
7752
+ include_metadata: { type: "boolean", description: "Include metadata in results (default: true)" },
7753
+ include_values: { type: "boolean", description: "Include vector values in results" },
7754
+ filter: { type: "object", description: "Metadata filter object" },
7596
7755
  },
7597
- required: ["event_uuid"],
7756
+ required: ["api_key", "index_host", "vector"],
7598
7757
  },
7599
7758
  },
7600
7759
  {
7601
- name: "list_calendly_invitees",
7602
- description: "List invitees for a Calendly scheduled event.",
7760
+ name: "pinecone_upsert_vectors",
7761
+ description: "Upsert (insert or update) vectors into a Pinecone index.",
7603
7762
  inputSchema: {
7604
7763
  type: "object",
7605
7764
  properties: {
7606
- event_uuid: { type: "string", description: "Event UUID" },
7607
- status: { type: "string", description: "active or canceled" },
7608
- count: { type: "number" },
7609
- api_key: { type: "string" },
7765
+ api_key: { type: "string", description: "Pinecone API key" },
7766
+ index_host: { type: "string", description: "Index host URL from describe_index" },
7767
+ vectors: { type: "array", description: "Array of {id, values, metadata?} objects to upsert", items: { type: "object" } },
7768
+ namespace: { type: "string", description: "Namespace to write to" },
7610
7769
  },
7611
- required: ["event_uuid"],
7770
+ required: ["api_key", "index_host", "vectors"],
7612
7771
  },
7613
7772
  },
7614
- // ── pinterest-tool.ts ────────────────────────────────────────────────────────
7615
7773
  {
7616
- name: "list_pinterest_boards",
7617
- description: "List Pinterest boards for the authenticated user.",
7774
+ name: "pinecone_delete_vectors",
7775
+ description: "Delete vectors from a Pinecone index by ID or filter.",
7618
7776
  inputSchema: {
7619
7777
  type: "object",
7620
7778
  properties: {
7621
- page_size: { type: "number" },
7622
- bookmark: { type: "string", description: "Pagination cursor" },
7623
- privacy: { type: "string", description: "PUBLIC, PROTECTED, or SECRET" },
7624
- access_token: { type: "string", description: "Pinterest access token (or set PINTEREST_ACCESS_TOKEN)" },
7779
+ api_key: { type: "string", description: "Pinecone API key" },
7780
+ index_host: { type: "string", description: "Index host URL from describe_index" },
7781
+ ids: { type: "array", items: { type: "string" }, description: "Array of vector IDs to delete" },
7782
+ delete_all: { type: "boolean", description: "Delete all vectors in the namespace" },
7783
+ namespace: { type: "string", description: "Namespace to delete from" },
7784
+ filter: { type: "object", description: "Metadata filter - delete matching vectors" },
7625
7785
  },
7786
+ required: ["api_key", "index_host"],
7626
7787
  },
7627
7788
  },
7789
+ // ── mixpanel-tool.ts ──────────────────────────────────────────────────────────
7628
7790
  {
7629
- name: "get_pinterest_board",
7630
- description: "Get details of a specific Pinterest board.",
7791
+ name: "mixpanel_track_event",
7792
+ description: "Track a custom event in Mixpanel.",
7631
7793
  inputSchema: {
7632
7794
  type: "object",
7633
7795
  properties: {
7634
- board_id: { type: "string", description: "Board ID" },
7635
- access_token: { type: "string" },
7796
+ service_account_username: { type: "string", description: "Mixpanel Service Account username" },
7797
+ service_account_secret: { type: "string", description: "Mixpanel Service Account secret" },
7798
+ project_id: { type: "string", description: "Mixpanel project ID" },
7799
+ token: { type: "string", description: "Mixpanel project token (for ingestion)" },
7800
+ event: { type: "string", description: "Event name" },
7801
+ distinct_id: { type: "string", description: "User distinct ID (default: anonymous)" },
7802
+ properties: { type: "object", description: "Additional event properties" },
7636
7803
  },
7637
- required: ["board_id"],
7804
+ required: ["service_account_username", "service_account_secret", "project_id", "token", "event"],
7638
7805
  },
7639
7806
  },
7640
7807
  {
7641
- name: "list_pinterest_pins",
7642
- description: "List pins on a Pinterest board.",
7808
+ name: "mixpanel_get_events",
7809
+ description: "Get Mixpanel event analytics data for a date range.",
7643
7810
  inputSchema: {
7644
7811
  type: "object",
7645
7812
  properties: {
7646
- board_id: { type: "string", description: "Board ID" },
7647
- page_size: { type: "number" },
7648
- bookmark: { type: "string" },
7649
- access_token: { type: "string" },
7813
+ service_account_username: { type: "string", description: "Mixpanel Service Account username" },
7814
+ service_account_secret: { type: "string", description: "Mixpanel Service Account secret" },
7815
+ project_id: { type: "string", description: "Mixpanel project ID" },
7816
+ from_date: { type: "string", description: "Start date (YYYY-MM-DD, default: 7 days ago)" },
7817
+ to_date: { type: "string", description: "End date (YYYY-MM-DD, default: today)" },
7818
+ event: { type: "array", items: { type: "string" }, description: "Event names to filter by" },
7819
+ unit: { type: "string", enum: ["minute", "hour", "day", "week", "month"], description: "Time unit (default: day)" },
7820
+ type: { type: "string", enum: ["general", "unique", "average"], description: "Aggregation type (default: general)" },
7650
7821
  },
7651
- required: ["board_id"],
7822
+ required: ["service_account_username", "service_account_secret", "project_id"],
7652
7823
  },
7653
7824
  },
7654
7825
  {
7655
- name: "create_pinterest_pin",
7656
- description: "Create a new Pinterest pin from an image URL.",
7826
+ name: "mixpanel_get_funnels",
7827
+ description: "Get funnel conversion data from Mixpanel.",
7657
7828
  inputSchema: {
7658
7829
  type: "object",
7659
7830
  properties: {
7660
- board_id: { type: "string", description: "Board ID to pin to" },
7661
- media_source_url: { type: "string", description: "Public image URL" },
7662
- title: { type: "string" },
7663
- description: { type: "string" },
7664
- link: { type: "string", description: "Destination URL when pin is clicked" },
7665
- board_section_id: { type: "string" },
7666
- access_token: { type: "string" },
7831
+ service_account_username: { type: "string", description: "Mixpanel Service Account username" },
7832
+ service_account_secret: { type: "string", description: "Mixpanel Service Account secret" },
7833
+ project_id: { type: "string", description: "Mixpanel project ID" },
7834
+ funnel_id: { type: "string", description: "Funnel ID (find in Mixpanel UI)" },
7835
+ from_date: { type: "string", description: "Start date (YYYY-MM-DD, default: 30 days ago)" },
7836
+ to_date: { type: "string", description: "End date (YYYY-MM-DD)" },
7837
+ unit: { type: "string", enum: ["day", "week", "month"], description: "Time unit" },
7667
7838
  },
7668
- required: ["board_id", "media_source_url"],
7839
+ required: ["service_account_username", "service_account_secret", "project_id", "funnel_id"],
7669
7840
  },
7670
7841
  },
7671
7842
  {
7672
- name: "search_pinterest_pins",
7673
- description: "Search Pinterest pins by keyword.",
7843
+ name: "mixpanel_get_retention",
7844
+ description: "Get user retention analytics from Mixpanel.",
7674
7845
  inputSchema: {
7675
7846
  type: "object",
7676
7847
  properties: {
7677
- query: { type: "string", description: "Search query" },
7678
- page_size: { type: "number" },
7679
- bookmark: { type: "string" },
7680
- access_token: { type: "string" },
7848
+ service_account_username: { type: "string", description: "Mixpanel Service Account username" },
7849
+ service_account_secret: { type: "string", description: "Mixpanel Service Account secret" },
7850
+ project_id: { type: "string", description: "Mixpanel project ID" },
7851
+ from_date: { type: "string", description: "Start date (YYYY-MM-DD, default: 30 days ago)" },
7852
+ to_date: { type: "string", description: "End date (YYYY-MM-DD)" },
7853
+ born_event: { type: "string", description: "Event that defines user acquisition" },
7854
+ event: { type: "string", description: "Retention event to measure" },
7855
+ retention_type: { type: "string", enum: ["birth", "compactness"], description: "Retention type (default: birth)" },
7856
+ unit: { type: "string", enum: ["day", "week", "month"], description: "Time unit (default: day)" },
7681
7857
  },
7682
- required: ["query"],
7858
+ required: ["service_account_username", "service_account_secret", "project_id"],
7683
7859
  },
7684
7860
  },
7685
7861
  {
7686
- name: "get_pinterest_user",
7687
- description: "Get the authenticated Pinterest user account info.",
7862
+ name: "mixpanel_export_data",
7863
+ description: "Export raw Mixpanel event data for a date range.",
7688
7864
  inputSchema: {
7689
7865
  type: "object",
7690
7866
  properties: {
7691
- access_token: { type: "string" },
7867
+ service_account_username: { type: "string", description: "Mixpanel Service Account username" },
7868
+ service_account_secret: { type: "string", description: "Mixpanel Service Account secret" },
7869
+ project_id: { type: "string", description: "Mixpanel project ID" },
7870
+ from_date: { type: "string", description: "Start date (YYYY-MM-DD, default: yesterday)" },
7871
+ to_date: { type: "string", description: "End date (YYYY-MM-DD, default: today)" },
7872
+ event: { type: "array", items: { type: "string" }, description: "Filter by event names" },
7873
+ where: { type: "string", description: "Filter expression" },
7874
+ limit: { type: "number", description: "Max events to return" },
7692
7875
  },
7876
+ required: ["service_account_username", "service_account_secret", "project_id"],
7693
7877
  },
7694
7878
  },
7695
- // ── tiktok-tool.ts ───────────────────────────────────────────────────────────
7879
+ // ── datadog-tool.ts ───────────────────────────────────────────────────────────
7696
7880
  {
7697
- name: "get_tiktok_user",
7698
- description: "Get the authenticated TikTok user profile (follower count, video count, etc.).",
7881
+ name: "datadog_list_monitors",
7882
+ description: "List Datadog monitors (alerts) with optional name or tag filters.",
7699
7883
  inputSchema: {
7700
7884
  type: "object",
7701
7885
  properties: {
7702
- access_token: { type: "string", description: "TikTok OAuth access token (or set TIKTOK_ACCESS_TOKEN)" },
7886
+ api_key: { type: "string", description: "Datadog API key (DD-API-KEY)" },
7887
+ app_key: { type: "string", description: "Datadog Application key (DD-APPLICATION-KEY)" },
7888
+ name: { type: "string", description: "Filter monitors by name" },
7889
+ tags: { type: "string", description: "Comma-separated monitor tags to filter by" },
7890
+ page: { type: "number", description: "Page number (0-indexed)" },
7891
+ page_size: { type: "number", description: "Monitors per page (max: 1000)" },
7703
7892
  },
7893
+ required: ["api_key", "app_key"],
7704
7894
  },
7705
7895
  },
7706
7896
  {
7707
- name: "list_tiktok_videos",
7708
- description: "List videos for the authenticated TikTok user.",
7897
+ name: "datadog_get_monitor",
7898
+ description: "Get details for a specific Datadog monitor.",
7709
7899
  inputSchema: {
7710
7900
  type: "object",
7711
7901
  properties: {
7712
- max_count: { type: "number", description: "Max videos to return (default 20, max 20)" },
7713
- cursor: { type: "number", description: "Pagination cursor" },
7714
- access_token: { type: "string" },
7902
+ api_key: { type: "string", description: "Datadog API key" },
7903
+ app_key: { type: "string", description: "Datadog Application key" },
7904
+ monitor_id: { type: "string", description: "Monitor ID" },
7715
7905
  },
7906
+ required: ["api_key", "app_key", "monitor_id"],
7716
7907
  },
7717
7908
  },
7718
7909
  {
7719
- name: "get_tiktok_video",
7720
- description: "Get details of a specific TikTok video by ID.",
7910
+ name: "datadog_create_monitor",
7911
+ description: "Create a new Datadog monitor (alert).",
7721
7912
  inputSchema: {
7722
7913
  type: "object",
7723
7914
  properties: {
7724
- video_id: { type: "string", description: "TikTok video ID" },
7725
- access_token: { type: "string" },
7915
+ api_key: { type: "string", description: "Datadog API key" },
7916
+ app_key: { type: "string", description: "Datadog Application key" },
7917
+ name: { type: "string", description: "Monitor name" },
7918
+ type: { type: "string", description: "Monitor type (e.g. metric alert, service check, event alert)" },
7919
+ query: { type: "string", description: "Monitor query expression" },
7920
+ message: { type: "string", description: "Notification message" },
7921
+ tags: { type: "array", items: { type: "string" }, description: "Tags to attach to the monitor" },
7922
+ priority: { type: "number", minimum: 1, maximum: 5, description: "Monitor priority (1-5)" },
7726
7923
  },
7727
- required: ["video_id"],
7924
+ required: ["api_key", "app_key", "name", "query"],
7728
7925
  },
7729
7926
  },
7730
- // ── steam-tool.ts ────────────────────────────────────────────────────────────
7731
7927
  {
7732
- name: "get_steam_player_summaries",
7733
- description: "Get Steam player profile summaries for one or more Steam IDs.",
7928
+ name: "datadog_list_dashboards",
7929
+ description: "List Datadog dashboards.",
7734
7930
  inputSchema: {
7735
7931
  type: "object",
7736
7932
  properties: {
7737
- steamids: { type: "string", description: "Comma-separated Steam64 IDs (up to 100)" },
7738
- api_key: { type: "string", description: "Steam Web API key (or set STEAM_API_KEY)" },
7933
+ api_key: { type: "string", description: "Datadog API key" },
7934
+ app_key: { type: "string", description: "Datadog Application key" },
7935
+ filter_shared: { type: "boolean", description: "Filter to shared dashboards only" },
7739
7936
  },
7740
- required: ["steamids"],
7937
+ required: ["api_key", "app_key"],
7741
7938
  },
7742
7939
  },
7743
7940
  {
7744
- name: "get_steam_owned_games",
7745
- description: "Get games owned by a Steam user.",
7941
+ name: "datadog_query_metrics",
7942
+ description: "Query Datadog metrics time-series data.",
7746
7943
  inputSchema: {
7747
7944
  type: "object",
7748
7945
  properties: {
7749
- steamid: { type: "string", description: "Steam64 ID" },
7750
- include_appinfo: { type: "boolean", description: "Include game names (default true)" },
7751
- include_played_free_games: { type: "boolean" },
7752
- api_key: { type: "string" },
7946
+ api_key: { type: "string", description: "Datadog API key" },
7947
+ app_key: { type: "string", description: "Datadog Application key" },
7948
+ query: { type: "string", description: "Datadog metric query (e.g. avg:system.cpu.user{*})" },
7949
+ from: { type: "number", description: "Start time as Unix timestamp (default: 1 hour ago)" },
7950
+ to: { type: "number", description: "End time as Unix timestamp (default: now)" },
7753
7951
  },
7754
- required: ["steamid"],
7952
+ required: ["api_key", "app_key", "query"],
7755
7953
  },
7756
7954
  },
7757
7955
  {
7758
- name: "get_steam_achievements",
7759
- description: "Get achievements for a Steam user in a specific game.",
7956
+ name: "datadog_list_events",
7957
+ description: "List Datadog events stream for a time range.",
7760
7958
  inputSchema: {
7761
7959
  type: "object",
7762
7960
  properties: {
7763
- steamid: { type: "string", description: "Steam64 ID" },
7764
- appid: { type: "string", description: "Steam App ID of the game" },
7765
- api_key: { type: "string" },
7961
+ api_key: { type: "string", description: "Datadog API key" },
7962
+ app_key: { type: "string", description: "Datadog Application key" },
7963
+ start: { type: "number", description: "Start time as Unix timestamp (default: 1 hour ago)" },
7964
+ end: { type: "number", description: "End time as Unix timestamp (default: now)" },
7965
+ priority: { type: "string", enum: ["normal", "low"], description: "Filter by event priority" },
7966
+ sources: { type: "string", description: "Comma-separated event sources" },
7967
+ tags: { type: "string", description: "Comma-separated tags to filter events" },
7766
7968
  },
7767
- required: ["steamid", "appid"],
7969
+ required: ["api_key", "app_key"],
7768
7970
  },
7769
7971
  },
7972
+ // ── deepl-tool.ts ─────────────────────────────────────────────────────────────
7770
7973
  {
7771
- name: "get_steam_app_details",
7772
- description: "Get store details for a Steam app (game info, price, platforms, Metacritic score).",
7974
+ name: "deepl_translate_text",
7975
+ description: "Translate text into another language using DeepL's neural translation engine.",
7773
7976
  inputSchema: {
7774
7977
  type: "object",
7775
7978
  properties: {
7776
- appid: { type: "string", description: "Steam App ID" },
7777
- cc: { type: "string", description: "Country code for pricing (e.g. us, au)" },
7778
- l: { type: "string", description: "Language code (e.g. english)" },
7979
+ auth_key: { type: "string", description: "DeepL Auth Key from deepl.com. Free tier keys end with :fx." },
7980
+ text: { description: "Text or array of texts to translate (max 50 texts per call)", oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
7981
+ target_lang: { type: "string", description: "Target language code (e.g. EN-US, EN-GB, DE, FR, JA, ZH, ES)" },
7982
+ source_lang: { type: "string", description: "Source language code (auto-detected if omitted)" },
7983
+ formality: { type: "string", enum: ["default", "more", "less", "prefer_more", "prefer_less"], description: "Formality level (supported in some languages)" },
7984
+ preserve_formatting: { type: "boolean", description: "Preserve original formatting" },
7985
+ tag_handling: { type: "string", enum: ["xml", "html"], description: "Enable tag handling" },
7779
7986
  },
7780
- required: ["appid"],
7987
+ required: ["auth_key", "text", "target_lang"],
7781
7988
  },
7782
7989
  },
7783
7990
  {
7784
- name: "search_steam_store",
7785
- description: "Search the Steam store for games by name.",
7991
+ name: "deepl_get_usage",
7992
+ description: "Get DeepL API usage and quota information for the current billing period.",
7786
7993
  inputSchema: {
7787
7994
  type: "object",
7788
7995
  properties: {
7789
- term: { type: "string", description: "Search term" },
7790
- cc: { type: "string", description: "Country code for pricing" },
7791
- l: { type: "string", description: "Language code" },
7996
+ auth_key: { type: "string", description: "DeepL Auth Key" },
7792
7997
  },
7793
- required: ["term"],
7998
+ required: ["auth_key"],
7794
7999
  },
7795
8000
  },
7796
- // ── igdb-tool.ts ─────────────────────────────────────────────────────────────
7797
8001
  {
7798
- name: "igdb_search_games",
7799
- description: "Search the IGDB games database by name.",
8002
+ name: "deepl_list_languages",
8003
+ description: "List all languages supported by DeepL for translation.",
7800
8004
  inputSchema: {
7801
8005
  type: "object",
7802
8006
  properties: {
7803
- query: { type: "string", description: "Game name to search for" },
7804
- limit: { type: "number", description: "Max results (default 10, max 50)" },
7805
- client_id: { type: "string", description: "Twitch/IGDB Client ID (or set IGDB_CLIENT_ID)" },
7806
- client_secret: { type: "string", description: "Twitch/IGDB Client Secret (or set IGDB_CLIENT_SECRET)" },
8007
+ auth_key: { type: "string", description: "DeepL Auth Key" },
8008
+ type: { type: "string", enum: ["source", "target"], description: "Language direction (default: target)" },
7807
8009
  },
7808
- required: ["query"],
8010
+ required: ["auth_key"],
7809
8011
  },
7810
8012
  },
7811
8013
  {
7812
- name: "igdb_get_game",
7813
- description: "Get full details of a game from IGDB by game ID.",
8014
+ name: "deepl_translate_document",
8015
+ description: "Submit a document (PDF, Word, PowerPoint) for translation via DeepL.",
7814
8016
  inputSchema: {
7815
8017
  type: "object",
7816
8018
  properties: {
7817
- game_id: { type: "string", description: "IGDB game ID" },
7818
- client_id: { type: "string" },
7819
- client_secret: { type: "string" },
8019
+ auth_key: { type: "string", description: "DeepL Auth Key" },
8020
+ document_url: { type: "string", description: "Publicly accessible URL of the document to translate" },
8021
+ target_lang: { type: "string", description: "Target language code (e.g. DE, FR, JA)" },
8022
+ source_lang: { type: "string", description: "Source language code (auto-detected if omitted)" },
8023
+ filename: { type: "string", description: "Filename with extension (e.g. report.pdf)" },
8024
+ formality: { type: "string", enum: ["default", "more", "less"], description: "Formality level" },
7820
8025
  },
7821
- required: ["game_id"],
8026
+ required: ["auth_key", "document_url", "target_lang"],
7822
8027
  },
7823
8028
  },
8029
+ // ── assemblyai-tool.ts ────────────────────────────────────────────────────────
7824
8030
  {
7825
- name: "igdb_list_platforms",
7826
- description: "List gaming platforms from IGDB.",
8031
+ name: "assemblyai_transcribe",
8032
+ description: "Submit an audio or video file for transcription with AssemblyAI.",
7827
8033
  inputSchema: {
7828
8034
  type: "object",
7829
8035
  properties: {
7830
- limit: { type: "number", description: "Max results (default 30)" },
7831
- offset: { type: "number" },
7832
- client_id: { type: "string" },
7833
- client_secret: { type: "string" },
8036
+ api_key: { type: "string", description: "AssemblyAI API key from assemblyai.com/dashboard" },
8037
+ audio_url: { type: "string", description: "Publicly accessible URL of the audio/video file" },
8038
+ language_code: { type: "string", description: "Language code (e.g. en, es, fr, de). Omit for auto-detection." },
8039
+ language_detection: { type: "boolean", description: "Enable automatic language detection" },
8040
+ speaker_labels: { type: "boolean", description: "Enable speaker diarization" },
8041
+ auto_chapters: { type: "boolean", description: "Generate auto chapters" },
8042
+ summarization: { type: "boolean", description: "Generate a summary (also set summary_type)" },
8043
+ summary_type: { type: "string", enum: ["bullets", "bullets_verbose", "gist", "headline", "paragraph"], description: "Summary format" },
8044
+ sentiment_analysis: { type: "boolean", description: "Enable sentiment analysis per sentence" },
8045
+ entity_detection: { type: "boolean", description: "Enable named entity detection" },
8046
+ punctuate: { type: "boolean", description: "Add punctuation (default: true)" },
8047
+ format_text: { type: "boolean", description: "Format text with capitalisation" },
8048
+ webhook_url: { type: "string", description: "URL to POST transcript results to when complete" },
7834
8049
  },
8050
+ required: ["api_key", "audio_url"],
7835
8051
  },
7836
8052
  },
7837
8053
  {
7838
- name: "igdb_list_genres",
7839
- description: "List all game genres from IGDB.",
8054
+ name: "assemblyai_get_transcript",
8055
+ description: "Get the status and results of an AssemblyAI transcription job.",
7840
8056
  inputSchema: {
7841
8057
  type: "object",
7842
8058
  properties: {
7843
- client_id: { type: "string" },
7844
- client_secret: { type: "string" },
8059
+ api_key: { type: "string", description: "AssemblyAI API key" },
8060
+ transcript_id: { type: "string", description: "Transcript ID returned by assemblyai_transcribe" },
7845
8061
  },
8062
+ required: ["api_key", "transcript_id"],
7846
8063
  },
7847
8064
  },
7848
8065
  {
7849
- name: "igdb_get_company",
7850
- description: "Get a game company from IGDB by name or ID.",
8066
+ name: "assemblyai_list_transcripts",
8067
+ description: "List recent AssemblyAI transcripts for the account.",
7851
8068
  inputSchema: {
7852
8069
  type: "object",
7853
8070
  properties: {
7854
- name: { type: "string", description: "Company name to search for" },
7855
- company_id: { type: "string", description: "IGDB company ID (takes precedence over name)" },
7856
- client_id: { type: "string" },
7857
- client_secret: { type: "string" },
8071
+ api_key: { type: "string", description: "AssemblyAI API key" },
8072
+ limit: { type: "number", description: "Number of transcripts to return (default: 10, max: 200)" },
8073
+ status: { type: "string", enum: ["queued", "processing", "completed", "error"], description: "Filter by status" },
8074
+ after_id: { type: "string", description: "Cursor: return transcripts after this ID" },
8075
+ before_id: { type: "string", description: "Cursor: return transcripts before this ID" },
7858
8076
  },
8077
+ required: ["api_key"],
7859
8078
  },
7860
8079
  },
7861
- // ── speedrun-tool.ts ─────────────────────────────────────────────────────────
7862
8080
  {
7863
- name: "speedrun_search_games",
7864
- description: "Search for games on Speedrun.com by name. No API key required.",
8081
+ name: "assemblyai_get_sentences",
8082
+ description: "Get a completed transcript split into individual sentences.",
7865
8083
  inputSchema: {
7866
8084
  type: "object",
7867
8085
  properties: {
7868
- name: { type: "string", description: "Game name to search" },
7869
- max: { type: "number", description: "Max results" },
8086
+ api_key: { type: "string", description: "AssemblyAI API key" },
8087
+ transcript_id: { type: "string", description: "Completed transcript ID" },
7870
8088
  },
7871
- required: ["name"],
8089
+ required: ["api_key", "transcript_id"],
7872
8090
  },
7873
8091
  },
7874
8092
  {
7875
- name: "speedrun_get_game",
7876
- description: "Get details of a game on Speedrun.com including categories and levels.",
8093
+ name: "assemblyai_get_paragraphs",
8094
+ description: "Get a completed transcript split into paragraphs.",
7877
8095
  inputSchema: {
7878
8096
  type: "object",
7879
8097
  properties: {
7880
- game_id: { type: "string", description: "Speedrun.com game ID or abbreviation" },
8098
+ api_key: { type: "string", description: "AssemblyAI API key" },
8099
+ transcript_id: { type: "string", description: "Completed transcript ID" },
7881
8100
  },
7882
- required: ["game_id"],
8101
+ required: ["api_key", "transcript_id"],
7883
8102
  },
7884
8103
  },
7885
8104
  {
7886
- name: "speedrun_get_leaderboard",
7887
- description: "Get the leaderboard for a Speedrun.com game category.",
8105
+ name: "assemblyai_summarize",
8106
+ description: "Get the AI-generated summary for a completed AssemblyAI transcript (must have been submitted with summarization enabled).",
7888
8107
  inputSchema: {
7889
8108
  type: "object",
7890
8109
  properties: {
7891
- game_id: { type: "string", description: "Game ID" },
7892
- category_id: { type: "string", description: "Category ID" },
7893
- top: { type: "number", description: "Only return top N places" },
7894
- platform: { type: "string" },
7895
- emulators: { type: "boolean" },
7896
- video_only: { type: "boolean" },
8110
+ api_key: { type: "string", description: "AssemblyAI API key" },
8111
+ transcript_id: { type: "string", description: "Completed transcript ID" },
7897
8112
  },
7898
- required: ["game_id", "category_id"],
8113
+ required: ["api_key", "transcript_id"],
7899
8114
  },
7900
8115
  },
8116
+ // ── groq-tool.ts ──────────────────────────────────────────────────────────────
7901
8117
  {
7902
- name: "speedrun_list_runs",
7903
- description: "List speedruns with optional filters for game, category, user, or status.",
8118
+ name: "groq_chat_completion",
8119
+ description: "Run a fast LLM inference with Groq. Supports Llama 3, Mixtral, Gemma, and other open models at high speed.",
7904
8120
  inputSchema: {
7905
8121
  type: "object",
7906
8122
  properties: {
7907
- game: { type: "string", description: "Game ID" },
7908
- category: { type: "string" },
7909
- user: { type: "string", description: "User ID" },
7910
- status: { type: "string", description: "new, verified, or rejected" },
7911
- orderby: { type: "string", description: "date, submitted, status, game, category, level, platform, region, emulated, or weblink" },
7912
- direction: { type: "string", description: "asc or desc" },
7913
- max: { type: "number" },
8123
+ api_key: { type: "string", description: "Groq API key from console.groq.com/keys" },
8124
+ model: { type: "string", description: "Model ID (e.g. llama-3.3-70b-versatile, mixtral-8x7b-32768, gemma2-9b-it). Default: llama-3.3-70b-versatile" },
8125
+ messages: { type: "array", items: { type: "object" }, description: "Array of {role, content} messages" },
8126
+ prompt: { type: "string", description: "Single user message (alternative to messages)" },
8127
+ system_prompt: { type: "string", description: "System prompt (used with prompt shorthand)" },
8128
+ max_tokens: { type: "number", description: "Maximum tokens to generate" },
8129
+ temperature: { type: "number", minimum: 0, maximum: 2, description: "Sampling temperature (0-2)" },
8130
+ top_p: { type: "number", description: "Top-p sampling (0-1)" },
8131
+ stop: { description: "Stop sequence(s)", oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
7914
8132
  },
8133
+ required: ["api_key"],
8134
+ },
8135
+ },
8136
+ {
8137
+ name: "groq_list_models",
8138
+ description: "List all models available on Groq.",
8139
+ inputSchema: {
8140
+ type: "object",
8141
+ properties: {
8142
+ api_key: { type: "string", description: "Groq API key" },
8143
+ },
8144
+ required: ["api_key"],
8145
+ },
8146
+ },
8147
+ // ── kling-tool.ts ─────────────────────────────────────────────────────────────
8148
+ {
8149
+ name: "kling_generate_video",
8150
+ description: "Generate a high-quality video from text using Kling AI (Kuaishou). Supports standard and professional modes. Returns a task_id to poll for completion.",
8151
+ inputSchema: {
8152
+ type: "object",
8153
+ properties: {
8154
+ api_key: { type: "string", description: "Kling AI API key" },
8155
+ prompt: { type: "string", description: "Text description of the video to generate" },
8156
+ model: { type: "string", description: "Model name: kling-v1 or kling-v1-5 (default: kling-v1)" },
8157
+ mode: { type: "string", description: "Generation mode: std (standard) or pro (professional, slower). Default: std" },
8158
+ duration: { type: "string", description: "Video duration: 5 or 10 (seconds). Default: 5" },
8159
+ image_url: { type: "string", description: "Optional reference image URL for image-to-video" },
8160
+ negative_prompt: { type: "string", description: "What to avoid in the video" },
8161
+ aspect_ratio: { type: "string", description: "e.g. 16:9, 9:16, 1:1. Default: 16:9" },
8162
+ cfg_scale: { type: "number", description: "Guidance scale 0-1 (default: 0.5)" },
8163
+ },
8164
+ required: ["api_key", "prompt"],
8165
+ },
8166
+ },
8167
+ {
8168
+ name: "kling_get_task",
8169
+ description: "Check the status of a Kling AI video generation task.",
8170
+ inputSchema: {
8171
+ type: "object",
8172
+ properties: {
8173
+ api_key: { type: "string", description: "Kling AI API key" },
8174
+ task_id: { type: "string", description: "Task ID returned by kling_generate_video" },
8175
+ },
8176
+ required: ["api_key", "task_id"],
8177
+ },
8178
+ },
8179
+ // ── pagerduty-tool.ts ─────────────────────────────────────────────────────────
8180
+ {
8181
+ name: "pagerduty_list_incidents",
8182
+ description: "List PagerDuty incidents. Filter by status (triggered, acknowledged, resolved), service, or date range.",
8183
+ inputSchema: {
8184
+ type: "object",
8185
+ properties: {
8186
+ api_key: { type: "string", description: "PagerDuty API key" },
8187
+ status: { type: "string", description: "Filter by status: triggered, acknowledged, or resolved" },
8188
+ limit: { type: "number", description: "Max results (default 25, max 100)" },
8189
+ offset: { type: "number", description: "Pagination offset" },
8190
+ service_ids: { type: "string", description: "Filter by service ID" },
8191
+ },
8192
+ required: ["api_key"],
8193
+ },
8194
+ },
8195
+ {
8196
+ name: "pagerduty_get_incident",
8197
+ description: "Get details for a single PagerDuty incident by ID.",
8198
+ inputSchema: {
8199
+ type: "object",
8200
+ properties: {
8201
+ api_key: { type: "string", description: "PagerDuty API key" },
8202
+ incident_id: { type: "string", description: "Incident ID" },
8203
+ },
8204
+ required: ["api_key", "incident_id"],
8205
+ },
8206
+ },
8207
+ {
8208
+ name: "pagerduty_create_incident",
8209
+ description: "Create a new PagerDuty incident on a service.",
8210
+ inputSchema: {
8211
+ type: "object",
8212
+ properties: {
8213
+ api_key: { type: "string", description: "PagerDuty API key" },
8214
+ title: { type: "string", description: "Incident title/summary" },
8215
+ service_id: { type: "string", description: "ID of the service to create the incident on" },
8216
+ urgency: { type: "string", description: "Urgency: high or low" },
8217
+ body_details: { type: "string", description: "Detailed description of the incident" },
8218
+ from: { type: "string", description: "Email address of the user creating the incident (required by some accounts)" },
8219
+ },
8220
+ required: ["api_key", "title", "service_id"],
8221
+ },
8222
+ },
8223
+ {
8224
+ name: "pagerduty_acknowledge_incident",
8225
+ description: "Acknowledge a PagerDuty incident by ID.",
8226
+ inputSchema: {
8227
+ type: "object",
8228
+ properties: {
8229
+ api_key: { type: "string", description: "PagerDuty API key" },
8230
+ incident_id: { type: "string", description: "Incident ID to acknowledge" },
8231
+ },
8232
+ required: ["api_key", "incident_id"],
8233
+ },
8234
+ },
8235
+ {
8236
+ name: "pagerduty_resolve_incident",
8237
+ description: "Resolve a PagerDuty incident by ID.",
8238
+ inputSchema: {
8239
+ type: "object",
8240
+ properties: {
8241
+ api_key: { type: "string", description: "PagerDuty API key" },
8242
+ incident_id: { type: "string", description: "Incident ID to resolve" },
8243
+ },
8244
+ required: ["api_key", "incident_id"],
8245
+ },
8246
+ },
8247
+ {
8248
+ name: "pagerduty_list_services",
8249
+ description: "List all services in a PagerDuty account. Optionally filter by name.",
8250
+ inputSchema: {
8251
+ type: "object",
8252
+ properties: {
8253
+ api_key: { type: "string", description: "PagerDuty API key" },
8254
+ query: { type: "string", description: "Filter services by name" },
8255
+ limit: { type: "number", description: "Max results" },
8256
+ },
8257
+ required: ["api_key"],
8258
+ },
8259
+ },
8260
+ {
8261
+ name: "pagerduty_list_oncalls",
8262
+ description: "List who is currently on-call in PagerDuty, optionally filtered by schedule or user.",
8263
+ inputSchema: {
8264
+ type: "object",
8265
+ properties: {
8266
+ api_key: { type: "string", description: "PagerDuty API key" },
8267
+ schedule_ids: { type: "string", description: "Filter by schedule ID" },
8268
+ user_ids: { type: "string", description: "Filter by user ID" },
8269
+ },
8270
+ required: ["api_key"],
8271
+ },
8272
+ },
8273
+ // ── circleci-tool.ts ──────────────────────────────────────────────────────────
8274
+ {
8275
+ name: "circleci_list_pipelines",
8276
+ description: "List CircleCI pipelines for a project or organization. Optionally filter by branch.",
8277
+ inputSchema: {
8278
+ type: "object",
8279
+ properties: {
8280
+ api_key: { type: "string", description: "CircleCI personal API token" },
8281
+ project_slug: { type: "string", description: "Project slug e.g. gh/MyOrg/my-repo. Omit to list all org pipelines." },
8282
+ branch: { type: "string", description: "Filter by branch name" },
8283
+ org_slug: { type: "string", description: "Org slug when listing all pipelines (e.g. gh/MyOrg)" },
8284
+ page_token: { type: "string", description: "Pagination token" },
8285
+ },
8286
+ required: ["api_key"],
8287
+ },
8288
+ },
8289
+ {
8290
+ name: "circleci_get_pipeline",
8291
+ description: "Get details for a single CircleCI pipeline by ID.",
8292
+ inputSchema: {
8293
+ type: "object",
8294
+ properties: {
8295
+ api_key: { type: "string", description: "CircleCI personal API token" },
8296
+ pipeline_id: { type: "string", description: "Pipeline ID" },
8297
+ },
8298
+ required: ["api_key", "pipeline_id"],
8299
+ },
8300
+ },
8301
+ {
8302
+ name: "circleci_list_workflows",
8303
+ description: "List workflows for a CircleCI pipeline.",
8304
+ inputSchema: {
8305
+ type: "object",
8306
+ properties: {
8307
+ api_key: { type: "string", description: "CircleCI personal API token" },
8308
+ pipeline_id: { type: "string", description: "Pipeline ID" },
8309
+ },
8310
+ required: ["api_key", "pipeline_id"],
8311
+ },
8312
+ },
8313
+ {
8314
+ name: "circleci_get_workflow",
8315
+ description: "Get details for a single CircleCI workflow by ID.",
8316
+ inputSchema: {
8317
+ type: "object",
8318
+ properties: {
8319
+ api_key: { type: "string", description: "CircleCI personal API token" },
8320
+ workflow_id: { type: "string", description: "Workflow ID" },
8321
+ },
8322
+ required: ["api_key", "workflow_id"],
8323
+ },
8324
+ },
8325
+ {
8326
+ name: "circleci_list_jobs",
8327
+ description: "List jobs in a CircleCI workflow.",
8328
+ inputSchema: {
8329
+ type: "object",
8330
+ properties: {
8331
+ api_key: { type: "string", description: "CircleCI personal API token" },
8332
+ workflow_id: { type: "string", description: "Workflow ID" },
8333
+ },
8334
+ required: ["api_key", "workflow_id"],
8335
+ },
8336
+ },
8337
+ {
8338
+ name: "circleci_trigger_pipeline",
8339
+ description: "Trigger a new CircleCI pipeline for a project. Optionally specify branch, tag, or parameters.",
8340
+ inputSchema: {
8341
+ type: "object",
8342
+ properties: {
8343
+ api_key: { type: "string", description: "CircleCI personal API token" },
8344
+ project_slug: { type: "string", description: "Project slug e.g. gh/MyOrg/my-repo" },
8345
+ branch: { type: "string", description: "Branch to build (default: main/master)" },
8346
+ tag: { type: "string", description: "Tag to build" },
8347
+ parameters: { type: "object", description: "Pipeline parameters as key-value pairs" },
8348
+ },
8349
+ required: ["api_key", "project_slug"],
8350
+ },
8351
+ },
8352
+ // ── segment-tool.ts ───────────────────────────────────────────────────────────
8353
+ {
8354
+ name: "segment_track_event",
8355
+ description: "Track a custom event in Segment. Use for recording user actions like 'Signed Up', 'Item Purchased', etc.",
8356
+ inputSchema: {
8357
+ type: "object",
8358
+ properties: {
8359
+ write_key: { type: "string", description: "Segment source write key" },
8360
+ event: { type: "string", description: "Event name (e.g. 'Item Purchased')" },
8361
+ user_id: { type: "string", description: "Unique user identifier" },
8362
+ anonymous_id: { type: "string", description: "Anonymous ID if user is not logged in" },
8363
+ properties: { type: "object", description: "Event properties as key-value pairs" },
8364
+ timestamp: { type: "string", description: "ISO 8601 timestamp (defaults to now)" },
8365
+ },
8366
+ required: ["write_key", "event"],
8367
+ },
8368
+ },
8369
+ {
8370
+ name: "segment_identify_user",
8371
+ description: "Identify a user in Segment with traits. Links an anonymous ID to a known user ID.",
8372
+ inputSchema: {
8373
+ type: "object",
8374
+ properties: {
8375
+ write_key: { type: "string", description: "Segment source write key" },
8376
+ user_id: { type: "string", description: "Unique user identifier" },
8377
+ anonymous_id: { type: "string", description: "Anonymous ID to link to the user" },
8378
+ traits: { type: "object", description: "User traits as key-value pairs (e.g. name, email, plan)" },
8379
+ timestamp: { type: "string", description: "ISO 8601 timestamp (defaults to now)" },
8380
+ },
8381
+ required: ["write_key"],
8382
+ },
8383
+ },
8384
+ {
8385
+ name: "segment_list_sources",
8386
+ description: "List all Segment sources in a workspace using the Segment Public API.",
8387
+ inputSchema: {
8388
+ type: "object",
8389
+ properties: {
8390
+ api_key: { type: "string", description: "Segment Public API token" },
8391
+ workspace_id: { type: "string", description: "Segment workspace ID" },
8392
+ },
8393
+ required: ["api_key", "workspace_id"],
8394
+ },
8395
+ },
8396
+ {
8397
+ name: "segment_list_destinations",
8398
+ description: "List all destinations connected to a Segment source.",
8399
+ inputSchema: {
8400
+ type: "object",
8401
+ properties: {
8402
+ api_key: { type: "string", description: "Segment Public API token" },
8403
+ source_id: { type: "string", description: "Segment source ID" },
8404
+ },
8405
+ required: ["api_key", "source_id"],
8406
+ },
8407
+ },
8408
+ {
8409
+ name: "segment_get_source",
8410
+ description: "Get details for a single Segment source including settings and enabled state.",
8411
+ inputSchema: {
8412
+ type: "object",
8413
+ properties: {
8414
+ api_key: { type: "string", description: "Segment Public API token" },
8415
+ source_id: { type: "string", description: "Segment source ID" },
8416
+ },
8417
+ required: ["api_key", "source_id"],
8418
+ },
8419
+ },
8420
+ // ── postmark-tool.ts ──────────────────────────────────────────────────────────
8421
+ {
8422
+ name: "postmark_send_email",
8423
+ description: "Send a transactional email via Postmark. Supports HTML and plain text.",
8424
+ inputSchema: {
8425
+ type: "object",
8426
+ properties: {
8427
+ api_key: { type: "string", description: "Postmark server token" },
8428
+ from: { type: "string", description: "Sender email address (must be verified in Postmark)" },
8429
+ to: { type: "string", description: "Recipient email address" },
8430
+ subject: { type: "string", description: "Email subject line" },
8431
+ html_body: { type: "string", description: "HTML email body" },
8432
+ text_body: { type: "string", description: "Plain text email body" },
8433
+ reply_to: { type: "string", description: "Reply-to email address" },
8434
+ cc: { type: "string", description: "CC email address(es)" },
8435
+ bcc: { type: "string", description: "BCC email address(es)" },
8436
+ tag: { type: "string", description: "Tag for categorizing messages" },
8437
+ message_stream: { type: "string", description: "Message stream ID (default: outbound)" },
8438
+ },
8439
+ required: ["api_key", "from", "to", "subject"],
8440
+ },
8441
+ },
8442
+ {
8443
+ name: "postmark_send_batch",
8444
+ description: "Send multiple emails in a single Postmark API call (up to 500 messages).",
8445
+ inputSchema: {
8446
+ type: "object",
8447
+ properties: {
8448
+ api_key: { type: "string", description: "Postmark server token" },
8449
+ messages: { type: "array", description: "Array of email message objects (same fields as send_email)" },
8450
+ },
8451
+ required: ["api_key", "messages"],
8452
+ },
8453
+ },
8454
+ {
8455
+ name: "postmark_get_delivery_stats",
8456
+ description: "Get delivery statistics from Postmark including bounces, spam complaints, and open rates.",
8457
+ inputSchema: {
8458
+ type: "object",
8459
+ properties: {
8460
+ api_key: { type: "string", description: "Postmark server token" },
8461
+ },
8462
+ required: ["api_key"],
8463
+ },
8464
+ },
8465
+ {
8466
+ name: "postmark_list_templates",
8467
+ description: "List email templates stored in Postmark.",
8468
+ inputSchema: {
8469
+ type: "object",
8470
+ properties: {
8471
+ api_key: { type: "string", description: "Postmark server token" },
8472
+ count: { type: "number", description: "Number of templates to return (default 100)" },
8473
+ offset: { type: "number", description: "Pagination offset" },
8474
+ },
8475
+ required: ["api_key"],
8476
+ },
8477
+ },
8478
+ {
8479
+ name: "postmark_get_template",
8480
+ description: "Get a single Postmark email template by ID.",
8481
+ inputSchema: {
8482
+ type: "object",
8483
+ properties: {
8484
+ api_key: { type: "string", description: "Postmark server token" },
8485
+ template_id: { type: "string", description: "Template ID or alias" },
8486
+ },
8487
+ required: ["api_key", "template_id"],
8488
+ },
8489
+ },
8490
+ {
8491
+ name: "postmark_search_messages",
8492
+ description: "Search sent messages in Postmark by recipient, sender, tag, or status.",
8493
+ inputSchema: {
8494
+ type: "object",
8495
+ properties: {
8496
+ api_key: { type: "string", description: "Postmark server token" },
8497
+ count: { type: "number", description: "Number of messages to return (default 25)" },
8498
+ offset: { type: "number", description: "Pagination offset" },
8499
+ recipient: { type: "string", description: "Filter by recipient email" },
8500
+ from_email: { type: "string", description: "Filter by sender email" },
8501
+ tag: { type: "string", description: "Filter by tag" },
8502
+ status: { type: "string", description: "Filter by status: queued, sent, bounced, etc." },
8503
+ },
8504
+ required: ["api_key"],
8505
+ },
8506
+ },
8507
+ // ── gumroad-tool.ts ───────────────────────────────────────────────────────────
8508
+ {
8509
+ name: "gumroad_list_products",
8510
+ description: "List all products in a Gumroad account.",
8511
+ inputSchema: {
8512
+ type: "object",
8513
+ properties: {
8514
+ api_key: { type: "string", description: "Gumroad access token" },
8515
+ },
8516
+ required: ["api_key"],
8517
+ },
8518
+ },
8519
+ {
8520
+ name: "gumroad_get_product",
8521
+ description: "Get details for a single Gumroad product by ID.",
8522
+ inputSchema: {
8523
+ type: "object",
8524
+ properties: {
8525
+ api_key: { type: "string", description: "Gumroad access token" },
8526
+ product_id: { type: "string", description: "Product ID (permalink)" },
8527
+ },
8528
+ required: ["api_key", "product_id"],
8529
+ },
8530
+ },
8531
+ {
8532
+ name: "gumroad_list_sales",
8533
+ description: "List sales from a Gumroad account. Filter by product, email, or date range.",
8534
+ inputSchema: {
8535
+ type: "object",
8536
+ properties: {
8537
+ api_key: { type: "string", description: "Gumroad access token" },
8538
+ product_id: { type: "string", description: "Filter by product ID" },
8539
+ email: { type: "string", description: "Filter by buyer email" },
8540
+ after: { type: "string", description: "Sales after this date (YYYY-MM-DD)" },
8541
+ before: { type: "string", description: "Sales before this date (YYYY-MM-DD)" },
8542
+ page: { type: "number", description: "Page number for pagination" },
8543
+ },
8544
+ required: ["api_key"],
8545
+ },
8546
+ },
8547
+ {
8548
+ name: "gumroad_get_sale",
8549
+ description: "Get details for a single Gumroad sale by ID.",
8550
+ inputSchema: {
8551
+ type: "object",
8552
+ properties: {
8553
+ api_key: { type: "string", description: "Gumroad access token" },
8554
+ sale_id: { type: "string", description: "Sale ID" },
8555
+ },
8556
+ required: ["api_key", "sale_id"],
8557
+ },
8558
+ },
8559
+ {
8560
+ name: "gumroad_list_subscribers",
8561
+ description: "List subscribers for a Gumroad membership/subscription product.",
8562
+ inputSchema: {
8563
+ type: "object",
8564
+ properties: {
8565
+ api_key: { type: "string", description: "Gumroad access token" },
8566
+ product_id: { type: "string", description: "Product ID of the subscription product" },
8567
+ email: { type: "string", description: "Filter by subscriber email" },
8568
+ },
8569
+ required: ["api_key", "product_id"],
8570
+ },
8571
+ },
8572
+ // ── togetherai-tool.ts ────────────────────────────────────────────────────────
8573
+ {
8574
+ name: "togetherai_chat_completion",
8575
+ description: "Run a chat completion with any Together AI model. Supports Llama, Mistral, Qwen, and 100+ open-source models.",
8576
+ inputSchema: {
8577
+ type: "object",
8578
+ properties: {
8579
+ api_key: { type: "string", description: "Together AI API key" },
8580
+ model: { type: "string", description: "Model ID (e.g. meta-llama/Llama-3-8b-chat-hf). Use togetherai_list_models to browse." },
8581
+ messages: { type: "array", description: "Array of {role, content} message objects" },
8582
+ max_tokens: { type: "number", description: "Maximum tokens to generate" },
8583
+ temperature: { type: "number", description: "Sampling temperature 0-2 (default 0.7)" },
8584
+ top_p: { type: "number", description: "Top-p nucleus sampling" },
8585
+ top_k: { type: "number", description: "Top-k sampling" },
8586
+ stop: { type: "array", description: "Stop sequences" },
8587
+ },
8588
+ required: ["api_key", "model", "messages"],
8589
+ },
8590
+ },
8591
+ {
8592
+ name: "togetherai_completion",
8593
+ description: "Run a text completion with any Together AI model.",
8594
+ inputSchema: {
8595
+ type: "object",
8596
+ properties: {
8597
+ api_key: { type: "string", description: "Together AI API key" },
8598
+ model: { type: "string", description: "Model ID (e.g. mistralai/Mistral-7B-v0.1)" },
8599
+ prompt: { type: "string", description: "Text prompt to complete" },
8600
+ max_tokens: { type: "number", description: "Maximum tokens to generate" },
8601
+ temperature: { type: "number", description: "Sampling temperature 0-2" },
8602
+ top_p: { type: "number", description: "Top-p nucleus sampling" },
8603
+ top_k: { type: "number", description: "Top-k sampling" },
8604
+ stop: { type: "array", description: "Stop sequences" },
8605
+ },
8606
+ required: ["api_key", "prompt"],
8607
+ },
8608
+ },
8609
+ {
8610
+ name: "togetherai_create_embedding",
8611
+ description: "Create text embeddings using a Together AI embedding model.",
8612
+ inputSchema: {
8613
+ type: "object",
8614
+ properties: {
8615
+ api_key: { type: "string", description: "Together AI API key" },
8616
+ model: { type: "string", description: "Embedding model ID (e.g. togethercomputer/m2-bert-80M-8k-retrieval)" },
8617
+ input: { description: "Text string or array of strings to embed" },
8618
+ },
8619
+ required: ["api_key", "input"],
8620
+ },
8621
+ },
8622
+ {
8623
+ name: "togetherai_list_models",
8624
+ description: "List all available models on Together AI including chat, completion, embedding, and image models.",
8625
+ inputSchema: {
8626
+ type: "object",
8627
+ properties: {
8628
+ api_key: { type: "string", description: "Together AI API key" },
8629
+ },
8630
+ required: ["api_key"],
8631
+ },
8632
+ },
8633
+ // ── elevenlabs-tool.ts ────────────────────────────────────────────────────────
8634
+ {
8635
+ name: "elevenlabs_list_voices",
8636
+ description: "List all available voices in ElevenLabs.",
8637
+ inputSchema: {
8638
+ type: "object",
8639
+ properties: {
8640
+ api_key: { type: "string" },
8641
+ },
8642
+ required: ["api_key"],
8643
+ },
8644
+ },
8645
+ {
8646
+ name: "elevenlabs_get_voice",
8647
+ description: "Get metadata for a specific ElevenLabs voice by ID.",
8648
+ inputSchema: {
8649
+ type: "object",
8650
+ properties: {
8651
+ api_key: { type: "string" },
8652
+ voice_id: { type: "string" },
8653
+ with_settings: { type: "boolean", description: "Include voice settings (stability, similarity_boost)" },
8654
+ },
8655
+ required: ["api_key", "voice_id"],
8656
+ },
8657
+ },
8658
+ {
8659
+ name: "elevenlabs_text_to_speech",
8660
+ description: "Convert text to speech with a selected ElevenLabs voice. Returns base64-encoded audio.",
8661
+ inputSchema: {
8662
+ type: "object",
8663
+ properties: {
8664
+ api_key: { type: "string" },
8665
+ voice_id: { type: "string" },
8666
+ text: { type: "string", description: "Text to synthesize (max 5000 characters)" },
8667
+ model_id: { type: "string", description: "ElevenLabs model ID (default: eleven_monolingual_v1)" },
8668
+ output_format: { type: "string", description: "mp3_44100_128, pcm_16000, etc. (default: mp3_44100_128)" },
8669
+ stability: { type: "number", description: "0.0-1.0 (default: 0.5)" },
8670
+ similarity_boost: { type: "number", description: "0.0-1.0 (default: 0.75)" },
8671
+ style: { type: "number", description: "0.0-1.0 style exaggeration" },
8672
+ use_speaker_boost: { type: "boolean" },
8673
+ },
8674
+ required: ["api_key", "voice_id", "text"],
8675
+ },
8676
+ },
8677
+ {
8678
+ name: "elevenlabs_get_models",
8679
+ description: "List available ElevenLabs TTS models and their supported languages.",
8680
+ inputSchema: {
8681
+ type: "object",
8682
+ properties: {
8683
+ api_key: { type: "string" },
8684
+ },
8685
+ required: ["api_key"],
8686
+ },
8687
+ },
8688
+ {
8689
+ name: "elevenlabs_get_history",
8690
+ description: "Get the TTS generation history for an ElevenLabs account.",
8691
+ inputSchema: {
8692
+ type: "object",
8693
+ properties: {
8694
+ api_key: { type: "string" },
8695
+ page_size: { type: "number" },
8696
+ voice_id: { type: "string", description: "Filter history by voice ID" },
8697
+ start_after_history_item_id: { type: "string" },
8698
+ },
8699
+ required: ["api_key"],
8700
+ },
8701
+ },
8702
+ // ── replicate-tool.ts ─────────────────────────────────────────────────────────
8703
+ {
8704
+ name: "replicate_list_models",
8705
+ description: "List public models available on Replicate.",
8706
+ inputSchema: {
8707
+ type: "object",
8708
+ properties: {
8709
+ api_token: { type: "string" },
8710
+ cursor: { type: "string" },
8711
+ },
8712
+ required: ["api_token"],
8713
+ },
8714
+ },
8715
+ {
8716
+ name: "replicate_get_model",
8717
+ description: "Get details and latest version for a Replicate model.",
8718
+ inputSchema: {
8719
+ type: "object",
8720
+ properties: {
8721
+ api_token: { type: "string" },
8722
+ owner: { type: "string", description: "Model owner username" },
8723
+ model_name: { type: "string" },
8724
+ },
8725
+ required: ["api_token", "owner", "model_name"],
8726
+ },
8727
+ },
8728
+ {
8729
+ name: "replicate_create_prediction",
8730
+ description: "Run a Replicate model by creating a prediction.",
8731
+ inputSchema: {
8732
+ type: "object",
8733
+ properties: {
8734
+ api_token: { type: "string" },
8735
+ version: { type: "string", description: "Model version ID (use this OR model)" },
8736
+ model: { type: "string", description: "Model as owner/name or owner/name:version (use this OR version)" },
8737
+ input: { description: "Model input parameters as JSON object or string" },
8738
+ webhook: { type: "string" },
8739
+ stream: { type: "boolean" },
8740
+ },
8741
+ required: ["api_token", "input"],
8742
+ },
8743
+ },
8744
+ {
8745
+ name: "replicate_get_prediction",
8746
+ description: "Get the status and output of a Replicate prediction.",
8747
+ inputSchema: {
8748
+ type: "object",
8749
+ properties: {
8750
+ api_token: { type: "string" },
8751
+ prediction_id: { type: "string" },
8752
+ },
8753
+ required: ["api_token", "prediction_id"],
8754
+ },
8755
+ },
8756
+ {
8757
+ name: "replicate_list_predictions",
8758
+ description: "List recent predictions for a Replicate account.",
8759
+ inputSchema: {
8760
+ type: "object",
8761
+ properties: {
8762
+ api_token: { type: "string" },
8763
+ cursor: { type: "string" },
8764
+ },
8765
+ required: ["api_token"],
8766
+ },
8767
+ },
8768
+ {
8769
+ name: "replicate_cancel_prediction",
8770
+ description: "Cancel a running Replicate prediction.",
8771
+ inputSchema: {
8772
+ type: "object",
8773
+ properties: {
8774
+ api_token: { type: "string" },
8775
+ prediction_id: { type: "string" },
8776
+ },
8777
+ required: ["api_token", "prediction_id"],
8778
+ },
8779
+ },
8780
+ // ── stability-tool.ts ─────────────────────────────────────────────────────────
8781
+ {
8782
+ name: "stability_text_to_image",
8783
+ description: "Generate images from a text prompt using Stability AI.",
8784
+ inputSchema: {
8785
+ type: "object",
8786
+ properties: {
8787
+ api_key: { type: "string" },
8788
+ prompt: { type: "string" },
8789
+ engine_id: { type: "string", description: "Stability engine ID (default: stable-diffusion-xl-1024-v1-0)" },
8790
+ negative_prompt: { type: "string" },
8791
+ width: { type: "number" },
8792
+ height: { type: "number" },
8793
+ steps: { type: "number", description: "Diffusion steps 10-150 (default: 30)" },
8794
+ cfg_scale: { type: "number", description: "Guidance scale 0-35 (default: 7)" },
8795
+ samples: { type: "number", description: "Number of images (max 10, default: 1)" },
8796
+ style_preset: { type: "string" },
8797
+ seed: { type: "number" },
8798
+ },
8799
+ required: ["api_key", "prompt"],
8800
+ },
8801
+ },
8802
+ {
8803
+ name: "stability_image_to_image",
8804
+ description: "Transform an existing image using a text prompt with Stability AI.",
8805
+ inputSchema: {
8806
+ type: "object",
8807
+ properties: {
8808
+ api_key: { type: "string" },
8809
+ prompt: { type: "string" },
8810
+ image_url: { type: "string", description: "URL of the source image" },
8811
+ engine_id: { type: "string" },
8812
+ negative_prompt: { type: "string" },
8813
+ strength: { type: "number", description: "0.0-1.0: how much to change the image (default: 0.35)" },
8814
+ steps: { type: "number" },
8815
+ cfg_scale: { type: "number" },
8816
+ samples: { type: "number" },
8817
+ },
8818
+ required: ["api_key", "prompt", "image_url"],
8819
+ },
8820
+ },
8821
+ {
8822
+ name: "stability_upscale",
8823
+ description: "Upscale an image using Stability AI ESRGAN.",
8824
+ inputSchema: {
8825
+ type: "object",
8826
+ properties: {
8827
+ api_key: { type: "string" },
8828
+ image_url: { type: "string", description: "URL of the image to upscale" },
8829
+ width: { type: "number", description: "Target width in pixels (default: 2048)" },
8830
+ engine_id: { type: "string", description: "Upscale engine (default: esrgan-v1-x2plus)" },
8831
+ },
8832
+ required: ["api_key", "image_url"],
8833
+ },
8834
+ },
8835
+ {
8836
+ name: "stability_list_engines",
8837
+ description: "List all available Stability AI generation engines.",
8838
+ inputSchema: {
8839
+ type: "object",
8840
+ properties: {
8841
+ api_key: { type: "string" },
8842
+ },
8843
+ required: ["api_key"],
8844
+ },
8845
+ },
8846
+ // ── openai-tool.ts ────────────────────────────────────────────────────────────
8847
+ {
8848
+ name: "openai_chat_completion",
8849
+ description: "Run a chat completion with an OpenAI model (GPT-4o, GPT-4, etc.).",
8850
+ inputSchema: {
8851
+ type: "object",
8852
+ properties: {
8853
+ api_key: { type: "string" },
8854
+ model: { type: "string", description: "Model ID, e.g. gpt-4o, gpt-4o-mini (default: gpt-4o-mini)" },
8855
+ prompt: { type: "string", description: "Convenience: single user message (alternative to messages array)" },
8856
+ system_prompt: { type: "string", description: "System instruction (used with prompt param)" },
8857
+ messages: { description: "Array of {role, content} message objects (alternative to prompt)" },
8858
+ max_tokens: { type: "number" },
8859
+ temperature: { type: "number" },
8860
+ top_p: { type: "number" },
8861
+ n: { type: "number" },
8862
+ response_format: { description: "e.g. {type: 'json_object'}" },
8863
+ seed: { type: "number" },
8864
+ org_id: { type: "string", description: "OpenAI organization ID (optional)" },
8865
+ },
8866
+ required: ["api_key"],
8867
+ },
8868
+ },
8869
+ {
8870
+ name: "openai_create_embedding",
8871
+ description: "Create vector embeddings for text using an OpenAI embedding model.",
8872
+ inputSchema: {
8873
+ type: "object",
8874
+ properties: {
8875
+ api_key: { type: "string" },
8876
+ input: { description: "String or array of strings to embed" },
8877
+ model: { type: "string", description: "Embedding model (default: text-embedding-3-small)" },
8878
+ dimensions: { type: "number", description: "Number of output dimensions (for text-embedding-3-* models)" },
8879
+ org_id: { type: "string" },
8880
+ },
8881
+ required: ["api_key", "input"],
8882
+ },
8883
+ },
8884
+ {
8885
+ name: "openai_generate_image",
8886
+ description: "Generate images from a text prompt using DALL-E.",
8887
+ inputSchema: {
8888
+ type: "object",
8889
+ properties: {
8890
+ api_key: { type: "string" },
8891
+ prompt: { type: "string" },
8892
+ model: { type: "string", description: "dall-e-3 or dall-e-2 (default: dall-e-3)" },
8893
+ n: { type: "number", description: "Number of images to generate" },
8894
+ size: { type: "string", description: "1024x1024, 1792x1024, or 1024x1792 for DALL-E 3" },
8895
+ quality: { type: "string", description: "standard or hd (DALL-E 3 only)" },
8896
+ style: { type: "string", description: "natural or vivid (DALL-E 3 only)" },
8897
+ response_format: { type: "string", description: "url or b64_json (default: url)" },
8898
+ },
8899
+ required: ["api_key", "prompt"],
8900
+ },
8901
+ },
8902
+ {
8903
+ name: "openai_create_transcription",
8904
+ description: "Transcribe audio to text using OpenAI Whisper.",
8905
+ inputSchema: {
8906
+ type: "object",
8907
+ properties: {
8908
+ api_key: { type: "string" },
8909
+ audio_url: { type: "string", description: "URL of the audio file to transcribe" },
8910
+ model: { type: "string", description: "Transcription model (default: whisper-1)" },
8911
+ language: { type: "string", description: "ISO-639-1 language code (optional)" },
8912
+ response_format: { type: "string", description: "json, text, srt, verbose_json, vtt (default: json)" },
8913
+ prompt: { type: "string" },
8914
+ temperature: { type: "number" },
8915
+ filename: { type: "string" },
8916
+ },
8917
+ required: ["api_key", "audio_url"],
8918
+ },
8919
+ },
8920
+ {
8921
+ name: "openai_list_models",
8922
+ description: "List all OpenAI models available to the account.",
8923
+ inputSchema: {
8924
+ type: "object",
8925
+ properties: {
8926
+ api_key: { type: "string" },
8927
+ },
8928
+ required: ["api_key"],
8929
+ },
8930
+ },
8931
+ // ── anthropic-tool.ts ─────────────────────────────────────────────────────────
8932
+ {
8933
+ name: "anthropic_create_message",
8934
+ description: "Send a message to the Anthropic Messages API (Claude models). Useful for agents that need to call Claude programmatically or compare model outputs.",
8935
+ inputSchema: {
8936
+ type: "object",
8937
+ properties: {
8938
+ api_key: { type: "string" },
8939
+ model: { type: "string", description: "Claude model ID (default: claude-sonnet-4-6)" },
8940
+ prompt: { type: "string", description: "Convenience: single user message (alternative to messages array)" },
8941
+ messages: { description: "Array of {role, content} message objects" },
8942
+ system: { type: "string", description: "System prompt" },
8943
+ max_tokens: { type: "number", description: "Max tokens to generate (default: 1024)" },
8944
+ temperature: { type: "number" },
8945
+ top_p: { type: "number" },
8946
+ top_k: { type: "number" },
8947
+ stop_sequences: { description: "Array of stop sequences" },
8948
+ },
8949
+ required: ["api_key"],
8950
+ },
8951
+ },
8952
+ {
8953
+ name: "anthropic_list_models",
8954
+ description: "List all Claude models available via the Anthropic API.",
8955
+ inputSchema: {
8956
+ type: "object",
8957
+ properties: {
8958
+ api_key: { type: "string" },
8959
+ },
8960
+ required: ["api_key"],
8961
+ },
8962
+ },
8963
+ // ── asana-tool.ts ────────────────────────────────────────────────────────────
8964
+ {
8965
+ name: "list_asana_workspaces",
8966
+ description: "List all Asana workspaces accessible by the authenticated user.",
8967
+ inputSchema: {
8968
+ type: "object",
8969
+ properties: {
8970
+ api_key: { type: "string", description: "Asana Personal Access Token (or set ASANA_API_KEY)" },
8971
+ },
8972
+ },
8973
+ },
8974
+ {
8975
+ name: "list_asana_projects",
8976
+ description: "List projects in an Asana workspace.",
8977
+ inputSchema: {
8978
+ type: "object",
8979
+ properties: {
8980
+ workspace_gid: { type: "string", description: "Workspace GID" },
8981
+ archived: { type: "boolean", description: "Include archived projects (default false)" },
8982
+ limit: { type: "number", description: "Max results (default 100)" },
8983
+ api_key: { type: "string" },
8984
+ },
8985
+ required: ["workspace_gid"],
8986
+ },
8987
+ },
8988
+ {
8989
+ name: "list_asana_tasks",
8990
+ description: "List tasks in an Asana project.",
8991
+ inputSchema: {
8992
+ type: "object",
8993
+ properties: {
8994
+ project_gid: { type: "string", description: "Project GID" },
8995
+ completed: { type: "boolean", description: "Filter to completed tasks only" },
8996
+ limit: { type: "number" },
8997
+ api_key: { type: "string" },
8998
+ },
8999
+ required: ["project_gid"],
9000
+ },
9001
+ },
9002
+ {
9003
+ name: "create_asana_task",
9004
+ description: "Create a new task in Asana.",
9005
+ inputSchema: {
9006
+ type: "object",
9007
+ properties: {
9008
+ name: { type: "string", description: "Task name" },
9009
+ workspace_gid: { type: "string", description: "Workspace GID" },
9010
+ notes: { type: "string", description: "Task description" },
9011
+ due_on: { type: "string", description: "Due date (YYYY-MM-DD)" },
9012
+ assignee: { type: "string", description: "Assignee GID or 'me'" },
9013
+ projects: { type: "array", items: { type: "string" }, description: "Project GIDs to add the task to" },
9014
+ api_key: { type: "string" },
9015
+ },
9016
+ required: ["name", "workspace_gid"],
9017
+ },
9018
+ },
9019
+ {
9020
+ name: "update_asana_task",
9021
+ description: "Update an existing Asana task.",
9022
+ inputSchema: {
9023
+ type: "object",
9024
+ properties: {
9025
+ task_gid: { type: "string", description: "Task GID" },
9026
+ name: { type: "string" },
9027
+ notes: { type: "string" },
9028
+ completed: { type: "boolean" },
9029
+ due_on: { type: "string", description: "YYYY-MM-DD or null to clear" },
9030
+ assignee: { type: "string", description: "Assignee GID or null to unassign" },
9031
+ api_key: { type: "string" },
9032
+ },
9033
+ required: ["task_gid"],
9034
+ },
9035
+ },
9036
+ {
9037
+ name: "get_asana_task",
9038
+ description: "Get full details of a single Asana task.",
9039
+ inputSchema: {
9040
+ type: "object",
9041
+ properties: {
9042
+ task_gid: { type: "string", description: "Task GID" },
9043
+ api_key: { type: "string" },
9044
+ },
9045
+ required: ["task_gid"],
9046
+ },
9047
+ },
9048
+ {
9049
+ name: "search_asana_tasks",
9050
+ description: "Search tasks by text within an Asana workspace.",
9051
+ inputSchema: {
9052
+ type: "object",
9053
+ properties: {
9054
+ workspace_gid: { type: "string", description: "Workspace GID" },
9055
+ text: { type: "string", description: "Search query" },
9056
+ completed: { type: "boolean" },
9057
+ limit: { type: "number" },
9058
+ api_key: { type: "string" },
9059
+ },
9060
+ required: ["workspace_gid", "text"],
9061
+ },
9062
+ },
9063
+ // ── monday-tool.ts ───────────────────────────────────────────────────────────
9064
+ {
9065
+ name: "list_monday_boards",
9066
+ description: "List boards in a Monday.com account.",
9067
+ inputSchema: {
9068
+ type: "object",
9069
+ properties: {
9070
+ limit: { type: "number", description: "Max boards to return (default 25)" },
9071
+ api_key: { type: "string", description: "Monday.com API token (or set MONDAY_API_KEY)" },
9072
+ },
9073
+ },
9074
+ },
9075
+ {
9076
+ name: "get_monday_board",
9077
+ description: "Get details of a specific Monday.com board including columns and groups.",
9078
+ inputSchema: {
9079
+ type: "object",
9080
+ properties: {
9081
+ board_id: { type: "string", description: "Board ID" },
9082
+ api_key: { type: "string" },
9083
+ },
9084
+ required: ["board_id"],
9085
+ },
9086
+ },
9087
+ {
9088
+ name: "list_monday_items",
9089
+ description: "List items (rows) in a Monday.com board.",
9090
+ inputSchema: {
9091
+ type: "object",
9092
+ properties: {
9093
+ board_id: { type: "string", description: "Board ID" },
9094
+ limit: { type: "number", description: "Max items (default 50)" },
9095
+ api_key: { type: "string" },
9096
+ },
9097
+ required: ["board_id"],
9098
+ },
9099
+ },
9100
+ {
9101
+ name: "create_monday_item",
9102
+ description: "Create a new item in a Monday.com board.",
9103
+ inputSchema: {
9104
+ type: "object",
9105
+ properties: {
9106
+ board_id: { type: "string", description: "Board ID" },
9107
+ item_name: { type: "string", description: "Item name" },
9108
+ group_id: { type: "string", description: "Group ID to add the item to" },
9109
+ column_values: { type: "object", description: "Column values as JSON object" },
9110
+ api_key: { type: "string" },
9111
+ },
9112
+ required: ["board_id", "item_name"],
9113
+ },
9114
+ },
9115
+ {
9116
+ name: "update_monday_item",
9117
+ description: "Update a column value on a Monday.com item.",
9118
+ inputSchema: {
9119
+ type: "object",
9120
+ properties: {
9121
+ board_id: { type: "string" },
9122
+ item_id: { type: "string" },
9123
+ column_id: { type: "string", description: "Column ID to update" },
9124
+ value: { description: "New value (string or JSON)" },
9125
+ api_key: { type: "string" },
9126
+ },
9127
+ required: ["board_id", "item_id", "column_id", "value"],
9128
+ },
9129
+ },
9130
+ {
9131
+ name: "search_monday_items",
9132
+ description: "Search items by name in a Monday.com board.",
9133
+ inputSchema: {
9134
+ type: "object",
9135
+ properties: {
9136
+ board_id: { type: "string" },
9137
+ query: { type: "string", description: "Search text" },
9138
+ limit: { type: "number" },
9139
+ api_key: { type: "string" },
9140
+ },
9141
+ required: ["board_id", "query"],
9142
+ },
9143
+ },
9144
+ // ── calendly-tool.ts ─────────────────────────────────────────────────────────
9145
+ {
9146
+ name: "get_calendly_user",
9147
+ description: "Get the authenticated Calendly user profile.",
9148
+ inputSchema: {
9149
+ type: "object",
9150
+ properties: {
9151
+ api_key: { type: "string", description: "Calendly Personal Access Token (or set CALENDLY_API_KEY)" },
9152
+ },
9153
+ },
9154
+ },
9155
+ {
9156
+ name: "list_calendly_event_types",
9157
+ description: "List event types for the authenticated Calendly user.",
9158
+ inputSchema: {
9159
+ type: "object",
9160
+ properties: {
9161
+ user_uri: { type: "string", description: "User URI (auto-resolved if omitted)" },
9162
+ active: { type: "boolean", description: "Filter to active event types only" },
9163
+ count: { type: "number" },
9164
+ api_key: { type: "string" },
9165
+ },
9166
+ },
9167
+ },
9168
+ {
9169
+ name: "list_calendly_events",
9170
+ description: "List scheduled events for the authenticated Calendly user.",
9171
+ inputSchema: {
9172
+ type: "object",
9173
+ properties: {
9174
+ user_uri: { type: "string", description: "User URI (auto-resolved if omitted)" },
9175
+ status: { type: "string", description: "active or canceled" },
9176
+ min_start_time: { type: "string", description: "ISO 8601 datetime" },
9177
+ max_start_time: { type: "string", description: "ISO 8601 datetime" },
9178
+ count: { type: "number" },
9179
+ sort: { type: "string", description: "e.g. start_time:asc" },
9180
+ api_key: { type: "string" },
9181
+ },
9182
+ },
9183
+ },
9184
+ {
9185
+ name: "get_calendly_event",
9186
+ description: "Get details of a single Calendly scheduled event.",
9187
+ inputSchema: {
9188
+ type: "object",
9189
+ properties: {
9190
+ event_uuid: { type: "string", description: "Event UUID" },
9191
+ api_key: { type: "string" },
9192
+ },
9193
+ required: ["event_uuid"],
9194
+ },
9195
+ },
9196
+ {
9197
+ name: "list_calendly_invitees",
9198
+ description: "List invitees for a Calendly scheduled event.",
9199
+ inputSchema: {
9200
+ type: "object",
9201
+ properties: {
9202
+ event_uuid: { type: "string", description: "Event UUID" },
9203
+ status: { type: "string", description: "active or canceled" },
9204
+ count: { type: "number" },
9205
+ api_key: { type: "string" },
9206
+ },
9207
+ required: ["event_uuid"],
9208
+ },
9209
+ },
9210
+ // ── pinterest-tool.ts ────────────────────────────────────────────────────────
9211
+ {
9212
+ name: "list_pinterest_boards",
9213
+ description: "List Pinterest boards for the authenticated user.",
9214
+ inputSchema: {
9215
+ type: "object",
9216
+ properties: {
9217
+ page_size: { type: "number" },
9218
+ bookmark: { type: "string", description: "Pagination cursor" },
9219
+ privacy: { type: "string", description: "PUBLIC, PROTECTED, or SECRET" },
9220
+ access_token: { type: "string", description: "Pinterest access token (or set PINTEREST_ACCESS_TOKEN)" },
9221
+ },
9222
+ },
9223
+ },
9224
+ {
9225
+ name: "get_pinterest_board",
9226
+ description: "Get details of a specific Pinterest board.",
9227
+ inputSchema: {
9228
+ type: "object",
9229
+ properties: {
9230
+ board_id: { type: "string", description: "Board ID" },
9231
+ access_token: { type: "string" },
9232
+ },
9233
+ required: ["board_id"],
9234
+ },
9235
+ },
9236
+ {
9237
+ name: "list_pinterest_pins",
9238
+ description: "List pins on a Pinterest board.",
9239
+ inputSchema: {
9240
+ type: "object",
9241
+ properties: {
9242
+ board_id: { type: "string", description: "Board ID" },
9243
+ page_size: { type: "number" },
9244
+ bookmark: { type: "string" },
9245
+ access_token: { type: "string" },
9246
+ },
9247
+ required: ["board_id"],
9248
+ },
9249
+ },
9250
+ {
9251
+ name: "create_pinterest_pin",
9252
+ description: "Create a new Pinterest pin from an image URL.",
9253
+ inputSchema: {
9254
+ type: "object",
9255
+ properties: {
9256
+ board_id: { type: "string", description: "Board ID to pin to" },
9257
+ media_source_url: { type: "string", description: "Public image URL" },
9258
+ title: { type: "string" },
9259
+ description: { type: "string" },
9260
+ link: { type: "string", description: "Destination URL when pin is clicked" },
9261
+ board_section_id: { type: "string" },
9262
+ access_token: { type: "string" },
9263
+ },
9264
+ required: ["board_id", "media_source_url"],
9265
+ },
9266
+ },
9267
+ {
9268
+ name: "search_pinterest_pins",
9269
+ description: "Search Pinterest pins by keyword.",
9270
+ inputSchema: {
9271
+ type: "object",
9272
+ properties: {
9273
+ query: { type: "string", description: "Search query" },
9274
+ page_size: { type: "number" },
9275
+ bookmark: { type: "string" },
9276
+ access_token: { type: "string" },
9277
+ },
9278
+ required: ["query"],
9279
+ },
9280
+ },
9281
+ {
9282
+ name: "get_pinterest_user",
9283
+ description: "Get the authenticated Pinterest user account info.",
9284
+ inputSchema: {
9285
+ type: "object",
9286
+ properties: {
9287
+ access_token: { type: "string" },
9288
+ },
9289
+ },
9290
+ },
9291
+ // ── tiktok-tool.ts ───────────────────────────────────────────────────────────
9292
+ {
9293
+ name: "get_tiktok_user",
9294
+ description: "Get the authenticated TikTok user profile (follower count, video count, etc.).",
9295
+ inputSchema: {
9296
+ type: "object",
9297
+ properties: {
9298
+ access_token: { type: "string", description: "TikTok OAuth access token (or set TIKTOK_ACCESS_TOKEN)" },
9299
+ },
9300
+ },
9301
+ },
9302
+ {
9303
+ name: "list_tiktok_videos",
9304
+ description: "List videos for the authenticated TikTok user.",
9305
+ inputSchema: {
9306
+ type: "object",
9307
+ properties: {
9308
+ max_count: { type: "number", description: "Max videos to return (default 20, max 20)" },
9309
+ cursor: { type: "number", description: "Pagination cursor" },
9310
+ access_token: { type: "string" },
9311
+ },
9312
+ },
9313
+ },
9314
+ {
9315
+ name: "get_tiktok_video",
9316
+ description: "Get details of a specific TikTok video by ID.",
9317
+ inputSchema: {
9318
+ type: "object",
9319
+ properties: {
9320
+ video_id: { type: "string", description: "TikTok video ID" },
9321
+ access_token: { type: "string" },
9322
+ },
9323
+ required: ["video_id"],
9324
+ },
9325
+ },
9326
+ // ── steam-tool.ts ────────────────────────────────────────────────────────────
9327
+ {
9328
+ name: "get_steam_player_summaries",
9329
+ description: "Get Steam player profile summaries for one or more Steam IDs.",
9330
+ inputSchema: {
9331
+ type: "object",
9332
+ properties: {
9333
+ steamids: { type: "string", description: "Comma-separated Steam64 IDs (up to 100)" },
9334
+ api_key: { type: "string", description: "Steam Web API key (or set STEAM_API_KEY)" },
9335
+ },
9336
+ required: ["steamids"],
9337
+ },
9338
+ },
9339
+ {
9340
+ name: "get_steam_owned_games",
9341
+ description: "Get games owned by a Steam user.",
9342
+ inputSchema: {
9343
+ type: "object",
9344
+ properties: {
9345
+ steamid: { type: "string", description: "Steam64 ID" },
9346
+ include_appinfo: { type: "boolean", description: "Include game names (default true)" },
9347
+ include_played_free_games: { type: "boolean" },
9348
+ api_key: { type: "string" },
9349
+ },
9350
+ required: ["steamid"],
9351
+ },
9352
+ },
9353
+ {
9354
+ name: "get_steam_achievements",
9355
+ description: "Get achievements for a Steam user in a specific game.",
9356
+ inputSchema: {
9357
+ type: "object",
9358
+ properties: {
9359
+ steamid: { type: "string", description: "Steam64 ID" },
9360
+ appid: { type: "string", description: "Steam App ID of the game" },
9361
+ api_key: { type: "string" },
9362
+ },
9363
+ required: ["steamid", "appid"],
9364
+ },
9365
+ },
9366
+ {
9367
+ name: "get_steam_app_details",
9368
+ description: "Get store details for a Steam app (game info, price, platforms, Metacritic score).",
9369
+ inputSchema: {
9370
+ type: "object",
9371
+ properties: {
9372
+ appid: { type: "string", description: "Steam App ID" },
9373
+ cc: { type: "string", description: "Country code for pricing (e.g. us, au)" },
9374
+ l: { type: "string", description: "Language code (e.g. english)" },
9375
+ },
9376
+ required: ["appid"],
9377
+ },
9378
+ },
9379
+ {
9380
+ name: "search_steam_store",
9381
+ description: "Search the Steam store for games by name.",
9382
+ inputSchema: {
9383
+ type: "object",
9384
+ properties: {
9385
+ term: { type: "string", description: "Search term" },
9386
+ cc: { type: "string", description: "Country code for pricing" },
9387
+ l: { type: "string", description: "Language code" },
9388
+ },
9389
+ required: ["term"],
9390
+ },
9391
+ },
9392
+ // ── igdb-tool.ts ─────────────────────────────────────────────────────────────
9393
+ {
9394
+ name: "igdb_search_games",
9395
+ description: "Search the IGDB games database by name.",
9396
+ inputSchema: {
9397
+ type: "object",
9398
+ properties: {
9399
+ query: { type: "string", description: "Game name to search for" },
9400
+ limit: { type: "number", description: "Max results (default 10, max 50)" },
9401
+ client_id: { type: "string", description: "Twitch/IGDB Client ID (or set IGDB_CLIENT_ID)" },
9402
+ client_secret: { type: "string", description: "Twitch/IGDB Client Secret (or set IGDB_CLIENT_SECRET)" },
9403
+ },
9404
+ required: ["query"],
9405
+ },
9406
+ },
9407
+ {
9408
+ name: "igdb_get_game",
9409
+ description: "Get full details of a game from IGDB by game ID.",
9410
+ inputSchema: {
9411
+ type: "object",
9412
+ properties: {
9413
+ game_id: { type: "string", description: "IGDB game ID" },
9414
+ client_id: { type: "string" },
9415
+ client_secret: { type: "string" },
9416
+ },
9417
+ required: ["game_id"],
9418
+ },
9419
+ },
9420
+ {
9421
+ name: "igdb_list_platforms",
9422
+ description: "List gaming platforms from IGDB.",
9423
+ inputSchema: {
9424
+ type: "object",
9425
+ properties: {
9426
+ limit: { type: "number", description: "Max results (default 30)" },
9427
+ offset: { type: "number" },
9428
+ client_id: { type: "string" },
9429
+ client_secret: { type: "string" },
9430
+ },
9431
+ },
9432
+ },
9433
+ {
9434
+ name: "igdb_list_genres",
9435
+ description: "List all game genres from IGDB.",
9436
+ inputSchema: {
9437
+ type: "object",
9438
+ properties: {
9439
+ client_id: { type: "string" },
9440
+ client_secret: { type: "string" },
9441
+ },
9442
+ },
9443
+ },
9444
+ {
9445
+ name: "igdb_get_company",
9446
+ description: "Get a game company from IGDB by name or ID.",
9447
+ inputSchema: {
9448
+ type: "object",
9449
+ properties: {
9450
+ name: { type: "string", description: "Company name to search for" },
9451
+ company_id: { type: "string", description: "IGDB company ID (takes precedence over name)" },
9452
+ client_id: { type: "string" },
9453
+ client_secret: { type: "string" },
9454
+ },
9455
+ },
9456
+ },
9457
+ // ── speedrun-tool.ts ─────────────────────────────────────────────────────────
9458
+ {
9459
+ name: "speedrun_search_games",
9460
+ description: "Search for games on Speedrun.com by name. No API key required.",
9461
+ inputSchema: {
9462
+ type: "object",
9463
+ properties: {
9464
+ name: { type: "string", description: "Game name to search" },
9465
+ max: { type: "number", description: "Max results" },
9466
+ },
9467
+ required: ["name"],
9468
+ },
9469
+ },
9470
+ {
9471
+ name: "speedrun_get_game",
9472
+ description: "Get details of a game on Speedrun.com including categories and levels.",
9473
+ inputSchema: {
9474
+ type: "object",
9475
+ properties: {
9476
+ game_id: { type: "string", description: "Speedrun.com game ID or abbreviation" },
9477
+ },
9478
+ required: ["game_id"],
9479
+ },
9480
+ },
9481
+ {
9482
+ name: "speedrun_get_leaderboard",
9483
+ description: "Get the leaderboard for a Speedrun.com game category.",
9484
+ inputSchema: {
9485
+ type: "object",
9486
+ properties: {
9487
+ game_id: { type: "string", description: "Game ID" },
9488
+ category_id: { type: "string", description: "Category ID" },
9489
+ top: { type: "number", description: "Only return top N places" },
9490
+ platform: { type: "string" },
9491
+ emulators: { type: "boolean" },
9492
+ video_only: { type: "boolean" },
9493
+ },
9494
+ required: ["game_id", "category_id"],
9495
+ },
9496
+ },
9497
+ {
9498
+ name: "speedrun_list_runs",
9499
+ description: "List speedruns with optional filters for game, category, user, or status.",
9500
+ inputSchema: {
9501
+ type: "object",
9502
+ properties: {
9503
+ game: { type: "string", description: "Game ID" },
9504
+ category: { type: "string" },
9505
+ user: { type: "string", description: "User ID" },
9506
+ status: { type: "string", description: "new, verified, or rejected" },
9507
+ orderby: { type: "string", description: "date, submitted, status, game, category, level, platform, region, emulated, or weblink" },
9508
+ direction: { type: "string", description: "asc or desc" },
9509
+ max: { type: "number" },
9510
+ },
9511
+ },
9512
+ },
9513
+ {
9514
+ name: "speedrun_get_user",
9515
+ description: "Get a Speedrun.com user profile by ID or username.",
9516
+ inputSchema: {
9517
+ type: "object",
9518
+ properties: {
9519
+ user_id: { type: "string", description: "User ID or username" },
9520
+ },
9521
+ required: ["user_id"],
9522
+ },
9523
+ },
9524
+ // ── exchangerate-tool.ts ─────────────────────────────────────────────────────
9525
+ {
9526
+ name: "exchangerate_latest",
9527
+ description: "Get latest currency exchange rates for a base currency. Works without API key using the free tier.",
9528
+ inputSchema: {
9529
+ type: "object",
9530
+ properties: {
9531
+ base: { type: "string", description: "Base currency code (default USD)" },
9532
+ api_key: { type: "string", description: "ExchangeRate-API key (or set EXCHANGERATE_API_KEY). Optional for latest rates." },
9533
+ },
9534
+ },
9535
+ },
9536
+ {
9537
+ name: "exchangerate_convert",
9538
+ description: "Convert an amount from one currency to another.",
9539
+ inputSchema: {
9540
+ type: "object",
9541
+ properties: {
9542
+ from: { type: "string", description: "Source currency code (e.g. USD)" },
9543
+ to: { type: "string", description: "Target currency code (e.g. EUR)" },
9544
+ amount: { type: "number", description: "Amount to convert (default 1)" },
9545
+ api_key: { type: "string", description: "Optional for conversion (uses latest rates if omitted)" },
9546
+ },
9547
+ required: ["from", "to"],
9548
+ },
9549
+ },
9550
+ {
9551
+ name: "exchangerate_historical",
9552
+ description: "Get historical exchange rates for a specific date. Requires an API key.",
9553
+ inputSchema: {
9554
+ type: "object",
9555
+ properties: {
9556
+ base: { type: "string", description: "Base currency code (default USD)" },
9557
+ year: { type: "string", description: "4-digit year" },
9558
+ month: { type: "string", description: "Month number (1-12)" },
9559
+ day: { type: "string", description: "Day number (1-31)" },
9560
+ api_key: { type: "string", description: "ExchangeRate-API key (required)" },
9561
+ },
9562
+ required: ["year", "month", "day"],
9563
+ },
9564
+ },
9565
+ {
9566
+ name: "exchangerate_codes",
9567
+ description: "List all supported currency codes and their names. Requires an API key.",
9568
+ inputSchema: {
9569
+ type: "object",
9570
+ properties: {
9571
+ api_key: { type: "string", description: "ExchangeRate-API key (required)" },
9572
+ },
9573
+ },
9574
+ },
9575
+ // ── neon-tool.ts ─────────────────────────────────────────────────────────────
9576
+ {
9577
+ name: "neon_list_projects",
9578
+ description: "List all Neon Serverless Postgres projects in your account.",
9579
+ inputSchema: {
9580
+ type: "object",
9581
+ properties: {
9582
+ api_key: { type: "string", description: "Neon API key" },
9583
+ limit: { type: "number", description: "Max projects to return (default 10)" },
9584
+ cursor: { type: "string", description: "Pagination cursor" },
9585
+ },
9586
+ },
9587
+ },
9588
+ {
9589
+ name: "neon_get_project",
9590
+ description: "Get details for a specific Neon project.",
9591
+ inputSchema: {
9592
+ type: "object",
9593
+ properties: {
9594
+ api_key: { type: "string" },
9595
+ project_id: { type: "string", description: "Neon project ID" },
9596
+ },
9597
+ required: ["project_id"],
9598
+ },
9599
+ },
9600
+ {
9601
+ name: "neon_list_branches",
9602
+ description: "List all branches in a Neon project.",
9603
+ inputSchema: {
9604
+ type: "object",
9605
+ properties: {
9606
+ api_key: { type: "string" },
9607
+ project_id: { type: "string" },
9608
+ },
9609
+ required: ["project_id"],
9610
+ },
9611
+ },
9612
+ {
9613
+ name: "neon_create_branch",
9614
+ description: "Create a new branch in a Neon project.",
9615
+ inputSchema: {
9616
+ type: "object",
9617
+ properties: {
9618
+ api_key: { type: "string" },
9619
+ project_id: { type: "string" },
9620
+ branch_name: { type: "string", description: "Name for the new branch" },
9621
+ },
9622
+ required: ["project_id"],
9623
+ },
9624
+ },
9625
+ {
9626
+ name: "neon_list_databases",
9627
+ description: "List all databases on a Neon branch.",
9628
+ inputSchema: {
9629
+ type: "object",
9630
+ properties: {
9631
+ api_key: { type: "string" },
9632
+ project_id: { type: "string" },
9633
+ branch_id: { type: "string" },
9634
+ },
9635
+ required: ["project_id", "branch_id"],
9636
+ },
9637
+ },
9638
+ {
9639
+ name: "neon_execute_sql",
9640
+ description: "Execute a SQL query against a Neon database endpoint.",
9641
+ inputSchema: {
9642
+ type: "object",
9643
+ properties: {
9644
+ api_key: { type: "string" },
9645
+ project_id: { type: "string" },
9646
+ branch_id: { type: "string" },
9647
+ endpoint_id: { type: "string" },
9648
+ query: { type: "string", description: "SQL query to execute" },
9649
+ database_name: { type: "string", description: "Target database name" },
9650
+ },
9651
+ required: ["project_id", "branch_id", "endpoint_id", "query", "database_name"],
9652
+ },
9653
+ },
9654
+ // ── upstash-tool.ts ──────────────────────────────────────────────────────────
9655
+ {
9656
+ name: "upstash_redis_get",
9657
+ description: "Get the value of a key from an Upstash Redis database.",
9658
+ inputSchema: {
9659
+ type: "object",
9660
+ properties: {
9661
+ api_key: { type: "string", description: "Upstash API key" },
9662
+ email: { type: "string", description: "Upstash account email" },
9663
+ db_id: { type: "string", description: "Redis database ID" },
9664
+ key: { type: "string", description: "Key to retrieve" },
9665
+ },
9666
+ required: ["api_key", "email", "db_id", "key"],
9667
+ },
9668
+ },
9669
+ {
9670
+ name: "upstash_redis_set",
9671
+ description: "Set a key-value pair in an Upstash Redis database.",
9672
+ inputSchema: {
9673
+ type: "object",
9674
+ properties: {
9675
+ api_key: { type: "string" },
9676
+ email: { type: "string" },
9677
+ db_id: { type: "string" },
9678
+ key: { type: "string" },
9679
+ value: { type: "string", description: "Value to store" },
9680
+ ex: { type: "number", description: "Expiry in seconds (optional)" },
9681
+ },
9682
+ required: ["api_key", "email", "db_id", "key", "value"],
9683
+ },
9684
+ },
9685
+ {
9686
+ name: "upstash_redis_del",
9687
+ description: "Delete a key from an Upstash Redis database.",
9688
+ inputSchema: {
9689
+ type: "object",
9690
+ properties: {
9691
+ api_key: { type: "string" },
9692
+ email: { type: "string" },
9693
+ db_id: { type: "string" },
9694
+ key: { type: "string" },
9695
+ },
9696
+ required: ["api_key", "email", "db_id", "key"],
9697
+ },
9698
+ },
9699
+ {
9700
+ name: "upstash_redis_list_keys",
9701
+ description: "List keys in an Upstash Redis database matching a pattern.",
9702
+ inputSchema: {
9703
+ type: "object",
9704
+ properties: {
9705
+ api_key: { type: "string" },
9706
+ email: { type: "string" },
9707
+ db_id: { type: "string" },
9708
+ pattern: { type: "string", description: "Key pattern (default *)" },
9709
+ },
9710
+ required: ["api_key", "email", "db_id"],
9711
+ },
9712
+ },
9713
+ {
9714
+ name: "upstash_redis_incr",
9715
+ description: "Increment a numeric key in an Upstash Redis database.",
9716
+ inputSchema: {
9717
+ type: "object",
9718
+ properties: {
9719
+ api_key: { type: "string" },
9720
+ email: { type: "string" },
9721
+ db_id: { type: "string" },
9722
+ key: { type: "string" },
9723
+ },
9724
+ required: ["api_key", "email", "db_id", "key"],
9725
+ },
9726
+ },
9727
+ {
9728
+ name: "upstash_kafka_produce",
9729
+ description: "Produce messages to an Upstash Kafka topic.",
9730
+ inputSchema: {
9731
+ type: "object",
9732
+ properties: {
9733
+ api_key: { type: "string" },
9734
+ email: { type: "string" },
9735
+ cluster_id: { type: "string" },
9736
+ topic: { type: "string" },
9737
+ messages: { type: "string", description: "JSON array of message objects [{value: '...'}]" },
9738
+ },
9739
+ required: ["api_key", "email", "cluster_id", "topic", "messages"],
9740
+ },
9741
+ },
9742
+ {
9743
+ name: "upstash_kafka_list_topics",
9744
+ description: "List all topics in an Upstash Kafka cluster.",
9745
+ inputSchema: {
9746
+ type: "object",
9747
+ properties: {
9748
+ api_key: { type: "string" },
9749
+ email: { type: "string" },
9750
+ cluster_id: { type: "string" },
9751
+ },
9752
+ required: ["api_key", "email", "cluster_id"],
9753
+ },
9754
+ },
9755
+ // ── turso-tool.ts ─────────────────────────────────────────────────────────────
9756
+ {
9757
+ name: "turso_list_databases",
9758
+ description: "List all databases in a Turso organization.",
9759
+ inputSchema: {
9760
+ type: "object",
9761
+ properties: {
9762
+ api_key: { type: "string", description: "Turso API token" },
9763
+ org: { type: "string", description: "Organization name or slug" },
9764
+ },
9765
+ required: ["api_key", "org"],
9766
+ },
9767
+ },
9768
+ {
9769
+ name: "turso_create_database",
9770
+ description: "Create a new Turso SQLite edge database.",
9771
+ inputSchema: {
9772
+ type: "object",
9773
+ properties: {
9774
+ api_key: { type: "string" },
9775
+ org: { type: "string" },
9776
+ name: { type: "string", description: "Database name" },
9777
+ group: { type: "string", description: "Group to attach to (e.g. default)" },
9778
+ },
9779
+ required: ["api_key", "org", "name", "group"],
9780
+ },
9781
+ },
9782
+ {
9783
+ name: "turso_list_groups",
9784
+ description: "List all groups in a Turso organization.",
9785
+ inputSchema: {
9786
+ type: "object",
9787
+ properties: {
9788
+ api_key: { type: "string" },
9789
+ org: { type: "string" },
9790
+ },
9791
+ required: ["api_key", "org"],
9792
+ },
9793
+ },
9794
+ {
9795
+ name: "turso_get_database",
9796
+ description: "Get details for a specific Turso database.",
9797
+ inputSchema: {
9798
+ type: "object",
9799
+ properties: {
9800
+ api_key: { type: "string" },
9801
+ org: { type: "string" },
9802
+ name: { type: "string", description: "Database name" },
9803
+ },
9804
+ required: ["api_key", "org", "name"],
9805
+ },
9806
+ },
9807
+ {
9808
+ name: "turso_execute_sql",
9809
+ description: "Execute a SQL query against a Turso edge database.",
9810
+ inputSchema: {
9811
+ type: "object",
9812
+ properties: {
9813
+ api_key: { type: "string" },
9814
+ org: { type: "string" },
9815
+ db_name: { type: "string", description: "Database name" },
9816
+ sql: { type: "string", description: "SQL statement to execute" },
9817
+ },
9818
+ required: ["api_key", "org", "db_name", "sql"],
9819
+ },
9820
+ },
9821
+ // ── render-tool.ts ───────────────────────────────────────────────────────────
9822
+ {
9823
+ name: "render_list_services",
9824
+ description: "List all Render services (web services, static sites, cron jobs, etc.).",
9825
+ inputSchema: {
9826
+ type: "object",
9827
+ properties: {
9828
+ api_key: { type: "string", description: "Render API key" },
9829
+ limit: { type: "number", description: "Max results (default 20)" },
9830
+ cursor: { type: "string" },
9831
+ type: { type: "string", description: "Filter by type: web_service, static_site, background_worker, cron_job, private_service" },
9832
+ },
9833
+ },
9834
+ },
9835
+ {
9836
+ name: "render_get_service",
9837
+ description: "Get details for a specific Render service.",
9838
+ inputSchema: {
9839
+ type: "object",
9840
+ properties: {
9841
+ api_key: { type: "string" },
9842
+ service_id: { type: "string", description: "Render service ID (srv-...)" },
9843
+ },
9844
+ required: ["service_id"],
9845
+ },
9846
+ },
9847
+ {
9848
+ name: "render_list_deploys",
9849
+ description: "List deploys for a Render service.",
9850
+ inputSchema: {
9851
+ type: "object",
9852
+ properties: {
9853
+ api_key: { type: "string" },
9854
+ service_id: { type: "string" },
9855
+ limit: { type: "number" },
9856
+ },
9857
+ required: ["service_id"],
9858
+ },
9859
+ },
9860
+ {
9861
+ name: "render_trigger_deploy",
9862
+ description: "Trigger a new deploy for a Render service.",
9863
+ inputSchema: {
9864
+ type: "object",
9865
+ properties: {
9866
+ api_key: { type: "string" },
9867
+ service_id: { type: "string" },
9868
+ clear_cache: { type: "boolean", description: "Clear build cache before deploying" },
9869
+ },
9870
+ required: ["service_id"],
7915
9871
  },
7916
9872
  },
7917
9873
  {
7918
- name: "speedrun_get_user",
7919
- description: "Get a Speedrun.com user profile by ID or username.",
9874
+ name: "render_list_env_vars",
9875
+ description: "List environment variables for a Render service.",
7920
9876
  inputSchema: {
7921
9877
  type: "object",
7922
9878
  properties: {
7923
- user_id: { type: "string", description: "User ID or username" },
9879
+ api_key: { type: "string" },
9880
+ service_id: { type: "string" },
7924
9881
  },
7925
- required: ["user_id"],
9882
+ required: ["service_id"],
7926
9883
  },
7927
9884
  },
7928
- // ── exchangerate-tool.ts ─────────────────────────────────────────────────────
7929
9885
  {
7930
- name: "exchangerate_latest",
7931
- description: "Get latest currency exchange rates for a base currency. Works without API key using the free tier.",
9886
+ name: "render_set_env_var",
9887
+ description: "Set an environment variable on a Render service.",
7932
9888
  inputSchema: {
7933
9889
  type: "object",
7934
9890
  properties: {
7935
- base: { type: "string", description: "Base currency code (default USD)" },
7936
- api_key: { type: "string", description: "ExchangeRate-API key (or set EXCHANGERATE_API_KEY). Optional for latest rates." },
9891
+ api_key: { type: "string" },
9892
+ service_id: { type: "string" },
9893
+ key: { type: "string", description: "Environment variable name" },
9894
+ value: { type: "string", description: "Environment variable value" },
7937
9895
  },
9896
+ required: ["service_id", "key", "value"],
7938
9897
  },
7939
9898
  },
9899
+ // ── flyio-tool.ts ────────────────────────────────────────────────────────────
7940
9900
  {
7941
- name: "exchangerate_convert",
7942
- description: "Convert an amount from one currency to another.",
9901
+ name: "fly_list_apps",
9902
+ description: "List all Fly.io apps in your organization.",
7943
9903
  inputSchema: {
7944
9904
  type: "object",
7945
9905
  properties: {
7946
- from: { type: "string", description: "Source currency code (e.g. USD)" },
7947
- to: { type: "string", description: "Target currency code (e.g. EUR)" },
7948
- amount: { type: "number", description: "Amount to convert (default 1)" },
7949
- api_key: { type: "string", description: "Optional for conversion (uses latest rates if omitted)" },
9906
+ api_key: { type: "string", description: "Fly.io API token" },
9907
+ org_slug: { type: "string", description: "Organization slug (optional)" },
7950
9908
  },
7951
- required: ["from", "to"],
7952
9909
  },
7953
9910
  },
7954
9911
  {
7955
- name: "exchangerate_historical",
7956
- description: "Get historical exchange rates for a specific date. Requires an API key.",
9912
+ name: "fly_get_app",
9913
+ description: "Get details for a specific Fly.io app.",
7957
9914
  inputSchema: {
7958
9915
  type: "object",
7959
9916
  properties: {
7960
- base: { type: "string", description: "Base currency code (default USD)" },
7961
- year: { type: "string", description: "4-digit year" },
7962
- month: { type: "string", description: "Month number (1-12)" },
7963
- day: { type: "string", description: "Day number (1-31)" },
7964
- api_key: { type: "string", description: "ExchangeRate-API key (required)" },
9917
+ api_key: { type: "string" },
9918
+ app_name: { type: "string", description: "Fly.io app name" },
7965
9919
  },
7966
- required: ["year", "month", "day"],
9920
+ required: ["app_name"],
7967
9921
  },
7968
9922
  },
7969
9923
  {
7970
- name: "exchangerate_codes",
7971
- description: "List all supported currency codes and their names. Requires an API key.",
9924
+ name: "fly_list_machines",
9925
+ description: "List all machines in a Fly.io app.",
7972
9926
  inputSchema: {
7973
9927
  type: "object",
7974
9928
  properties: {
7975
- api_key: { type: "string", description: "ExchangeRate-API key (required)" },
9929
+ api_key: { type: "string" },
9930
+ app_name: { type: "string" },
9931
+ include_deleted: { type: "boolean" },
9932
+ },
9933
+ required: ["app_name"],
9934
+ },
9935
+ },
9936
+ {
9937
+ name: "fly_create_machine",
9938
+ description: "Create a new machine in a Fly.io app.",
9939
+ inputSchema: {
9940
+ type: "object",
9941
+ properties: {
9942
+ api_key: { type: "string" },
9943
+ app_name: { type: "string" },
9944
+ image: { type: "string", description: "Docker image to run (e.g. nginx:latest)" },
9945
+ machine_name: { type: "string", description: "Optional machine name" },
9946
+ env: { type: "string", description: "JSON object of environment variables" },
9947
+ },
9948
+ required: ["app_name", "image"],
9949
+ },
9950
+ },
9951
+ {
9952
+ name: "fly_list_volumes",
9953
+ description: "List all volumes attached to a Fly.io app.",
9954
+ inputSchema: {
9955
+ type: "object",
9956
+ properties: {
9957
+ api_key: { type: "string" },
9958
+ app_name: { type: "string" },
9959
+ },
9960
+ required: ["app_name"],
9961
+ },
9962
+ },
9963
+ // ── mistral-tool.ts ──────────────────────────────────────────────────────────
9964
+ {
9965
+ name: "mistral_chat_completion",
9966
+ description: "Run a chat completion with a Mistral AI model (mistral-small, mistral-medium, mistral-large, etc.).",
9967
+ inputSchema: {
9968
+ type: "object",
9969
+ properties: {
9970
+ api_key: { type: "string", description: "Mistral API key" },
9971
+ model: { type: "string", description: "Model ID (default: mistral-small-latest)" },
9972
+ prompt: { type: "string", description: "Single user message (alternative to messages)" },
9973
+ system_prompt: { type: "string" },
9974
+ messages: { type: "string", description: "JSON array of {role, content} messages" },
9975
+ max_tokens: { type: "number" },
9976
+ temperature: { type: "number" },
9977
+ top_p: { type: "number" },
9978
+ },
9979
+ },
9980
+ },
9981
+ {
9982
+ name: "mistral_list_models",
9983
+ description: "List all available Mistral AI models.",
9984
+ inputSchema: {
9985
+ type: "object",
9986
+ properties: {
9987
+ api_key: { type: "string" },
9988
+ },
9989
+ },
9990
+ },
9991
+ {
9992
+ name: "mistral_create_embedding",
9993
+ description: "Create vector embeddings for text using Mistral's embedding model.",
9994
+ inputSchema: {
9995
+ type: "object",
9996
+ properties: {
9997
+ api_key: { type: "string" },
9998
+ input: { type: "string", description: "Text or JSON array of strings to embed" },
9999
+ model: { type: "string", description: "Embedding model (default: mistral-embed)" },
10000
+ },
10001
+ required: ["input"],
10002
+ },
10003
+ },
10004
+ // ── cohere-tool.ts ───────────────────────────────────────────────────────────
10005
+ {
10006
+ name: "cohere_chat",
10007
+ description: "Chat with a Cohere Command model. Supports system preamble and conversation history.",
10008
+ inputSchema: {
10009
+ type: "object",
10010
+ properties: {
10011
+ api_key: { type: "string", description: "Cohere API key" },
10012
+ message: { type: "string", description: "User message" },
10013
+ model: { type: "string", description: "Model ID (default: command-r-plus)" },
10014
+ preamble: { type: "string", description: "System prompt / preamble" },
10015
+ chat_history: { type: "string", description: "JSON array of prior messages [{role, message}]" },
10016
+ max_tokens: { type: "number" },
10017
+ temperature: { type: "number" },
10018
+ },
10019
+ required: ["message"],
10020
+ },
10021
+ },
10022
+ {
10023
+ name: "cohere_generate",
10024
+ description: "Generate text completions using Cohere Command models.",
10025
+ inputSchema: {
10026
+ type: "object",
10027
+ properties: {
10028
+ api_key: { type: "string" },
10029
+ prompt: { type: "string" },
10030
+ model: { type: "string", description: "Model ID (default: command)" },
10031
+ max_tokens: { type: "number" },
10032
+ temperature: { type: "number" },
10033
+ stop_sequences: { type: "string", description: "JSON array of stop strings" },
10034
+ },
10035
+ required: ["prompt"],
10036
+ },
10037
+ },
10038
+ {
10039
+ name: "cohere_embed",
10040
+ description: "Create vector embeddings for text using Cohere's embed models.",
10041
+ inputSchema: {
10042
+ type: "object",
10043
+ properties: {
10044
+ api_key: { type: "string" },
10045
+ texts: { type: "string", description: "JSON array of strings to embed" },
10046
+ model: { type: "string", description: "Embed model (default: embed-english-v3.0)" },
10047
+ input_type: { type: "string", description: "search_document, search_query, classification, clustering" },
10048
+ },
10049
+ required: ["texts"],
10050
+ },
10051
+ },
10052
+ {
10053
+ name: "cohere_rerank",
10054
+ description: "Rerank a list of documents by relevance to a query using Cohere Rerank.",
10055
+ inputSchema: {
10056
+ type: "object",
10057
+ properties: {
10058
+ api_key: { type: "string" },
10059
+ query: { type: "string" },
10060
+ documents: { type: "string", description: "JSON array of strings or {text} objects" },
10061
+ model: { type: "string", description: "Rerank model (default: rerank-english-v3.0)" },
10062
+ top_n: { type: "number", description: "Return top N results" },
10063
+ },
10064
+ required: ["query", "documents"],
10065
+ },
10066
+ },
10067
+ {
10068
+ name: "cohere_classify",
10069
+ description: "Classify texts into categories using Cohere Classify with few-shot examples.",
10070
+ inputSchema: {
10071
+ type: "object",
10072
+ properties: {
10073
+ api_key: { type: "string" },
10074
+ inputs: { type: "string", description: "JSON array of strings to classify" },
10075
+ examples: { type: "string", description: "JSON array of {text, label} few-shot examples" },
10076
+ model: { type: "string" },
10077
+ },
10078
+ required: ["inputs", "examples"],
10079
+ },
10080
+ },
10081
+ {
10082
+ name: "cohere_list_models",
10083
+ description: "List all available Cohere models.",
10084
+ inputSchema: {
10085
+ type: "object",
10086
+ properties: {
10087
+ api_key: { type: "string" },
10088
+ },
10089
+ },
10090
+ },
10091
+ // ── perplexity-tool.ts ───────────────────────────────────────────────────────
10092
+ {
10093
+ name: "perplexity_chat_completion",
10094
+ description: "Run a search-augmented chat completion with Perplexity AI. Returns grounded answers with citations from the web.",
10095
+ inputSchema: {
10096
+ type: "object",
10097
+ properties: {
10098
+ api_key: { type: "string", description: "Perplexity API key" },
10099
+ model: { type: "string", description: "Model (default: sonar). Options: sonar, sonar-pro, sonar-reasoning" },
10100
+ prompt: { type: "string", description: "User message (alternative to messages)" },
10101
+ system_prompt: { type: "string" },
10102
+ messages: { type: "string", description: "JSON array of {role, content} messages" },
10103
+ max_tokens: { type: "number" },
10104
+ temperature: { type: "number" },
10105
+ search_recency_filter: { type: "string", description: "Limit sources by time: month, week, day, hour" },
10106
+ search_domain_filter: { type: "string", description: "JSON array of domains to restrict search to" },
10107
+ return_citations: { type: "boolean", description: "Include citation URLs in response (default true)" },
10108
+ return_related_questions: { type: "boolean" },
10109
+ },
10110
+ },
10111
+ },
10112
+ // ── lemonsqueezy-tool.ts ─────────────────────────────────────────────────────
10113
+ {
10114
+ name: "ls_list_stores",
10115
+ description: "List all Lemon Squeezy stores on your account.",
10116
+ inputSchema: {
10117
+ type: "object",
10118
+ properties: {
10119
+ api_key: { type: "string", description: "Lemon Squeezy API key" },
10120
+ page: { type: "number" },
10121
+ per_page: { type: "number" },
10122
+ },
10123
+ },
10124
+ },
10125
+ {
10126
+ name: "ls_list_products",
10127
+ description: "List products in a Lemon Squeezy store.",
10128
+ inputSchema: {
10129
+ type: "object",
10130
+ properties: {
10131
+ api_key: { type: "string" },
10132
+ store_id: { type: "string" },
10133
+ page: { type: "number" },
10134
+ per_page: { type: "number" },
10135
+ },
10136
+ },
10137
+ },
10138
+ {
10139
+ name: "ls_list_orders",
10140
+ description: "List orders in a Lemon Squeezy store.",
10141
+ inputSchema: {
10142
+ type: "object",
10143
+ properties: {
10144
+ api_key: { type: "string" },
10145
+ store_id: { type: "string" },
10146
+ user_email: { type: "string" },
10147
+ page: { type: "number" },
10148
+ per_page: { type: "number" },
10149
+ },
10150
+ },
10151
+ },
10152
+ {
10153
+ name: "ls_list_subscriptions",
10154
+ description: "List subscriptions for a Lemon Squeezy store.",
10155
+ inputSchema: {
10156
+ type: "object",
10157
+ properties: {
10158
+ api_key: { type: "string" },
10159
+ store_id: { type: "string" },
10160
+ order_id: { type: "string" },
10161
+ status: { type: "string", description: "Filter by status: active, cancelled, expired, past_due, unpaid, trial, paused" },
10162
+ page: { type: "number" },
10163
+ per_page: { type: "number" },
10164
+ },
10165
+ },
10166
+ },
10167
+ {
10168
+ name: "ls_get_order",
10169
+ description: "Get a specific Lemon Squeezy order by ID.",
10170
+ inputSchema: {
10171
+ type: "object",
10172
+ properties: {
10173
+ api_key: { type: "string" },
10174
+ order_id: { type: "string" },
10175
+ },
10176
+ required: ["order_id"],
10177
+ },
10178
+ },
10179
+ {
10180
+ name: "ls_list_customers",
10181
+ description: "List customers for a Lemon Squeezy store.",
10182
+ inputSchema: {
10183
+ type: "object",
10184
+ properties: {
10185
+ api_key: { type: "string" },
10186
+ store_id: { type: "string" },
10187
+ email: { type: "string" },
10188
+ page: { type: "number" },
10189
+ per_page: { type: "number" },
10190
+ },
10191
+ },
10192
+ },
10193
+ // ── convertkit-tool.ts ───────────────────────────────────────────────────────
10194
+ {
10195
+ name: "ck_list_subscribers",
10196
+ description: "List all subscribers in a ConvertKit account.",
10197
+ inputSchema: {
10198
+ type: "object",
10199
+ properties: {
10200
+ api_secret: { type: "string", description: "ConvertKit API secret" },
10201
+ page: { type: "number" },
10202
+ from: { type: "string", description: "Filter by created date (ISO 8601)" },
10203
+ to: { type: "string" },
10204
+ sort_field: { type: "string" },
10205
+ sort_order: { type: "string", description: "asc or desc" },
10206
+ },
10207
+ required: ["api_secret"],
10208
+ },
10209
+ },
10210
+ {
10211
+ name: "ck_add_subscriber",
10212
+ description: "Subscribe an email address to a ConvertKit form.",
10213
+ inputSchema: {
10214
+ type: "object",
10215
+ properties: {
10216
+ api_key: { type: "string", description: "ConvertKit API key" },
10217
+ form_id: { type: "string" },
10218
+ email: { type: "string" },
10219
+ first_name: { type: "string" },
10220
+ },
10221
+ required: ["api_key", "form_id", "email"],
10222
+ },
10223
+ },
10224
+ {
10225
+ name: "ck_list_forms",
10226
+ description: "List all forms in a ConvertKit account.",
10227
+ inputSchema: {
10228
+ type: "object",
10229
+ properties: {
10230
+ api_key: { type: "string" },
10231
+ },
10232
+ required: ["api_key"],
10233
+ },
10234
+ },
10235
+ {
10236
+ name: "ck_list_sequences",
10237
+ description: "List all email sequences in a ConvertKit account.",
10238
+ inputSchema: {
10239
+ type: "object",
10240
+ properties: {
10241
+ api_key: { type: "string" },
10242
+ },
10243
+ required: ["api_key"],
10244
+ },
10245
+ },
10246
+ {
10247
+ name: "ck_list_tags",
10248
+ description: "List all tags in a ConvertKit account.",
10249
+ inputSchema: {
10250
+ type: "object",
10251
+ properties: {
10252
+ api_key: { type: "string" },
10253
+ },
10254
+ required: ["api_key"],
10255
+ },
10256
+ },
10257
+ {
10258
+ name: "ck_tag_subscriber",
10259
+ description: "Apply a tag to a subscriber in ConvertKit.",
10260
+ inputSchema: {
10261
+ type: "object",
10262
+ properties: {
10263
+ api_key: { type: "string" },
10264
+ tag_id: { type: "string" },
10265
+ email: { type: "string" },
10266
+ first_name: { type: "string" },
7976
10267
  },
10268
+ required: ["api_key", "tag_id", "email"],
7977
10269
  },
7978
10270
  },
7979
10271
  ];
@@ -8577,8 +10869,18 @@ export const ADDITIONAL_HANDLERS = {
8577
10869
  depth: args.depth ? args.depth : undefined,
8578
10870
  focus: args.focus ? String(args.focus) : undefined,
8579
10871
  })),
10872
+ // qc-tool.ts
10873
+ qc_run_checklist: (args) => qcRunChecklist(args),
10874
+ qc_check_api: (args) => qcCheckApi(args),
10875
+ qc_copy_audit: (args) => qcCopyAudit(args),
8580
10876
  // vault-tool.ts
8581
10877
  vault_action: (args) => vaultAction(String(args.action ?? ""), args),
10878
+ // keychain-tool.ts
10879
+ keychain_connect: (args) => keychainAction("keychain_connect", args),
10880
+ keychain_status: (args) => keychainAction("keychain_status", args),
10881
+ keychain_disconnect: (args) => keychainAction("keychain_disconnect", args),
10882
+ keychain_list_platforms: (args) => keychainAction("keychain_list_platforms", args),
10883
+ keychain_secure_connect: (args) => keychainAction("keychain_secure_connect", args),
8582
10884
  // github-tool.ts
8583
10885
  github_action: (args) => githubAction(String(args.action ?? ""), args),
8584
10886
  // gitlab-tool.ts
@@ -8630,6 +10932,27 @@ export const ADDITIONAL_HANDLERS = {
8630
10932
  spotify_get_playlist: (args) => spotifyGetPlaylist(args),
8631
10933
  spotify_get_recommendations: (args) => spotifyGetRecommendations(args),
8632
10934
  spotify_get_audio_features: (args) => spotifyGetAudioFeatures(args),
10935
+ // higgsfield-tool.ts
10936
+ higgsfield_generate_video: (args) => higgsfield_generate_video(args),
10937
+ higgsfield_generate_image: (args) => higgsfield_generate_image(args),
10938
+ higgsfield_get_styles: (args) => higgsfield_get_styles(args),
10939
+ higgsfield_get_status: (args) => higgsfield_get_status(args),
10940
+ // heygen-tool.ts
10941
+ heygen_create_avatar_video: (args) => heygen_create_avatar_video(args),
10942
+ heygen_list_avatars: (args) => heygen_list_avatars(args),
10943
+ heygen_get_video_status: (args) => heygen_get_video_status(args),
10944
+ heygen_list_voices: (args) => heygen_list_voices(args),
10945
+ // runway-tool.ts
10946
+ runway_generate_video: (args) => runway_generate_video(args),
10947
+ runway_get_task: (args) => runway_get_task(args),
10948
+ runway_list_models: (args) => runway_list_models(args),
10949
+ // pika-tool.ts
10950
+ pika_generate_video: (args) => pika_generate_video(args),
10951
+ pika_get_generation: (args) => pika_get_generation(args),
10952
+ pika_list_styles: (args) => pika_list_styles(args),
10953
+ // kling-tool.ts
10954
+ kling_generate_video: (args) => kling_generate_video(args),
10955
+ kling_get_task: (args) => kling_get_task(args),
8633
10956
  // elevenlabs-tool.ts
8634
10957
  elevenlabs_list_voices: (args) => elevenlabsListVoices(args),
8635
10958
  elevenlabs_get_voice: (args) => elevenlabsGetVoice(args),
@@ -8712,5 +11035,165 @@ export const ADDITIONAL_HANDLERS = {
8712
11035
  exchangerate_convert: (args) => exchangerateConvert(args),
8713
11036
  exchangerate_historical: (args) => exchangerateHistorical(args),
8714
11037
  exchangerate_codes: (args) => exchangerateCodes(args),
11038
+ // mailchimp-tool.ts
11039
+ mailchimp_list_audiences: (args) => mailchimpListAudiences(args),
11040
+ mailchimp_list_campaigns: (args) => mailchimpListCampaigns(args),
11041
+ mailchimp_get_campaign: (args) => mailchimpGetCampaign(args),
11042
+ mailchimp_create_campaign: (args) => mailchimpCreateCampaign(args),
11043
+ mailchimp_list_members: (args) => mailchimpListMembers(args),
11044
+ mailchimp_add_member: (args) => mailchimpAddMember(args),
11045
+ mailchimp_search_members: (args) => mailchimpSearchMembers(args),
11046
+ // sendgrid-tool.ts
11047
+ sendgrid_send_email: (args) => sendgridSendEmail(args),
11048
+ sendgrid_list_templates: (args) => sendgridListTemplates(args),
11049
+ sendgrid_get_template: (args) => sendgridGetTemplate(args),
11050
+ sendgrid_list_contacts: (args) => sendgridListContacts(args),
11051
+ sendgrid_add_contact: (args) => sendgridAddContact(args),
11052
+ sendgrid_get_stats: (args) => sendgridGetStats(args),
11053
+ // mapbox-tool.ts
11054
+ mapbox_geocode_forward: (args) => mapboxGeocodeForward(args),
11055
+ mapbox_geocode_reverse: (args) => mapboxGeocodeReverse(args),
11056
+ mapbox_get_directions: (args) => mapboxGetDirections(args),
11057
+ mapbox_get_static_map: (args) => mapboxGetStaticMap(args),
11058
+ mapbox_list_tilesets: (args) => mapboxListTilesets(args),
11059
+ // algolia-tool.ts
11060
+ algolia_search: (args) => algoliaSearch(args),
11061
+ algolia_get_object: (args) => algoliaGetObject(args),
11062
+ algolia_list_indices: (args) => algoliaListIndices(args),
11063
+ algolia_browse_index: (args) => algoliaBrowseIndex(args),
11064
+ // pinecone-tool.ts
11065
+ pinecone_list_indexes: (args) => pineconeListIndexes(args),
11066
+ pinecone_describe_index: (args) => pineconeDescribeIndex(args),
11067
+ pinecone_query_vectors: (args) => pineconeQueryVectors(args),
11068
+ pinecone_upsert_vectors: (args) => pineconeUpsertVectors(args),
11069
+ pinecone_delete_vectors: (args) => pineconeDeleteVectors(args),
11070
+ // mixpanel-tool.ts
11071
+ mixpanel_track_event: (args) => mixpanelTrackEvent(args),
11072
+ mixpanel_get_events: (args) => mixpanelGetEvents(args),
11073
+ mixpanel_get_funnels: (args) => mixpanelGetFunnels(args),
11074
+ mixpanel_get_retention: (args) => mixpanelGetRetention(args),
11075
+ mixpanel_export_data: (args) => mixpanelExportData(args),
11076
+ // datadog-tool.ts
11077
+ datadog_list_monitors: (args) => datadogListMonitors(args),
11078
+ datadog_get_monitor: (args) => datadogGetMonitor(args),
11079
+ datadog_create_monitor: (args) => datadogCreateMonitor(args),
11080
+ datadog_list_dashboards: (args) => datadogListDashboards(args),
11081
+ datadog_query_metrics: (args) => datadogQueryMetrics(args),
11082
+ datadog_list_events: (args) => datadogListEvents(args),
11083
+ // deepl-tool.ts
11084
+ deepl_translate_text: (args) => deeplTranslateText(args),
11085
+ deepl_get_usage: (args) => deeplGetUsage(args),
11086
+ deepl_list_languages: (args) => deeplListLanguages(args),
11087
+ deepl_translate_document: (args) => deeplTranslateDocument(args),
11088
+ // assemblyai-tool.ts
11089
+ assemblyai_transcribe: (args) => assemblyaiTranscribe(args),
11090
+ assemblyai_get_transcript: (args) => assemblyaiGetTranscript(args),
11091
+ assemblyai_list_transcripts: (args) => assemblyaiListTranscripts(args),
11092
+ assemblyai_get_sentences: (args) => assemblyaiGetSentences(args),
11093
+ assemblyai_get_paragraphs: (args) => assemblyaiGetParagraphs(args),
11094
+ assemblyai_summarize: (args) => assemblyaiSummarize(args),
11095
+ // groq-tool.ts
11096
+ groq_chat_completion: (args) => groqChatCompletion(args),
11097
+ groq_list_models: (args) => groqListModels(args),
11098
+ // neon-tool.ts
11099
+ neon_list_projects: (args) => neonListProjects(args),
11100
+ neon_get_project: (args) => neonGetProject(args),
11101
+ neon_list_branches: (args) => neonListBranches(args),
11102
+ neon_create_branch: (args) => neonCreateBranch(args),
11103
+ neon_list_databases: (args) => neonListDatabases(args),
11104
+ neon_execute_sql: (args) => neonExecuteSql(args),
11105
+ // upstash-tool.ts
11106
+ upstash_redis_get: (args) => upstashRedisGet(args),
11107
+ upstash_redis_set: (args) => upstashRedisSet(args),
11108
+ upstash_redis_del: (args) => upstashRedisDel(args),
11109
+ upstash_redis_list_keys: (args) => upstashRedisListKeys(args),
11110
+ upstash_redis_incr: (args) => upstashRedisIncr(args),
11111
+ upstash_kafka_produce: (args) => upstashKafkaProduce(args),
11112
+ upstash_kafka_list_topics: (args) => upstashKafkaListTopics(args),
11113
+ // turso-tool.ts
11114
+ turso_list_databases: (args) => tursoListDatabases(args),
11115
+ turso_create_database: (args) => tursoCreateDatabase(args),
11116
+ turso_list_groups: (args) => tursoListGroups(args),
11117
+ turso_get_database: (args) => tursoGetDatabase(args),
11118
+ turso_execute_sql: (args) => tursoExecuteSql(args),
11119
+ // render-tool.ts
11120
+ render_list_services: (args) => renderListServices(args),
11121
+ render_get_service: (args) => renderGetService(args),
11122
+ render_list_deploys: (args) => renderListDeploys(args),
11123
+ render_trigger_deploy: (args) => renderTriggerDeploy(args),
11124
+ render_list_env_vars: (args) => renderListEnvVars(args),
11125
+ render_set_env_var: (args) => renderSetEnvVar(args),
11126
+ // flyio-tool.ts
11127
+ fly_list_apps: (args) => flyListApps(args),
11128
+ fly_get_app: (args) => flyGetApp(args),
11129
+ fly_list_machines: (args) => flyListMachines(args),
11130
+ fly_create_machine: (args) => flyCreateMachine(args),
11131
+ fly_list_volumes: (args) => flyListVolumes(args),
11132
+ // mistral-tool.ts
11133
+ mistral_chat_completion: (args) => mistralChatCompletion(args),
11134
+ mistral_list_models: (args) => mistralListModels(args),
11135
+ mistral_create_embedding: (args) => mistralCreateEmbedding(args),
11136
+ // cohere-tool.ts
11137
+ cohere_chat: (args) => cohereChat(args),
11138
+ cohere_generate: (args) => cohereGenerate(args),
11139
+ cohere_embed: (args) => cohereEmbed(args),
11140
+ cohere_rerank: (args) => cohereRerank(args),
11141
+ cohere_classify: (args) => cohereClassify(args),
11142
+ cohere_list_models: (args) => cohereListModels(args),
11143
+ // perplexity-tool.ts
11144
+ perplexity_chat_completion: (args) => perplexityChatCompletion(args),
11145
+ // lemonsqueezy-tool.ts
11146
+ ls_list_stores: (args) => lsListStores(args),
11147
+ ls_list_products: (args) => lsListProducts(args),
11148
+ ls_list_orders: (args) => lsListOrders(args),
11149
+ ls_list_subscriptions: (args) => lsListSubscriptions(args),
11150
+ ls_get_order: (args) => lsGetOrder(args),
11151
+ ls_list_customers: (args) => lsListCustomers(args),
11152
+ // convertkit-tool.ts
11153
+ ck_list_subscribers: (args) => ckListSubscribers(args),
11154
+ ck_add_subscriber: (args) => ckAddSubscriber(args),
11155
+ ck_list_forms: (args) => ckListForms(args),
11156
+ ck_list_sequences: (args) => ckListSequences(args),
11157
+ ck_list_tags: (args) => ckListTags(args),
11158
+ ck_tag_subscriber: (args) => ckTagSubscriber(args),
11159
+ // pagerduty-tool.ts
11160
+ pagerduty_list_incidents: (args) => pagerduty_list_incidents(args),
11161
+ pagerduty_get_incident: (args) => pagerduty_get_incident(args),
11162
+ pagerduty_create_incident: (args) => pagerduty_create_incident(args),
11163
+ pagerduty_acknowledge_incident: (args) => pagerduty_acknowledge_incident(args),
11164
+ pagerduty_resolve_incident: (args) => pagerduty_resolve_incident(args),
11165
+ pagerduty_list_services: (args) => pagerduty_list_services(args),
11166
+ pagerduty_list_oncalls: (args) => pagerduty_list_oncalls(args),
11167
+ // circleci-tool.ts
11168
+ circleci_list_pipelines: (args) => circleci_list_pipelines(args),
11169
+ circleci_get_pipeline: (args) => circleci_get_pipeline(args),
11170
+ circleci_list_workflows: (args) => circleci_list_workflows(args),
11171
+ circleci_get_workflow: (args) => circleci_get_workflow(args),
11172
+ circleci_list_jobs: (args) => circleci_list_jobs(args),
11173
+ circleci_trigger_pipeline: (args) => circleci_trigger_pipeline(args),
11174
+ // segment-tool.ts
11175
+ segment_track_event: (args) => segment_track_event(args),
11176
+ segment_identify_user: (args) => segment_identify_user(args),
11177
+ segment_list_sources: (args) => segment_list_sources(args),
11178
+ segment_list_destinations: (args) => segment_list_destinations(args),
11179
+ segment_get_source: (args) => segment_get_source(args),
11180
+ // postmark-tool.ts
11181
+ postmark_send_email: (args) => postmark_send_email(args),
11182
+ postmark_send_batch: (args) => postmark_send_batch(args),
11183
+ postmark_get_delivery_stats: (args) => postmark_get_delivery_stats(args),
11184
+ postmark_list_templates: (args) => postmark_list_templates(args),
11185
+ postmark_get_template: (args) => postmark_get_template(args),
11186
+ postmark_search_messages: (args) => postmark_search_messages(args),
11187
+ // gumroad-tool.ts
11188
+ gumroad_list_products: (args) => gumroad_list_products(args),
11189
+ gumroad_get_product: (args) => gumroad_get_product(args),
11190
+ gumroad_list_sales: (args) => gumroad_list_sales(args),
11191
+ gumroad_get_sale: (args) => gumroad_get_sale(args),
11192
+ gumroad_list_subscribers: (args) => gumroad_list_subscribers(args),
11193
+ // togetherai-tool.ts
11194
+ togetherai_chat_completion: (args) => togetherai_chat_completion(args),
11195
+ togetherai_completion: (args) => togetherai_completion(args),
11196
+ togetherai_create_embedding: (args) => togetherai_create_embedding(args),
11197
+ togetherai_list_models: (args) => togetherai_list_models(args),
8715
11198
  };
8716
11199
  //# sourceMappingURL=tool-wiring.js.map