Google GenAI Provider for Composio SDK.
- Google GenAI Integration: Seamless integration with Google's Generative AI models (Gemini)
- Function Calling Support: Convert Composio tools to Google GenAI function declarations
- Type Safety: Full TypeScript support with proper type definitions
- Execution Modifiers: Support for transforming tool inputs and outputs
- Flexible Authentication: Support for custom authentication parameters
- Streaming Support: First-class support for streaming responses
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 key -
GEMINI_API_KEY
: Your Google AI API key
Optional 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.
Wraps a Composio tool in the Google GenAI function declaration format.
const wrappedTool = provider.wrapTool(composioTool);
Wraps 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.