UNPKG

mcp-invest-assistant

Version:
69 lines (56 loc) 2.27 kB
#!/usr/bin/env node import {McpServer} from "@modelcontextprotocol/sdk/server/mcp.js"; import {StdioServerTransport} from "@modelcontextprotocol/sdk/server/stdio.js"; import logger from './utils/logger.js'; import {registerGetIndexTemperature} from "./tools/getIndexTemperature.js"; import mockAllBaseInfo from './services/mockAllBaseInfo.js'; // 创建MCP服务器 const server = new McpServer({ name: "mcp-invest-assistant", description: "投资助手,理财分析师", version: "0.0.6", capabilities: { resources: {}, tools: {}, } }); // 灌入基础数据:这里暂时不使用,直接使用提前下载好的数据喂给LLM // async function getBaseData() { // logger.info('start get index base data...'); // const allPromise = Object.values(MARKET).map((market) => getIndexBaseInfo({market})); // const resBody = await Promise.all(allPromise); // const allIndexData = Object.keys(MARKET).map((marketCn, index) => { // return { // marketCn: marketCn, // data: resBody?.[index]?.data // } // }); // logger.info(`get index base data success: ${JSON.stringify(allIndexData)}`); // return allIndexData; // } // const allIndexData = await getBaseData(); server.resource('allIndexData', 'data://all-index-data', async (uri) => ({ contents: [{uri: uri.href, text: JSON.stringify(mockAllBaseInfo)}], })); async function startServer() { try { logger.info('Registering tools...'); // 注册所有工具 // registerSayHello(server); registerGetIndexTemperature(server); logger.info('Tools registered successfully'); // 启动MCP服务器 logger.info('Starting MCP server with StdioServerTransport...'); const transport = new StdioServerTransport(); await server.connect(transport); logger.info('MCP server connected successfully'); } catch (error: unknown) { const err = error as Error; logger.error(`MCP server startup failed: ${err.message}`); logger.error(`Stack trace: ${err.stack}`); console.error('服务器启动失败:', err); process.exit(1); } } logger.info('mcp-invest-assistant start success!'); startServer();