UNPKG

@sentio/mcp

Version:

sentio mcp

55 lines (47 loc) 1.98 kB
import {McpServer} from "@modelcontextprotocol/sdk/server/mcp.js"; import {StdioServerTransport} from "@modelcontextprotocol/sdk/server/stdio.js"; import {createClient} from "@hey-api/client-fetch"; import {getCurrentUserOrOrg, registerWebTools} from "./tools/web_tools.js"; import {registerDataTools} from "./tools/data_tools.js"; import {registerPriceTools} from "./tools/price_tools.js"; import {registerProcessorTools} from "./tools/processor_tools.js"; import {registerAlertsTools} from "./tools/alerts_tools.js"; import {registerDebugSimulationTools} from "./tools/debug_simulation_tools.js"; export async function setupServer(options: any) { const client = createClient({ baseUrl: options.host, }) client.interceptors.request.use((request) => { if (options.apiKey) { request.headers.set("api-key", options.apiKey) } else if (options.token) { request.headers.set("Authorization", `Bearer ${options.token}`) } return request }) const server = new McpServer({ name: "sentio-api", version: "1.0.0", capabilities: { resources: {}, tools: {}, }, }); registerWebTools(server, client, options); registerDataTools(server, client, options); registerPriceTools(server, client, options); registerAlertsTools(server, client, options); registerProcessorTools(server, client, options); registerDebugSimulationTools(server, client, options); const { user, org } = await getCurrentUserOrOrg(client); console.error("Logged in as", user?.username ?? org?.name) const userId = user?.id const orgId = org?.id return { server, userId, orgId }; } export async function runStart(argv: string[], options: any) { const { server } = await setupServer(options); const transport = new StdioServerTransport(); await server.connect(transport); console.error("MCP Server running on stdio"); }