@griffinbank/mcp-server
Version:
Griffin API MCP Server - Model Context Protocol server for Griffin API
100 lines (99 loc) • 3.94 kB
JavaScript
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, };