Skip to main content
Glama
nonnname

T-Invest MCP Server

by nonnname

get_trading_status

Check real-time trading status for T-Invest securities to verify market availability and trading permissions before executing orders.

Instructions

Получить статус торгов по тикеру из Т-Инвестиций

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tickersYesМассив тикеров

Implementation Reference

  • The handler function that executes the trading status lookup for a list of tickers.
    async ({ tickers }) => {
      try {
        const settled = await Promise.allSettled(
          tickers.map(async (ticker) => {
            const item = await resolveTickerToInstrument(client, ticker);
            if (!item) return `${ticker}: инструмент не найден`;
    
            const resp = await client.post<GetTradingStatusResponse>(
              API_PATHS.MARKET_DATA.GET_TRADING_STATUS,
              { figi: item.figi },
            );
    
            const status = TRADING_STATUS_LABELS[resp.tradingStatus] ?? resp.tradingStatus;
            const flags: string[] = [];
            if (resp.limitOrderAvailableFlag) flags.push('лимит');
            if (resp.marketOrderAvailableFlag) flags.push('рынок');
            if (resp.apiTradeAvailableFlag) flags.push('API');
    
            return `${ticker}: ${status}${flags.length ? ` (доступно: ${flags.join(', ')})` : ''}`;
          }),
        );
    
        const results = settled.map((r, i) =>
          r.status === 'fulfilled' ? r.value : `${tickers[i]}: ошибка`,
        );
    
        return { content: [{ type: 'text' as const, text: results.join('\n') }] };
      } catch (error) {
        return {
          content: [{ type: 'text' as const, text: `Ошибка: ${error instanceof Error ? error.message : String(error)}` }],
          isError: true,
        };
      }
    },
  • Registration function that defines the 'get_trading_status' MCP tool, its schema, and associates it with the handler.
    export function registerGetTradingStatus(server: McpServer, client: TInvestClient): void {
      server.tool(
        'get_trading_status',
        'Получить статус торгов по тикеру из Т-Инвестиций',
        {
          tickers: z.array(z.string()).min(1).max(50).describe('Массив тикеров'),
        },
        READ_ONLY,
        async ({ tickers }) => {
          try {
            const settled = await Promise.allSettled(
              tickers.map(async (ticker) => {
                const item = await resolveTickerToInstrument(client, ticker);
                if (!item) return `${ticker}: инструмент не найден`;
    
                const resp = await client.post<GetTradingStatusResponse>(
                  API_PATHS.MARKET_DATA.GET_TRADING_STATUS,
                  { figi: item.figi },
                );
    
                const status = TRADING_STATUS_LABELS[resp.tradingStatus] ?? resp.tradingStatus;
                const flags: string[] = [];
                if (resp.limitOrderAvailableFlag) flags.push('лимит');
                if (resp.marketOrderAvailableFlag) flags.push('рынок');
                if (resp.apiTradeAvailableFlag) flags.push('API');
    
                return `${ticker}: ${status}${flags.length ? ` (доступно: ${flags.join(', ')})` : ''}`;
              }),
            );
    
            const results = settled.map((r, i) =>
              r.status === 'fulfilled' ? r.value : `${tickers[i]}: ошибка`,
            );
    
            return { content: [{ type: 'text' as const, text: results.join('\n') }] };
          } 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