Skip to main content
Glama

mcp-google-sheets

get-site.ts3.24 kB
import { createAction, Property, OAuth2PropertyValue } from "@activepieces/pieces-framework"; import { httpClient, HttpMethod } from "@activepieces/pieces-common"; export const getSite = createAction({ name: "get_site", displayName: "Get Site", description: "Get a specified site. Note: Environment variable keys and values have moved from build_settings.env and repo.env to a new endpoint. Please use getEnvVars to retrieve site environment variables.", props: { siteId: Property.Dropdown({ displayName: "Site", description: "Select the site to retrieve information for", required: true, refreshers: ['auth'], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: "Connect your account first", options: [], }; } const authentication = auth as OAuth2PropertyValue; if (!authentication.access_token) { return { disabled: true, placeholder: "Access token is required", options: [], }; } try { const response = await httpClient.sendRequest({ method: HttpMethod.GET, url: "https://api.netlify.com/api/v1/sites?per_page=50", headers: { "Authorization": `Bearer ${authentication.access_token}`, "Content-Type": "application/json", }, }); if (response.status === 200) { const sites = response.body as any[]; return { disabled: false, options: sites.map((site) => ({ label: `${site.name} (${site.url})`, value: site.id, })), }; } else { return { disabled: true, placeholder: `Failed to fetch sites: ${response.status}`, options: [], }; } } catch (error) { return { disabled: true, placeholder: "Failed to fetch sites", options: [], }; } }, }), }, async run(context) { const { siteId } = context.propsValue; if (!context.auth) { throw new Error("Authentication is required"); } const auth = context.auth as OAuth2PropertyValue; if (!auth.access_token) { throw new Error("Access token is required"); } const response = await httpClient.sendRequest({ method: HttpMethod.GET, url: `https://api.netlify.com/api/v1/sites/${siteId}`, headers: { "Authorization": `Bearer ${auth.access_token}`, "Content-Type": "application/json", }, }); if (response.status === 200) { return response.body; } if (response.status === 404) { throw new Error(`Site not found: ${siteId}. Please check the site ID or domain.`); } if (response.status === 401) { throw new Error("Unauthorized. Please check your access token."); } if (response.status === 403) { throw new Error("Forbidden. You don't have permission to access this site."); } throw new Error(`Failed to get site: ${response.status}`); }, });

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/activepieces/activepieces'

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