Skip to main content
Glama

Activepieces MCP Server

by eldoonreval
generate-image.tsβ€’3.04 kB
import { aiProps } from '@activepieces/pieces-common'; import { createAction, Property } from '@activepieces/pieces-framework'; import { createAIProvider, SUPPORTED_AI_PROVIDERS } from '@activepieces/shared'; import { ImageModel } from 'ai'; import { experimental_generateImage as generateImage } from 'ai'; export const generateImageAction = createAction({ name: 'generateImage', displayName: 'Generate Image', description: '', props: { provider: aiProps({ modelType: 'image' }).provider, model: aiProps({ modelType: 'image' }).model, prompt: Property.LongText({ displayName: 'Prompt', required: true, }), advancedOptions: aiProps({ modelType: 'image' }).advancedOptions, resolution: Property.Dropdown({ displayName: 'Resolution', description: 'The resolution to generate the image in.', required: true, refreshers: ['model'], defaultValue: '1024x1024', options: async (propsValue) => { const model = propsValue['model'] as ImageModel; let options = [ { label: '1024x1024', value: '1024x1024', }, { label: '512x512', value: '512x512', }, { label: '256x256', value: '256x256', }, ]; if (model.modelId == 'dall-e-3') options = [ { label: '1024x1024', value: '1024x1024', }, { label: '1024x1792', value: '1024x1792', }, { label: '1792x1024', value: '1792x1024', }, ]; return { options: options, }; }, }), }, async run(context) { const providerName = context.propsValue.provider as string; const modelInstance = context.propsValue.model as ImageModel; const providerConfig = SUPPORTED_AI_PROVIDERS.find(p => p.provider === providerName); if (!providerConfig) { throw new Error(`Provider ${providerName} not found`); } const baseURL = `${context.server.apiUrl}v1/ai-providers/proxy/${providerName}`; const engineToken = context.server.token; const provider = createAIProvider({ providerName, modelInstance, apiKey: engineToken, baseURL, }); const response = await generateImage({ model: provider, prompt: context.propsValue.prompt, size: context.propsValue.resolution as `${number}x${number}`, providerOptions: { ...context.propsValue.advancedOptions, }, headers: { 'Authorization': `Bearer ${engineToken}`, }, }); if (response.image.base64) { return context.files.write({ data: Buffer.from(response.image.base64, 'base64'), fileName: 'image.png', }); } else { return context.files.write({ data: Buffer.from(response.image.uint8Array), fileName: 'image.png', }); } }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eldoonreval/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server