@covalenthq/goldrush-mcp-server
Version:
GoldRush MCP Server for interacting with Covalent GoldRush API
55 lines • 2.38 kB
JavaScript
import packageJson from "../package.json" with { type: "json" };
import { addRealTimeChainStatusResources } from "./resources/dynamicResources.js";
import { addStaticResources } from "./resources/staticResources.js";
import { addAllChainsServiceTools } from "./services/AllChainsService.js";
import { addBalanceServiceTools } from "./services/BalanceService.js";
import { addBaseServiceTools } from "./services/BaseService.js";
import { addBitcoinServiceTools } from "./services/BitcoinService.js";
import { addNftServiceTools } from "./services/NftService.js";
import { addPricingServiceTools } from "./services/PricingService.js";
import { addSecurityServiceTools } from "./services/SecurityService.js";
import { addTransactionServiceTools } from "./services/TransactionService.js";
import { GoldRushClient } from "@covalenthq/client-sdk";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import dotenv from "dotenv";
const { version } = packageJson;
dotenv.config();
export function createGoldRushClient() {
const apiKey = process.env["GOLDRUSH_API_KEY"];
if (!apiKey) {
console.error("GOLDRUSH_API_KEY environment variable is not set.");
process.exit(1);
}
return new GoldRushClient(apiKey);
}
export function createServer() {
const goldRushClient = createGoldRushClient();
const server = new McpServer({
name: "GoldRush MCP Server",
version: version,
});
addStaticResources(server);
addRealTimeChainStatusResources(server, goldRushClient);
addAllChainsServiceTools(server, goldRushClient);
addBaseServiceTools(server, goldRushClient);
addBalanceServiceTools(server, goldRushClient);
addTransactionServiceTools(server, goldRushClient);
addBitcoinServiceTools(server, goldRushClient);
addNftServiceTools(server, goldRushClient);
addPricingServiceTools(server, goldRushClient);
addSecurityServiceTools(server, goldRushClient);
return server;
}
export async function startServer() {
try {
const server = createServer();
const transport = new StdioServerTransport();
await server.connect(transport);
}
catch (error) {
console.error("Failed to start server:", error);
process.exit(1);
}
}
//# sourceMappingURL=server.js.map