Skip to main content
Glama

BlazeSQL MCP Server

by arjshiv
blazesql.ts3.19 kB
import fetch from 'node-fetch'; // Using node-fetch for compatibility, could use native fetch in newer Node versions const BLAZE_API_ENDPOINT = 'https://api.blazesql.com/natural_language_query_api'; // --- Interfaces based on BlazeSQL Docs --- export interface BlazeSQLRequest { db_id: string; natural_language_request: string; api_key: string; } export interface BlazeSQLSuccessResponse { success: true; message: string; query: string; agent_response: string; data_result: { [columnName: string]: (string | number | boolean | null)[]; }; } export interface BlazeSQLErrorResponse { success: false; error: string; error_code: number; } export type BlazeSQLResponse = BlazeSQLSuccessResponse | BlazeSQLErrorResponse; // --- API Interaction Function --- /** * Sends a natural language query to the BlazeSQL API. * @param dbId The ID of the database to query. * @param naturalLanguageRequest The query in natural language. * @param apiKey Your BlazeSQL API key. * @returns The response from the BlazeSQL API. * @throws Error if the network request fails. */ export async function queryBlazeSQL( dbId: string, naturalLanguageRequest: string, apiKey: string ): Promise<BlazeSQLResponse> { if (!apiKey) { throw new Error('BlazeSQL API key is missing. Ensure BLAZE_API_KEY is set in your environment.'); } const requestBody: BlazeSQLRequest = { db_id: dbId, natural_language_request: naturalLanguageRequest, api_key: apiKey, }; try { const response = await fetch(BLAZE_API_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(requestBody), }); if (!response.ok) { // Attempt to parse error response from Blaze, otherwise throw generic error try { const errorData: BlazeSQLErrorResponse = await response.json() as BlazeSQLErrorResponse; return { // Return a structured error matching BlazeSQLErrorResponse success: false, error: errorData.error || `HTTP error! status: ${response.status}`, error_code: errorData.error_code || response.status, }; } catch (parseError) { return { // Return a structured error matching BlazeSQLErrorResponse success: false, error: `HTTP error! status: ${response.status}. Failed to parse error response.`, error_code: response.status, }; } } const data: BlazeSQLResponse = await response.json() as BlazeSQLResponse; return data; } catch (error) { console.error('Error querying BlazeSQL:', error); return { // Return a structured error matching BlazeSQLErrorResponse success: false, error: error instanceof Error ? error.message : 'An unknown error occurred during the API request.', error_code: 500, // Generic internal/network error }; } }

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/arjshiv/blaze-sql-mcp-server'

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