@blario/mcp
Version:
Blar Model Context Protocol server
93 lines (92 loc) • 2.82 kB
JavaScript
import { BLAR_API_BASE_ENV } from './config.js';
export const BLAR_API_BASE = BLAR_API_BASE_ENV;
if (!BLAR_API_BASE)
throw new Error('BLAR_API_BASE environment variable is not set');
class BlarAPIClient {
getHeaders() {
const API_KEY = process.env.API_KEY;
if (!API_KEY)
throw new Error('API_KEY environment variable is not set');
return {
Authorization: `Api-Key ${API_KEY}`,
'Content-Type': 'application/json',
};
}
async makeRequest(url) {
try {
console.log(url);
const response = await fetch(url, {
headers: this.getHeaders(),
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return (await response.json());
}
catch (error) {
console.error('Error making Blar request:', error);
return null;
}
}
async makeRequestWithErrorHandling(url) {
try {
const response = await fetch(url, {
headers: this.getHeaders(),
});
if (!response.ok) {
const errorData = await response.json();
return {
data: null,
error: errorData,
status: response.status,
};
}
const data = (await response.json());
return {
data,
error: null,
status: response.status,
};
}
catch (error) {
console.error('Error making Blar request:', error);
return {
data: null,
error: error,
status: 500,
};
}
}
async makePostRequest(url, data) {
try {
const response = await fetch(url, {
method: 'POST',
headers: this.getHeaders(),
body: JSON.stringify(data),
});
if (!response.ok) {
const errorData = await response.json();
return {
data: null,
error: errorData,
status: response.status,
};
}
const responseData = (await response.json());
return {
data: responseData,
error: null,
status: response.status,
};
}
catch (error) {
console.error('Error making Blar POST request:', error);
return {
data: null,
error: error,
status: 500,
};
}
}
}
export const blarAPIClient = new BlarAPIClient();