Skip to main content
Glama

mcp-google-sheets

client.ts2.22 kB
import { httpClient, HttpMethod, HttpRequest, HttpMessageBody, QueryParams, } from '@activepieces/pieces-common'; export type BrowseAiAuthProps = { apiKey: string; }; export type BrowseAiApiCallParams = { method: HttpMethod; resourceUri: string; query?: Record<string, string | number | string[] | undefined>; body?: unknown; auth: BrowseAiAuthProps; }; export async function browseAiApiCall<T extends HttpMessageBody>({ method, resourceUri, query, body, auth, }: BrowseAiApiCallParams): Promise<T> { const { apiKey } = auth; if (!apiKey) { throw new Error('Browse AI API key is required for authentication'); } const queryParams: QueryParams = {}; if (query) { for (const [key, value] of Object.entries(query)) { if (value !== null && value !== undefined) { queryParams[key] = String(value); } } } const baseUrl = `https://api.browse.ai/v2`; const request: HttpRequest = { method, url: `${baseUrl}${resourceUri}`, headers: { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json', }, queryParams, body, }; try { const response = await httpClient.sendRequest<T>(request); return response.body; } catch (error: any) { const statusCode = error.response?.status; const errorData = error.response?.data; switch (statusCode) { case 400: throw new Error(`Bad Request: ${errorData?.message || 'Invalid parameters'}`); case 401: throw new Error('Unauthorized: Invalid API key. Please check your credentials.'); case 403: throw new Error('Forbidden: You do not have permission to access this resource.'); case 404: throw new Error('Not Found: The requested resource does not exist.'); case 429: throw new Error('Rate Limit Exceeded: Please slow down your requests.'); case 500: throw new Error('Internal Server Error: Something went wrong on Browse AI’s side.'); default: { const message = errorData?.message || error.message || 'Unknown error'; throw new Error(`Browse AI API Error (${statusCode || 'Unknown'}): ${message}`); } } } }

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