integrate-sdk 0.7.53 → 0.7.56

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 (71) hide show
  1. package/dist/ai/anthropic.d.ts +16 -117
  2. package/dist/ai/anthropic.d.ts.map +1 -1
  3. package/dist/ai/anthropic.js +11 -17
  4. package/dist/ai/google.d.ts +0 -63
  5. package/dist/ai/google.d.ts.map +1 -1
  6. package/dist/ai/google.js +11 -25
  7. package/dist/ai/index.d.ts +5 -71
  8. package/dist/ai/index.d.ts.map +1 -1
  9. package/dist/ai/index.js +33 -241
  10. package/dist/ai/openai.d.ts +0 -92
  11. package/dist/ai/openai.d.ts.map +1 -1
  12. package/dist/ai/openai.js +7 -17
  13. package/dist/ai/vercel-ai.d.ts +0 -66
  14. package/dist/ai/vercel-ai.d.ts.map +1 -1
  15. package/dist/ai/vercel-ai.js +7 -12
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -1
  19. package/dist/server.d.ts +1 -1
  20. package/dist/server.d.ts.map +1 -1
  21. package/dist/server.js +676 -787
  22. package/dist/src/ai/anthropic.d.ts +16 -117
  23. package/dist/src/ai/anthropic.d.ts.map +1 -1
  24. package/dist/src/ai/google.d.ts +0 -63
  25. package/dist/src/ai/google.d.ts.map +1 -1
  26. package/dist/src/ai/index.d.ts +5 -71
  27. package/dist/src/ai/index.d.ts.map +1 -1
  28. package/dist/src/ai/openai.d.ts +0 -92
  29. package/dist/src/ai/openai.d.ts.map +1 -1
  30. package/dist/src/ai/vercel-ai.d.ts +0 -66
  31. package/dist/src/ai/vercel-ai.d.ts.map +1 -1
  32. package/dist/src/server.d.ts +5 -0
  33. package/dist/src/server.d.ts.map +1 -1
  34. package/package.json +4 -36
  35. package/server.ts +18 -41
  36. package/dist/ai/cloudflare.d.ts +0 -158
  37. package/dist/ai/cloudflare.d.ts.map +0 -1
  38. package/dist/ai/cloudflare.js +0 -4249
  39. package/dist/ai/langchain.d.ts +0 -139
  40. package/dist/ai/langchain.d.ts.map +0 -1
  41. package/dist/ai/langchain.js +0 -4237
  42. package/dist/ai/llamaindex.d.ts +0 -125
  43. package/dist/ai/llamaindex.d.ts.map +0 -1
  44. package/dist/ai/llamaindex.js +0 -4236
  45. package/dist/ai/mastra.d.ts +0 -138
  46. package/dist/ai/mastra.d.ts.map +0 -1
  47. package/dist/ai/mastra.js +0 -4240
  48. package/dist/src/ai/cloudflare.d.ts +0 -158
  49. package/dist/src/ai/cloudflare.d.ts.map +0 -1
  50. package/dist/src/ai/langchain.d.ts +0 -139
  51. package/dist/src/ai/langchain.d.ts.map +0 -1
  52. package/dist/src/ai/llamaindex.d.ts +0 -125
  53. package/dist/src/ai/llamaindex.d.ts.map +0 -1
  54. package/dist/src/ai/mastra.d.ts +0 -138
  55. package/dist/src/ai/mastra.d.ts.map +0 -1
  56. package/dist/src/integrations/vercel-ai.d.ts +0 -127
  57. package/dist/src/integrations/vercel-ai.d.ts.map +0 -1
  58. package/dist/src/plugins/generic.d.ts +0 -99
  59. package/dist/src/plugins/generic.d.ts.map +0 -1
  60. package/dist/src/plugins/github-client.d.ts +0 -320
  61. package/dist/src/plugins/github-client.d.ts.map +0 -1
  62. package/dist/src/plugins/github.d.ts +0 -89
  63. package/dist/src/plugins/github.d.ts.map +0 -1
  64. package/dist/src/plugins/gmail-client.d.ts +0 -106
  65. package/dist/src/plugins/gmail-client.d.ts.map +0 -1
  66. package/dist/src/plugins/gmail.d.ts +0 -87
  67. package/dist/src/plugins/gmail.d.ts.map +0 -1
  68. package/dist/src/plugins/server-client.d.ts +0 -18
  69. package/dist/src/plugins/server-client.d.ts.map +0 -1
  70. package/dist/src/plugins/types.d.ts +0 -70
  71. package/dist/src/plugins/types.d.ts.map +0 -1
package/dist/ai/index.js CHANGED
@@ -4214,24 +4214,17 @@ function convertMCPToolToAnthropic(mcpTool, _client, _options) {
4214
4214
  }
4215
4215
  };
4216
4216
  }
4217
- function convertMCPToolsToAnthropic(client, options) {
4218
- const mcpTools = client.getEnabledTools();
4219
- return mcpTools.map((mcpTool) => convertMCPToolToAnthropic(mcpTool, client, options));
4220
- }
4221
- async function executeAnthropicToolCall(client, toolUse, options) {
4222
- const result = await executeToolWithToken(client, toolUse.name, toolUse.input, options);
4223
- return JSON.stringify(result);
4224
- }
4225
4217
  async function handleAnthropicToolCalls(client, messageContent, options) {
4226
4218
  const toolResults = [];
4227
4219
  const toolUseBlocks = messageContent.filter((block) => block.type === "tool_use" && ("id" in block) && ("name" in block) && ("input" in block));
4228
4220
  for (const toolUse of toolUseBlocks) {
4229
4221
  try {
4230
- const result = await executeAnthropicToolCall(client, toolUse, options);
4222
+ const result = await executeToolWithToken(client, toolUse.name, toolUse.input, options);
4223
+ const resultString = JSON.stringify(result);
4231
4224
  toolResults.push({
4232
4225
  type: "tool_result",
4233
4226
  tool_use_id: toolUse.id,
4234
- content: result
4227
+ content: resultString
4235
4228
  });
4236
4229
  } catch (error) {
4237
4230
  toolResults.push({
@@ -4254,7 +4247,8 @@ async function getAnthropicTools(client, options) {
4254
4247
  } catch {}
4255
4248
  }
4256
4249
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4257
- return convertMCPToolsToAnthropic(client, finalOptions);
4250
+ const mcpTools = client.getEnabledTools();
4251
+ return mcpTools.map((mcpTool) => convertMCPToolToAnthropic(mcpTool, client, finalOptions));
4258
4252
  }
4259
4253
  async function handleAnthropicMessage(client, message, options) {
4260
4254
  let providerTokens = options?.providerTokens;
@@ -4266,9 +4260,13 @@ async function handleAnthropicMessage(client, message, options) {
4266
4260
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4267
4261
  const toolResults = await handleAnthropicToolCalls(client, message.content, finalOptions);
4268
4262
  if (toolResults.length === 0) {
4269
- return [];
4263
+ return message;
4270
4264
  }
4271
4265
  return [
4266
+ {
4267
+ role: message.role,
4268
+ content: message.content
4269
+ },
4272
4270
  {
4273
4271
  role: "user",
4274
4272
  content: toolResults
@@ -4276,46 +4274,6 @@ async function handleAnthropicMessage(client, message, options) {
4276
4274
  ];
4277
4275
  }
4278
4276
 
4279
- // cloudflare.ts
4280
- function convertMCPToolToCloudflare(mcpTool, _client, _options) {
4281
- return {
4282
- type: "function",
4283
- function: {
4284
- name: mcpTool.name,
4285
- description: mcpTool.description || `Execute ${mcpTool.name}`,
4286
- parameters: {
4287
- type: "object",
4288
- properties: mcpTool.inputSchema?.properties || {},
4289
- required: mcpTool.inputSchema?.required || []
4290
- }
4291
- }
4292
- };
4293
- }
4294
- function convertMCPToolsToCloudflare(client, options) {
4295
- const mcpTools = client.getEnabledTools();
4296
- const tools = {};
4297
- for (const mcpTool of mcpTools) {
4298
- tools[mcpTool.name] = convertMCPToolToCloudflare(mcpTool, client, options);
4299
- }
4300
- return tools;
4301
- }
4302
- async function executeCloudflareToolCall(client, toolCall, options) {
4303
- const args = typeof toolCall.arguments === "string" ? JSON.parse(toolCall.arguments) : toolCall.arguments;
4304
- const result = await executeToolWithToken(client, toolCall.name, args, options);
4305
- return JSON.stringify(result);
4306
- }
4307
- async function getCloudflareTools(client, options) {
4308
- await ensureClientConnected(client);
4309
- let providerTokens = options?.providerTokens;
4310
- if (!providerTokens) {
4311
- try {
4312
- providerTokens = await getProviderTokens();
4313
- } catch {}
4314
- }
4315
- const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4316
- return convertMCPToolsToCloudflare(client, finalOptions);
4317
- }
4318
-
4319
4277
  // google.ts
4320
4278
  async function getGoogleType() {
4321
4279
  try {
@@ -4385,25 +4343,6 @@ async function convertMCPToolToGoogle(mcpTool, _client, _options) {
4385
4343
  parameters
4386
4344
  };
4387
4345
  }
4388
- async function convertMCPToolsToGoogle(client, options) {
4389
- const mcpTools = client.getEnabledTools();
4390
- return await Promise.all(mcpTools.map((mcpTool) => convertMCPToolToGoogle(mcpTool, client, options)));
4391
- }
4392
- async function executeGoogleFunctionCall(client, functionCall, options) {
4393
- if (!functionCall?.name) {
4394
- throw new Error("Function call must have a name");
4395
- }
4396
- let providerTokens = options?.providerTokens;
4397
- if (!providerTokens) {
4398
- try {
4399
- providerTokens = await getProviderTokens();
4400
- } catch {}
4401
- }
4402
- const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4403
- const args = functionCall.args || {};
4404
- const result = await executeToolWithToken(client, functionCall.name, args, finalOptions);
4405
- return JSON.stringify(result);
4406
- }
4407
4346
  async function executeGoogleFunctionCalls(client, functionCalls, options) {
4408
4347
  if (!functionCalls || functionCalls.length === 0) {
4409
4348
  return [];
@@ -4415,7 +4354,14 @@ async function executeGoogleFunctionCalls(client, functionCalls, options) {
4415
4354
  } catch {}
4416
4355
  }
4417
4356
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4418
- const results = await Promise.all(functionCalls.map((call) => executeGoogleFunctionCall(client, call, finalOptions)));
4357
+ const results = await Promise.all(functionCalls.map(async (call) => {
4358
+ if (!call?.name) {
4359
+ throw new Error("Function call must have a name");
4360
+ }
4361
+ const args = call.args || {};
4362
+ const result = await executeToolWithToken(client, call.name, args, finalOptions);
4363
+ return JSON.stringify(result);
4364
+ }));
4419
4365
  return results;
4420
4366
  }
4421
4367
  async function getGoogleTools(client, options) {
@@ -4427,7 +4373,8 @@ async function getGoogleTools(client, options) {
4427
4373
  } catch {}
4428
4374
  }
4429
4375
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4430
- return convertMCPToolsToGoogle(client, finalOptions);
4376
+ const mcpTools = client.getEnabledTools();
4377
+ return await Promise.all(mcpTools.map((mcpTool) => convertMCPToolToGoogle(mcpTool, client, finalOptions)));
4431
4378
  }
4432
4379
 
4433
4380
  // vercel-ai.ts
@@ -4443,14 +4390,6 @@ function convertMCPToolToVercelAI(mcpTool, client, options) {
4443
4390
  }
4444
4391
  };
4445
4392
  }
4446
- function convertMCPToolsToVercelAI(client, options) {
4447
- const mcpTools = client.getEnabledTools();
4448
- const vercelTools = {};
4449
- for (const mcpTool of mcpTools) {
4450
- vercelTools[mcpTool.name] = convertMCPToolToVercelAI(mcpTool, client, options);
4451
- }
4452
- return vercelTools;
4453
- }
4454
4393
  async function getVercelAITools(client, options) {
4455
4394
  await ensureClientConnected(client);
4456
4395
  let providerTokens = options?.providerTokens;
@@ -4460,7 +4399,12 @@ async function getVercelAITools(client, options) {
4460
4399
  } catch {}
4461
4400
  }
4462
4401
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4463
- return convertMCPToolsToVercelAI(client, finalOptions);
4402
+ const mcpTools = client.getEnabledTools();
4403
+ const vercelTools = {};
4404
+ for (const mcpTool of mcpTools) {
4405
+ vercelTools[mcpTool.name] = convertMCPToolToVercelAI(mcpTool, client, finalOptions);
4406
+ }
4407
+ return vercelTools;
4464
4408
  }
4465
4409
 
4466
4410
  // openai.ts
@@ -4474,15 +4418,6 @@ function convertMCPToolToOpenAI(mcpTool, _client, options) {
4474
4418
  description: mcpTool.description || null
4475
4419
  };
4476
4420
  }
4477
- function convertMCPToolsToOpenAI(client, options) {
4478
- const mcpTools = client.getEnabledTools();
4479
- return mcpTools.map((mcpTool) => convertMCPToolToOpenAI(mcpTool, client, options));
4480
- }
4481
- async function executeOpenAIToolCall(client, toolCall, options) {
4482
- const args = JSON.parse(toolCall.arguments);
4483
- const result = await executeToolWithToken(client, toolCall.name, args, options);
4484
- return JSON.stringify(result);
4485
- }
4486
4421
  async function getOpenAITools(client, options) {
4487
4422
  await ensureClientConnected(client);
4488
4423
  let providerTokens = options?.providerTokens;
@@ -4492,7 +4427,8 @@ async function getOpenAITools(client, options) {
4492
4427
  } catch {}
4493
4428
  }
4494
4429
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4495
- return convertMCPToolsToOpenAI(client, finalOptions);
4430
+ const mcpTools = client.getEnabledTools();
4431
+ return mcpTools.map((mcpTool) => convertMCPToolToOpenAI(mcpTool, client, finalOptions));
4496
4432
  }
4497
4433
  async function handleOpenAIToolCalls(client, toolCalls, options) {
4498
4434
  const toolOutputs = [];
@@ -4504,11 +4440,13 @@ async function handleOpenAIToolCalls(client, toolCalls, options) {
4504
4440
  arguments: output.arguments
4505
4441
  };
4506
4442
  try {
4507
- const result = await executeOpenAIToolCall(client, toolCall, options);
4443
+ const args = JSON.parse(toolCall.arguments);
4444
+ const result = await executeToolWithToken(client, toolCall.name, args, options);
4445
+ const resultString = JSON.stringify(result);
4508
4446
  toolOutputs.push({
4509
4447
  call_id: output.call_id ?? output.id ?? "",
4510
4448
  type: "function_call_output",
4511
- output: result,
4449
+ output: resultString,
4512
4450
  status: "completed"
4513
4451
  });
4514
4452
  } catch (error) {
@@ -4537,158 +4475,12 @@ async function handleOpenAIResponse(client, response, options) {
4537
4475
  }
4538
4476
  return handleOpenAIToolCalls(client, functionCalls, finalOptions);
4539
4477
  }
4540
-
4541
- // langchain.ts
4542
- function convertMCPToolToLangChain(mcpTool, client, options) {
4543
- return {
4544
- name: mcpTool.name,
4545
- description: mcpTool.description || `Execute ${mcpTool.name}`,
4546
- schema: jsonSchemaToZod(mcpTool.inputSchema),
4547
- func: async (...args) => {
4548
- const input = args[0];
4549
- const result = await executeToolWithToken(client, mcpTool.name, input, options);
4550
- return JSON.stringify(result);
4551
- }
4552
- };
4553
- }
4554
- function convertMCPToolsToLangChain(client, options) {
4555
- const mcpTools = client.getEnabledTools();
4556
- return mcpTools.map((mcpTool) => convertMCPToolToLangChain(mcpTool, client, options));
4557
- }
4558
- async function getLangChainTools(client, options) {
4559
- await ensureClientConnected(client);
4560
- let providerTokens = options?.providerTokens;
4561
- if (!providerTokens) {
4562
- try {
4563
- providerTokens = await getProviderTokens();
4564
- } catch {}
4565
- }
4566
- const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4567
- return convertMCPToolsToLangChain(client, finalOptions);
4568
- }
4569
-
4570
- // llamaindex.ts
4571
- function convertMCPToolToLlamaIndex(mcpTool, client, options) {
4572
- return {
4573
- name: mcpTool.name,
4574
- description: mcpTool.description || `Execute ${mcpTool.name}`,
4575
- parameters: jsonSchemaToZod(mcpTool.inputSchema),
4576
- execute: async (input) => {
4577
- const result = await executeToolWithToken(client, mcpTool.name, input, options);
4578
- return JSON.stringify(result);
4579
- }
4580
- };
4581
- }
4582
- function convertMCPToolsToLlamaIndex(client, options) {
4583
- const mcpTools = client.getEnabledTools();
4584
- return mcpTools.map((mcpTool) => convertMCPToolToLlamaIndex(mcpTool, client, options));
4585
- }
4586
- async function getLlamaIndexTools(client, options) {
4587
- await ensureClientConnected(client);
4588
- let providerTokens = options?.providerTokens;
4589
- if (!providerTokens) {
4590
- try {
4591
- providerTokens = await getProviderTokens();
4592
- } catch {}
4593
- }
4594
- const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4595
- return convertMCPToolsToLlamaIndex(client, finalOptions);
4596
- }
4597
-
4598
- // mastra.ts
4599
- function convertMCPToolToMastra(mcpTool, client, options) {
4600
- return {
4601
- id: mcpTool.name,
4602
- description: mcpTool.description || `Execute ${mcpTool.name}`,
4603
- inputSchema: jsonSchemaToZod(mcpTool.inputSchema),
4604
- execute: async ({ context }) => {
4605
- const result = await executeToolWithToken(client, mcpTool.name, context, options);
4606
- return result;
4607
- }
4608
- };
4609
- }
4610
- function convertMCPToolsToMastra(client, options) {
4611
- const mcpTools = client.getEnabledTools();
4612
- const tools = {};
4613
- for (const mcpTool of mcpTools) {
4614
- tools[mcpTool.name] = convertMCPToolToMastra(mcpTool, client, options);
4615
- }
4616
- return tools;
4617
- }
4618
- async function getMastraTools(client, options) {
4619
- await ensureClientConnected(client);
4620
- let providerTokens = options?.providerTokens;
4621
- if (!providerTokens) {
4622
- try {
4623
- providerTokens = await getProviderTokens();
4624
- } catch {}
4625
- }
4626
- const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4627
- return convertMCPToolsToMastra(client, finalOptions);
4628
- }
4629
- // index.ts
4630
- async function getAITools(client, provider, options) {
4631
- switch (provider) {
4632
- case "vercel-ai":
4633
- return await getVercelAITools(client, options);
4634
- case "openai":
4635
- return await getOpenAITools(client, options);
4636
- case "anthropic":
4637
- return await getAnthropicTools(client, options);
4638
- case "google":
4639
- return await getGoogleTools(client, options);
4640
- case "cloudflare":
4641
- return await getCloudflareTools(client, options);
4642
- case "langchain":
4643
- return await getLangChainTools(client, options);
4644
- case "llamaindex":
4645
- return await getLlamaIndexTools(client, options);
4646
- case "mastra":
4647
- return await getMastraTools(client, options);
4648
- default:
4649
- throw new Error(`Unsupported AI provider: ${provider}`);
4650
- }
4651
- }
4652
4478
  export {
4653
- tryGetProviderTokens,
4654
- jsonSchemaToZod,
4655
- jsonSchemaPropertyToZod,
4656
- handleOpenAIToolCalls,
4657
4479
  handleOpenAIResponse,
4658
- handleAnthropicToolCalls,
4659
4480
  handleAnthropicMessage,
4660
4481
  getVercelAITools,
4661
- getProviderTokens,
4662
- getProviderForTool,
4663
4482
  getOpenAITools,
4664
- getMastraTools,
4665
- getLlamaIndexTools,
4666
- getLangChainTools,
4667
4483
  getGoogleTools,
4668
- getCloudflareTools,
4669
4484
  getAnthropicTools,
4670
- getAITools,
4671
- executeToolWithToken,
4672
- executeOpenAIToolCall,
4673
- executeGoogleFunctionCalls,
4674
- executeGoogleFunctionCall,
4675
- executeCloudflareToolCall,
4676
- executeAnthropicToolCall,
4677
- ensureClientConnected,
4678
- convertMCPToolsToVercelAI,
4679
- convertMCPToolsToOpenAI,
4680
- convertMCPToolsToMastra,
4681
- convertMCPToolsToLlamaIndex,
4682
- convertMCPToolsToLangChain,
4683
- convertMCPToolsToGoogle,
4684
- convertMCPToolsToCloudflare,
4685
- convertMCPToolsToAnthropic,
4686
- convertMCPToolToVercelAI,
4687
- convertMCPToolToOpenAI,
4688
- convertMCPToolToMastra,
4689
- convertMCPToolToLlamaIndex,
4690
- convertMCPToolToLangChain,
4691
- convertMCPToolToGoogle,
4692
- convertMCPToolToCloudflare,
4693
- convertMCPToolToAnthropic
4485
+ executeGoogleFunctionCalls
4694
4486
  };
@@ -4,7 +4,6 @@
4
4
  * Helper functions to convert MCP tools to OpenAI Responses API format
5
5
  */
6
6
  import type { MCPClient } from "../client.js";
7
- import type { MCPTool } from "../protocol/messages.js";
8
7
  import { type AIToolsOptions } from "./utils.js";
9
8
  import type { OpenAI } from "openai";
10
9
  /**
@@ -30,61 +29,6 @@ export interface OpenAIToolsOptions extends AIToolsOptions {
30
29
  */
31
30
  strict?: boolean;
32
31
  }
33
- /**
34
- * Convert a single MCP tool to OpenAI Responses API format
35
- *
36
- * @param mcpTool - The MCP tool definition
37
- * @param client - The MCP client instance (used for executing the tool)
38
- * @param options - Optional configuration including provider tokens and strict mode
39
- * @returns OpenAI compatible tool definition
40
- *
41
- * @example
42
- * ```typescript
43
- * const openaiTool = convertMCPToolToOpenAI(mcpTool, client, { strict: true });
44
- * ```
45
- */
46
- export declare function convertMCPToolToOpenAI(mcpTool: MCPTool, _client: MCPClient<any>, options?: OpenAIToolsOptions): OpenAITool;
47
- /**
48
- * Convert all enabled MCP tools to OpenAI Responses API format
49
- *
50
- * @param client - The MCP client instance (must be connected)
51
- * @param options - Optional configuration including provider tokens and strict mode
52
- * @returns Array of OpenAI compatible tool definitions
53
- *
54
- * @example
55
- * ```typescript
56
- * // Client-side usage
57
- * const tools = convertMCPToolsToOpenAI(mcpClient);
58
- *
59
- * // Server-side with provider tokens
60
- * const tools = convertMCPToolsToOpenAI(serverClient, {
61
- * providerTokens: { github: 'ghp_...', gmail: 'ya29...' }
62
- * });
63
- * ```
64
- */
65
- export declare function convertMCPToolsToOpenAI(client: MCPClient<any>, options?: OpenAIToolsOptions): OpenAITool[];
66
- /**
67
- * Execute a tool call from OpenAI's response
68
- *
69
- * @param client - The MCP client instance
70
- * @param toolCall - The tool call from OpenAI response
71
- * @param options - Optional configuration including provider tokens
72
- * @returns Tool execution result as JSON string
73
- *
74
- * @example
75
- * ```typescript
76
- * const result = await executeOpenAIToolCall(client, {
77
- * id: 'call_123',
78
- * name: 'github_create_issue',
79
- * arguments: '{"owner":"user","repo":"repo","title":"Bug"}'
80
- * }, { providerTokens });
81
- * ```
82
- */
83
- export declare function executeOpenAIToolCall(client: MCPClient<any>, toolCall: {
84
- id: string;
85
- name: string;
86
- arguments: string;
87
- }, options?: OpenAIToolsOptions): Promise<string>;
88
32
  /**
89
33
  * Get tools in a format compatible with OpenAI Responses API
90
34
  *
@@ -125,42 +69,6 @@ export declare function executeOpenAIToolCall(client: MCPClient<any>, toolCall:
125
69
  * ```
126
70
  */
127
71
  export declare function getOpenAITools(client: MCPClient<any>, options?: OpenAIToolsOptions): Promise<OpenAITool[]>;
128
- /**
129
- * Handle multiple tool calls from OpenAI's response output
130
- *
131
- * This function processes all function_call items from the response output,
132
- * executes each tool call, and returns formatted results for the next request.
133
- *
134
- * @param client - The MCP client instance
135
- * @param toolCalls - Array of output items from OpenAI response (filters for function_call type)
136
- * @param options - Optional configuration including provider tokens
137
- * @returns Array of function call outputs to send back to OpenAI
138
- *
139
- * @example
140
- * ```typescript
141
- * // Handle tool calls from a response
142
- * const response = await openai.responses.create({
143
- * model: 'gpt-4o-2024-11-20',
144
- * input: 'Create a GitHub issue',
145
- * tools: await getOpenAITools(serverClient),
146
- * });
147
- *
148
- * // Execute the tool calls and get outputs
149
- * const toolOutputs = await handleOpenAIToolCalls(
150
- * serverClient,
151
- * response.output,
152
- * { providerTokens }
153
- * );
154
- *
155
- * // Continue the conversation with tool results
156
- * const nextResponse = await openai.responses.create({
157
- * model: 'gpt-4o-2024-11-20',
158
- * input: toolOutputs,
159
- * tools: await getOpenAITools(serverClient),
160
- * });
161
- * ```
162
- */
163
- export declare function handleOpenAIToolCalls(client: MCPClient<any>, toolCalls: OpenAI.Responses.ResponseOutputItem[], options?: OpenAIToolsOptions): Promise<OpenAI.Responses.ResponseInputItem.FunctionCallOutput[]>;
164
72
  /**
165
73
  * Handle an entire OpenAI Response object
166
74
  *
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/ai/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EACvB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAUZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CAGd;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IACR,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAevB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAChD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CA+BlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,EAChE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyB3H"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/ai/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAgBvB;AA4ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,EAChE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyB3H"}
package/dist/ai/openai.js CHANGED
@@ -4213,15 +4213,6 @@ function convertMCPToolToOpenAI(mcpTool, _client, options) {
4213
4213
  description: mcpTool.description || null
4214
4214
  };
4215
4215
  }
4216
- function convertMCPToolsToOpenAI(client, options) {
4217
- const mcpTools = client.getEnabledTools();
4218
- return mcpTools.map((mcpTool) => convertMCPToolToOpenAI(mcpTool, client, options));
4219
- }
4220
- async function executeOpenAIToolCall(client, toolCall, options) {
4221
- const args = JSON.parse(toolCall.arguments);
4222
- const result = await executeToolWithToken(client, toolCall.name, args, options);
4223
- return JSON.stringify(result);
4224
- }
4225
4216
  async function getOpenAITools(client, options) {
4226
4217
  await ensureClientConnected(client);
4227
4218
  let providerTokens = options?.providerTokens;
@@ -4231,7 +4222,8 @@ async function getOpenAITools(client, options) {
4231
4222
  } catch {}
4232
4223
  }
4233
4224
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4234
- return convertMCPToolsToOpenAI(client, finalOptions);
4225
+ const mcpTools = client.getEnabledTools();
4226
+ return mcpTools.map((mcpTool) => convertMCPToolToOpenAI(mcpTool, client, finalOptions));
4235
4227
  }
4236
4228
  async function handleOpenAIToolCalls(client, toolCalls, options) {
4237
4229
  const toolOutputs = [];
@@ -4243,11 +4235,13 @@ async function handleOpenAIToolCalls(client, toolCalls, options) {
4243
4235
  arguments: output.arguments
4244
4236
  };
4245
4237
  try {
4246
- const result = await executeOpenAIToolCall(client, toolCall, options);
4238
+ const args = JSON.parse(toolCall.arguments);
4239
+ const result = await executeToolWithToken(client, toolCall.name, args, options);
4240
+ const resultString = JSON.stringify(result);
4247
4241
  toolOutputs.push({
4248
4242
  call_id: output.call_id ?? output.id ?? "",
4249
4243
  type: "function_call_output",
4250
- output: result,
4244
+ output: resultString,
4251
4245
  status: "completed"
4252
4246
  });
4253
4247
  } catch (error) {
@@ -4277,10 +4271,6 @@ async function handleOpenAIResponse(client, response, options) {
4277
4271
  return handleOpenAIToolCalls(client, functionCalls, finalOptions);
4278
4272
  }
4279
4273
  export {
4280
- handleOpenAIToolCalls,
4281
4274
  handleOpenAIResponse,
4282
- getOpenAITools,
4283
- executeOpenAIToolCall,
4284
- convertMCPToolsToOpenAI,
4285
- convertMCPToolToOpenAI
4275
+ getOpenAITools
4286
4276
  };
@@ -5,7 +5,6 @@
5
5
  */
6
6
  import { z } from "zod";
7
7
  import type { MCPClient } from "../client.js";
8
- import type { MCPTool } from "../protocol/messages.js";
9
8
  import type { MCPContext } from "../config/types.js";
10
9
  import { type AIToolsOptions } from "./utils.js";
11
10
  /**
@@ -24,71 +23,6 @@ export interface VercelAIToolsOptions extends AIToolsOptions {
24
23
  /** User context for multi-tenant token storage */
25
24
  context?: MCPContext;
26
25
  }
27
- /**
28
- * Convert a single MCP tool to Vercel AI SDK format
29
- *
30
- * @param mcpTool - The MCP tool definition
31
- * @param client - The MCP client instance (used for executing the tool)
32
- * @param options - Optional configuration including provider tokens and context
33
- * @returns Vercel AI SDK compatible tool definition
34
- */
35
- export declare function convertMCPToolToVercelAI(mcpTool: MCPTool, client: MCPClient<any>, options?: VercelAIToolsOptions): VercelAITool;
36
- /**
37
- * Convert all enabled MCP tools to Vercel AI SDK v5 format
38
- *
39
- * @param client - The MCP client instance (must be connected)
40
- * @param options - Optional configuration including provider tokens for server-side usage
41
- * @returns Object mapping tool names to Vercel AI SDK v5 tool definitions (compatible with CoreTool from 'ai' package v5)
42
- *
43
- * @example
44
- * ```typescript
45
- * // Client-side usage
46
- * import { createMCPClient, githubIntegration } from 'integrate-sdk';
47
- * import { convertMCPToolsToVercelAI } from 'integrate-sdk/vercel-ai';
48
- * import { generateText } from 'ai';
49
- *
50
- * const mcpClient = createMCPClient({
51
- * integrations: [githubIntegration({ clientId: '...', clientSecret: '...' })],
52
- * });
53
- *
54
- * await mcpClient.connect();
55
- *
56
- * const tools = convertMCPToolsToVercelAI(mcpClient);
57
- *
58
- * const result = await generateText({
59
- * model: openai('gpt-5'),
60
- * prompt: 'Create a GitHub issue in my repo',
61
- * tools,
62
- * });
63
- * ```
64
- *
65
- * @example
66
- * ```typescript
67
- * // Server-side usage with token passing
68
- * import { createMCPServer, githubIntegration } from 'integrate-sdk/server';
69
- * import { convertMCPToolsToVercelAI } from 'integrate-sdk/vercel-ai';
70
- *
71
- * const { client: serverClient } = createMCPServer({
72
- * integrations: [githubIntegration({ clientId: '...', clientSecret: '...' })],
73
- * });
74
- *
75
- * // In your API route handler
76
- * export async function POST(req: Request) {
77
- * const providerTokens = JSON.parse(req.headers.get('x-integrate-tokens') || '{}');
78
- *
79
- * const tools = convertMCPToolsToVercelAI(serverClient, { providerTokens });
80
- *
81
- * const result = await generateText({
82
- * model: openai('gpt-4'),
83
- * prompt: 'Create a GitHub issue',
84
- * tools,
85
- * });
86
- *
87
- * return Response.json(result);
88
- * }
89
- * ```
90
- */
91
- export declare function convertMCPToolsToVercelAI(client: MCPClient<any>, options?: VercelAIToolsOptions): Record<string, any>;
92
26
  /**
93
27
  * Get tools in a format compatible with Vercel AI SDK v5's tools parameter
94
28
  *
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../../src/ai/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,YAAY,CAcd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,gCAkB/B"}
1
+ {"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../../src/ai/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,gCAyB/B"}
@@ -4215,14 +4215,6 @@ function convertMCPToolToVercelAI(mcpTool, client, options) {
4215
4215
  }
4216
4216
  };
4217
4217
  }
4218
- function convertMCPToolsToVercelAI(client, options) {
4219
- const mcpTools = client.getEnabledTools();
4220
- const vercelTools = {};
4221
- for (const mcpTool of mcpTools) {
4222
- vercelTools[mcpTool.name] = convertMCPToolToVercelAI(mcpTool, client, options);
4223
- }
4224
- return vercelTools;
4225
- }
4226
4218
  async function getVercelAITools(client, options) {
4227
4219
  await ensureClientConnected(client);
4228
4220
  let providerTokens = options?.providerTokens;
@@ -4232,10 +4224,13 @@ async function getVercelAITools(client, options) {
4232
4224
  } catch {}
4233
4225
  }
4234
4226
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4235
- return convertMCPToolsToVercelAI(client, finalOptions);
4227
+ const mcpTools = client.getEnabledTools();
4228
+ const vercelTools = {};
4229
+ for (const mcpTool of mcpTools) {
4230
+ vercelTools[mcpTool.name] = convertMCPToolToVercelAI(mcpTool, client, finalOptions);
4231
+ }
4232
+ return vercelTools;
4236
4233
  }
4237
4234
  export {
4238
- getVercelAITools,
4239
- convertMCPToolsToVercelAI,
4240
- convertMCPToolToVercelAI
4235
+ getVercelAITools
4241
4236
  };
package/dist/index.d.ts CHANGED
@@ -52,5 +52,5 @@ export * from './src/index.js';
52
52
  * const messages = await client.gmail.listMessages({});
53
53
  * ```
54
54
  */
55
- export declare const client: import("./index.js").MCPClient<(import("./index.js").MCPIntegration<"github"> | import("./index.js").MCPIntegration<"gmail">)[]>;
55
+ export declare const client: import("./index.js").MCPClient<(import("./index.js").MCPIntegration<"github"> | import("./index.js").MCPIntegration<"gmail"> | import("./index.js").MCPIntegration<"notion">)[]>;
56
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,cAAc,gBAAgB,CAAC;AAO/B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,MAAM,kIAKjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,cAAc,gBAAgB,CAAC;AAQ/B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,MAAM,kLAMjB,CAAC"}