ts/packages/providers/google/README.md
Google GenAI Provider for Composio SDK.
npm install @composio/core @composio/google @google/genai
# or
yarn add @composio/core @composio/google @google/genai
# or
pnpm add @composio/core @composio/google @google/genai
Required environment variables:
COMPOSIO_API_KEY: Your Composio API keyGEMINI_API_KEY: Your Google AI API keyOptional environment variables:
GOOGLE_PROJECT_ID: Your Google Cloud project ID (for custom deployments)GOOGLE_LOCATION: Your Google Cloud location (for custom deployments)import { Composio } from '@composio/core';
import { GoogleProvider } from '@composio/google';
import { GoogleGenerativeAI } from '@google/genai';
// Initialize Google GenAI
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
// Initialize Composio with Google provider
const composio = new Composio({
apiKey: process.env.COMPOSIO_API_KEY,
provider: new GoogleProvider(),
});
// Get available tools
const tools = await composio.tools.get('user123', {
toolkits: ['gmail', 'calendar'],
limit: 10,
});
Check out our complete example implementations:
The GoogleProvider class extends BaseNonAgenticProvider and provides Google GenAI-specific functionality.
wrapTool(tool: Tool): GoogleToolWraps a Composio tool in the Google GenAI function declaration format.
const wrappedTool = provider.wrapTool(composioTool);
wrapTools(tools: Tool[]): GoogleGenAIToolCollectionWraps multiple Composio tools in the Google GenAI function declaration format.
const wrappedTools = provider.wrapTools(composioTools);
executeToolCall(userId: string, tool: GoogleGenAIFunctionCall, options?: ExecuteToolFnOptions, modifiers?: ExecuteToolModifiers): Promise<string>Executes a tool call from Google GenAI and returns the result as a JSON string.
const result = await provider.executeToolCall('user123', functionCall, options, modifiers);
interface GoogleGenAIFunctionCall {
name: string;
args: Record<string, unknown>;
}
type GoogleTool = {
name: string;
description: string;
parameters: Schema;
};
type GoogleGenAIToolCollection = GoogleTool[];
We welcome contributions! Please see our Contributing Guide for more details.
ISC License
For support, please visit our Documentation or join our Discord Community.