UNPKG

@griffinbank/mcp-server

Version:

Griffin API MCP Server - Model Context Protocol server for Griffin API

100 lines (99 loc) 3.94 kB
import { griffinRequest } from "./common.js"; import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; async function bankAccountDetails(server) { server.resource("bank-account-details", new ResourceTemplate("griffin://{accountUrl}", { list: undefined }), async (uri, { accountUrl }) => { try { const data = await griffinRequest(accountUrl); return { contents: [{ uri: uri.href, text: JSON.stringify(data, null, 2), mimeType: "application/json" }] }; } catch (error) { console.error(`Error fetching bank account ${accountUrl}:`, error); return { contents: [{ uri: uri.href, text: `Error fetching bank account ${accountUrl}: ${error instanceof Error ? error.message : String(error)}`, mimeType: "text/plain" }] }; } }); } async function legalPersonDetails(server) { server.resource("legal-person-details", new ResourceTemplate("griffin://{legalPersonUrl}", { list: undefined }), async (uri, { legalPersonUrl }) => { try { const data = await griffinRequest(legalPersonUrl); return { contents: [{ uri: uri.href, text: JSON.stringify(data, null, 2), mimeType: "application/json" }] }; } catch (error) { console.error(`Error fetching legal person ${legalPersonUrl}:`, error); return { contents: [{ uri: uri.href, text: `Error fetching legal person ${legalPersonUrl}: ${error instanceof Error ? error.message : String(error)}`, mimeType: "text/plain" }] }; } }); } async function getPayment(server) { server.resource("payment-details", new ResourceTemplate("griffin://{paymentUrl}", { list: undefined }), async (uri, { paymentUrl }) => { try { const data = await griffinRequest(paymentUrl); return { contents: [{ uri: uri.href, text: JSON.stringify(data, null, 2), mimeType: "application/json" }] }; } catch (error) { console.error(`Error fetching payment ${paymentUrl}:`, error); return { contents: [{ uri: uri.href, text: `Error fetching payment ${paymentUrl}: ${error instanceof Error ? error.message : String(error)}`, mimeType: "text/plain" }] }; } }); } async function getPayee(server) { server.resource("payee-details", new ResourceTemplate("griffin://{payeeUrl}", { list: undefined }), async (uri, { payeeUrl }) => { try { const data = await griffinRequest(payeeUrl); return { contents: [{ uri: uri.href, text: JSON.stringify(data, null, 2), mimeType: "application/json" }] }; } catch (error) { console.error(`Error fetching payee ${payeeUrl}:`, error); return { contents: [{ uri: uri.href, text: `Error fetching payee ${payeeUrl}: ${error instanceof Error ? error.message : String(error)}`, mimeType: "text/plain" }] }; } }); } export { bankAccountDetails, legalPersonDetails, getPayment, getPayee, };