UNPKG

@covalenthq/goldrush-mcp-server

Version:

GoldRush MCP Server for interacting with Covalent GoldRush API

59 lines 2.08 kB
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