@covalenthq/goldrush-mcp-server
Version:
GoldRush MCP Server for interacting with Covalent GoldRush API
59 lines • 2.08 kB
JavaScript
import { stringifyWithBigInt } from "../utils/helpers.js";
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
export function addRealTimeChainStatusResources(server, goldRushClient) {
server.resource("all-chains-status", "status://all-chains", async (uri) => {
const response = await goldRushClient.BaseService.getAllChainStatus();
return {
contents: [
{
uri: uri.href,
text: stringifyWithBigInt(response.data),
},
],
};
});
const chainStatusTemplate = new ResourceTemplate("status://chain/{chainName}", { list: undefined });
server.resource("chain-status", chainStatusTemplate, async (uri, { chainName }) => {
const response = await goldRushClient.BaseService.getAllChainStatus();
const data = response.data;
if (!data || !data.items) {
return {
contents: [
{
uri: uri.href,
text: JSON.stringify({ error: "Failed to fetch chain status" }, null, 2),
},
],
};
}
const items = data.items || [];
const chainStatus = items.find((x) => {
if (x.name === chainName) {
return true;
}
if (!isNaN(Number(chainName))) {
return x.chain_id === Number(chainName);
}
return false;
});
if (!chainStatus) {
return {
contents: [
{
uri: uri.href,
text: JSON.stringify({ error: `Chain not found for: ${chainName}` }, null, 2),
},
],
};
}
return {
contents: [
{
uri: uri.href,
text: stringifyWithBigInt(chainStatus),
},
],
};
});
}
//# sourceMappingURL=dynamicResources.js.map