Skip to main content
Glama
nonnname

T-Invest MCP Server

by nonnname

get_asset_fundamentals

Retrieve fundamental financial metrics for companies using their stock ticker symbols to analyze investment opportunities and assess company performance.

Instructions

Получить фундаментальные показатели компаний по тикерам

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tickersYesМассив тикеров (до 100)

Implementation Reference

  • The registration function `registerGetAssetFundamentals` contains the handler logic for the `get_asset_fundamentals` tool, including input validation, instrument resolution, API call, and response formatting.
    export function registerGetAssetFundamentals(server: McpServer, client: TInvestClient): void {
      server.tool(
        'get_asset_fundamentals',
        'Получить фундаментальные показатели компаний по тикерам',
        {
          tickers: z.array(z.string()).min(1).max(100).describe('Массив тикеров (до 100)'),
        },
        READ_ONLY,
        async ({ tickers }) => {
          try {
            // Для фундаментала не фильтруем по apiTradeAvailableFlag — нужны все инструменты
            const instrumentMap = await resolveTickersToInstruments(
              client, tickers, { apiTradeAvailableFlag: false },
            );
    
            const notFound = tickers.filter((t) => !instrumentMap.has(t.toUpperCase()));
    
            if (instrumentMap.size === 0) {
              return {
                content: [{ type: 'text' as const, text: 'Инструменты по указанным тикерам не найдены.' }],
                isError: true,
              };
            }
    
            const uidToTicker = new Map(
              Array.from(instrumentMap.entries()).map(([ticker, inst]) => [inst.uid, ticker]),
            );
    
            const response = await client.post<GetAssetFundamentalsResponse>(
              API_PATHS.INSTRUMENTS.GET_ASSET_FUNDAMENTALS,
              { assets: Array.from(uidToTicker.keys()) },
            );
    
            if (!response.fundamentals || response.fundamentals.length === 0) {
              return { content: [{ type: 'text' as const, text: 'Фундаментальные данные не найдены.' }] };
            }
    
            const results: string[] = [];
            for (const fundamental of response.fundamentals) {
              const ticker = uidToTicker.get(fundamental.assetUid ?? '') ?? 'N/A';
              results.push(formatFundamental(ticker, fundamental));
            }
    
            if (notFound.length > 0) {
              results.push(`\nНе найдены тикеры: ${notFound.join(', ')}`);
            }
    
            return { content: [{ type: 'text' as const, text: results.join(SEPARATOR) }] };
          } catch (error) {
            return {
              content: [{ type: 'text' as const, text: `Ошибка: ${error instanceof Error ? error.message : String(error)}` }],
              isError: true,
            };
          }
        },
      );
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nonnname/t-invest-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server