@griffinbank/mcp-server
Version:
Griffin API MCP Server - Model Context Protocol server for Griffin API
33 lines (32 loc) • 1.38 kB
JavaScript
import fetch from "node-fetch";
import { config } from "dotenv";
config();
const GRIFFIN_API_BASE_URL = "https://api.griffin.com";
const GRIFFIN_API_KEY = process.env.GRIFFIN_API_KEY;
const GRIFFIN_API_KEY_ID = process.env.GRIFFIN_API_KEY_ID;
const GRIFFIN_ORGANIZATION_ID = process.env.GRIFFIN_ORGANIZATION_ID;
if (!GRIFFIN_API_KEY || !GRIFFIN_API_KEY || !GRIFFIN_ORGANIZATION_ID) {
console.error("Error: GRIFFIN_API_KEY, GRIFFIN_API_KEY_ID and GRIFFIN_ORGANIZATION_ID must be provided in the .env file");
process.exit(1);
}
async function griffinRequest(endpoint, method = "GET", body) {
const url = `${GRIFFIN_API_BASE_URL}${endpoint}`;
console.error(`Making ${method} request to: ${url}`);
const options = {
method,
headers: {
"Authorization": `GriffinAPIKey ${GRIFFIN_API_KEY}`,
"Content-Type": "application/json"
}
};
if (body && (method === "POST" || method === "PUT" || method === "PATCH")) {
options.body = JSON.stringify(body);
}
const response = await fetch(url, options);
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Griffin API error (${response.status}): ${errorText}`);
}
return response.json();
}
export { GRIFFIN_API_KEY, GRIFFIN_API_KEY_ID, GRIFFIN_ORGANIZATION_ID, GRIFFIN_API_BASE_URL, griffinRequest };