Skip to main content
Glama

Weather & Stock MCP Server

by Jeetinida
dailyGainers.js5.98 kB
import { Type } from "@sinclair/typebox"; import { YahooNumber } from "../lib/yahooFinanceTypes.js"; const DailyGainersCriterum = Type.Object({ field: Type.String(), operators: Type.Array(Type.String()), values: Type.Array(YahooNumber), labelsSelected: Type.Array(YahooNumber), dependentValues: Type.Array(Type.Any()), }, { title: "DailyGainersCriterium" }); const DailyGainersQuote = Type.Object({ language: Type.String(), region: Type.String(), quoteType: Type.String(), typeDisp: Type.String(), quoteSourceName: Type.String(), triggerable: Type.Boolean(), customPriceAlertConfidence: Type.String(), lastCloseTevEbitLtm: Type.Optional(YahooNumber), lastClosePriceToNNWCPerShare: Type.Optional(YahooNumber), firstTradeDateMilliseconds: YahooNumber, priceHint: YahooNumber, postMarketChangePercent: Type.Optional(YahooNumber), postMarketTime: Type.Optional(YahooNumber), postMarketPrice: Type.Optional(YahooNumber), postMarketChange: Type.Optional(YahooNumber), regularMarketChange: YahooNumber, regularMarketTime: YahooNumber, regularMarketPrice: YahooNumber, regularMarketDayHigh: YahooNumber, regularMarketDayRange: Type.String(), currency: Type.String(), regularMarketDayLow: YahooNumber, regularMarketVolume: YahooNumber, regularMarketPreviousClose: YahooNumber, bid: Type.Optional(YahooNumber), ask: Type.Optional(YahooNumber), bidSize: Type.Optional(YahooNumber), askSize: Type.Optional(YahooNumber), market: Type.String(), messageBoardId: Type.String(), fullExchangeName: Type.String(), longName: Type.String(), financialCurrency: Type.Optional(Type.String()), regularMarketOpen: YahooNumber, averageDailyVolume3Month: YahooNumber, averageDailyVolume10Day: YahooNumber, fiftyTwoWeekLowChange: YahooNumber, fiftyTwoWeekLowChangePercent: YahooNumber, fiftyTwoWeekRange: Type.String(), fiftyTwoWeekHighChange: YahooNumber, fiftyTwoWeekHighChangePercent: YahooNumber, fiftyTwoWeekChangePercent: YahooNumber, earningsTimestamp: Type.Optional(YahooNumber), earningsTimestampStart: Type.Optional(YahooNumber), earningsTimestampEnd: Type.Optional(YahooNumber), trailingAnnualDividendRate: YahooNumber, trailingAnnualDividendYield: YahooNumber, marketState: Type.String(), epsTrailingTwelveMonths: Type.Optional(YahooNumber), epsForward: Type.Optional(YahooNumber), epsCurrentYear: Type.Optional(YahooNumber), priceEpsCurrentYear: Type.Optional(YahooNumber), sharesOutstanding: YahooNumber, bookValue: Type.Optional(YahooNumber), fiftyDayAverage: YahooNumber, fiftyDayAverageChange: YahooNumber, fiftyDayAverageChangePercent: YahooNumber, twoHundredDayAverage: YahooNumber, twoHundredDayAverageChange: YahooNumber, twoHundredDayAverageChangePercent: YahooNumber, marketCap: YahooNumber, forwardPE: Type.Optional(YahooNumber), priceToBook: Type.Optional(YahooNumber), sourceInterval: YahooNumber, exchangeDataDelayedBy: YahooNumber, exchangeTimezoneName: Type.String(), exchangeTimezoneShortName: Type.String(), gmtOffSetMilliseconds: YahooNumber, esgPopulated: Type.Boolean(), tradeable: Type.Boolean(), cryptoTradeable: Type.Boolean(), exchange: Type.String(), fiftyTwoWeekLow: YahooNumber, fiftyTwoWeekHigh: YahooNumber, shortName: Type.String(), averageAnalystRating: Type.Optional(Type.String()), regularMarketChangePercent: YahooNumber, symbol: Type.String(), dividendDate: Type.Optional(YahooNumber), displayName: Type.Optional(Type.String()), trailingPE: Type.Optional(YahooNumber), prevName: Type.Optional(Type.String()), nameChangeDate: Type.Optional(YahooNumber), ipoExpectedDate: Type.Optional(YahooNumber), dividendYield: Type.Optional(YahooNumber), dividendRate: Type.Optional(YahooNumber), }, { title: "DailyGainersQuote" }); const DailyGainersOptionsSchema = Type.Object({ lang: Type.Optional(Type.String()), region: Type.Optional(Type.String()), count: Type.Optional(YahooNumber), }, { title: "DailyGainersOptions" }); const DailyGainersCriteriaMeta = Type.Object({ size: YahooNumber, offset: YahooNumber, sortField: Type.String(), sortType: Type.String(), quoteType: Type.String(), criteria: Type.Array(DailyGainersCriterum), topOperator: Type.String(), }, { title: "DailyGainersCriteriaMeta" }); const DailyGainersResultSchema = Type.Object({ id: Type.String(), title: Type.String(), description: Type.String(), canonicalName: Type.String(), criteriaMeta: DailyGainersCriteriaMeta, rawCriteria: Type.String(), start: YahooNumber, count: YahooNumber, total: YahooNumber, quotes: Type.Array(DailyGainersQuote), useRecords: Type.Boolean(), predefinedScr: Type.Boolean(), versionId: YahooNumber, creationDate: YahooNumber, lastUpdated: YahooNumber, isPremium: Type.Boolean(), iconUrl: Type.String(), }, { title: "DailyGainersResult" }); const queryOptionsDefaults = { lang: "en-US", region: "US", scrIds: "day_gainers", count: 5, }; export default function dailyGainers(queryOptionsOverrides, moduleOptions) { return this._moduleExec({ moduleName: "dailyGainers", query: { url: "https://${YF_QUERY_HOST}/v1/finance/screener/predefined/saved", schema: DailyGainersOptionsSchema, defaults: queryOptionsDefaults, overrides: queryOptionsOverrides, needsCrumb: true, }, result: { schema: DailyGainersResultSchema, transformWith(result) { if (!result.finance) throw new Error("Unexpected result: " + JSON.stringify(result)); return result.finance.result[0]; }, }, moduleOptions, }); }

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/Jeetinida/stocknews-mcp'

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