Skip to main content
Glama

MCP Avantage

by MissionSquad
schemas.ts16.9 kB
import { z } from 'zod' // General Types used across schemas const MinuteIntervalsSchema = z.enum(['1min', '5min', '15min', '30min', '60min']).describe('Intraday interval.') const OutputSizeSchema = z.enum(['compact', 'full']).describe('Output size. Compact returns latest 100 data points, Full returns complete history.') const DatatypeSchema = z.enum(['json', 'csv']).describe('Data format for the response.') const DailyWeeklyMonthlySchema = z.enum(['daily', 'weekly', 'monthly']).describe('Time interval.') const MonthlyQuarterlyAnnualSchema = z.enum(['monthly', 'quarterly', 'annual']).describe('Time interval.') const SeriesTypeSchema = z.enum(['close', 'open', 'high', 'low']).describe('The desired price type.') // === Alpha Intelligence Schemas === export const NewsSentimentsParamsSchema = z.object({ tickersList: z.array(z.string()).optional().describe('List of stock/crypto/forex symbols (e.g., ["AAPL", "GOOGL"]).'), topics: z.string().optional().describe('Specific topics to filter news for (e.g., "technology", "earnings").'), time_from: z.string().optional().describe('Start time for news articles (YYYYMMDDTHHMM format).'), time_to: z.string().optional().describe('End time for news articles (YYYYMMDDTHHMM format).'), sort: z.enum(['LATEST', 'EARLIEST', 'RELEVANCE']).default('LATEST').optional().describe('Sort order for results.'), limit: z.number().int().min(1).max(1000).default(50).optional().describe('Number of results to return (1-1000).'), }).describe('Parameters for fetching market news and sentiment data.') export const InsiderTransactionsParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "AAPL").'), }).describe('Parameters for fetching insider trading information.') // Schemas for Analytics endpoints are complex and omitted for brevity, // as they were commented out in the original library analysis. // Add FixedWindowAnalyticsParamsSchema and SlidingWindowAnalyticsParamsSchema if needed. // === Commodities Schemas === export const CommoditiesDailyWeeklyMonthlyParamsSchema = z.object({ interval: DailyWeeklyMonthlySchema.optional().describe('Time interval for the data.'), datatype: DatatypeSchema.optional().describe('Response data format.'), }).describe('Parameters for daily/weekly/monthly commodity data.') export const CommoditiesMonthlyQuarterlyAnnualParamsSchema = z.object({ interval: MonthlyQuarterlyAnnualSchema.optional().describe('Time interval for the data.'), datatype: DatatypeSchema.optional().describe('Response data format.'), }).describe('Parameters for monthly/quarterly/annual commodity data.') // === Core Stock Schemas === export const CoreStockIntradayParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), interval: MinuteIntervalsSchema, adjusted: z.boolean().default(true).optional().describe('Whether to return adjusted prices.'), extended_hours: z.boolean().default(true).optional().describe('Include pre-market and after-hours data?'), month: z.string().optional().describe('Specific month to retrieve data for (YYYY-MM format). Required for intervals longer than 5min if outputsize=full.'), outputsize: OutputSizeSchema.default('compact').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching intraday stock time series data.') export const CoreStockDailyParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), outputsize: OutputSizeSchema.default('compact').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching daily stock time series data.') export const CoreStockDailyAdjustedParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), outputsize: OutputSizeSchema.default('compact').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching daily adjusted stock time series data.') export const CoreStockWeeklyParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching weekly stock time series data.') export const CoreStockWeeklyAdjustedParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching weekly adjusted stock time series data.') export const CoreStockMonthlyParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching monthly stock time series data.') export const CoreStockMonthlyAdjustedParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching monthly adjusted stock time series data.') export const CoreStockQuoteParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching a global quote for a stock.') export const CoreStockBulkQuotesParamsSchema = z.object({ symbols: z.array(z.string()).min(1).max(100).describe('Array of stock symbols (e.g., ["IBM", "AAPL"]). Max 100 symbols.'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching realtime quotes for multiple stocks (Premium).') export const CoreStockSearchParamsSchema = z.object({ keywords: z.string().describe('Keywords to search for (e.g., "International Business Machines").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for searching stock symbols.') // === Crypto Schemas === export const CryptoExchangeRateParamsSchema = z.object({ from_currency: z.string().describe('The cryptocurrency symbol (e.g., "BTC").'), to_currency: z.string().describe('The physical currency symbol (e.g., "USD").'), }).describe('Parameters for fetching cryptocurrency exchange rates.') export const CryptoIntradayParamsSchema = z.object({ symbol: z.string().describe('The cryptocurrency symbol (e.g., "BTC").'), market: z.string().describe('The exchange market (e.g., "USD", "EUR").'), interval: MinuteIntervalsSchema, outputsize: OutputSizeSchema.default('compact').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching intraday crypto time series data.') export const CryptoTimeSeriesParamsSchema = z.object({ symbol: z.string().describe('The cryptocurrency symbol (e.g., "BTC").'), market: z.string().describe('The exchange market (e.g., "USD", "EUR").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching daily/weekly/monthly crypto time series data.') // === Economic Indicators Schemas === export const EconomicIndicatorsRealGDPParamsSchema = z.object({ interval: z.enum(['annual', 'quarterly']).default('annual').optional().describe('Time interval.'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching Real GDP data.') export const EconomicIndicatorsDataTypeParamSchema = z.object({ datatype: DatatypeSchema.default('json').optional(), }).describe('Common parameter schema accepting only datatype.') export const EconomicIndicatorsTreasuryYieldParamsSchema = z.object({ interval: DailyWeeklyMonthlySchema.default('monthly').optional(), maturity: z.enum(['3month', '2year', '5year', '7year', '10year', '30year']).default('10year').optional().describe('Treasury maturity period.'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching Treasury Yield data.') export const EconomicIndicatorsFederalFundsRateParamsSchema = z.object({ interval: DailyWeeklyMonthlySchema.default('monthly').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching Federal Funds Rate data.') export const EconomicIndicatorsCPIParamsSchema = z.object({ interval: z.enum(['monthly', 'semiannual']).default('monthly').optional().describe('Time interval.'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching CPI data.') // === Forex Schemas === export const ForexExchangeRateParamsSchema = z.object({ from_currency: z.string().describe('The currency symbol to convert from (e.g., "EUR").'), to_currency: z.string().describe('The currency symbol to convert to (e.g., "USD").'), }).describe('Parameters for fetching Forex exchange rates.') export const ForexIntradayParamsSchema = z.object({ from_symbol: z.string().describe('The currency symbol to convert from (e.g., "EUR").'), to_symbol: z.string().describe('The currency symbol to convert to (e.g., "USD").'), interval: MinuteIntervalsSchema, outputsize: OutputSizeSchema.default('compact').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching intraday Forex time series data.') export const ForexDailyParamsSchema = z.object({ from_symbol: z.string().describe('The currency symbol to convert from (e.g., "EUR").'), to_symbol: z.string().describe('The currency symbol to convert to (e.g., "USD").'), outputsize: OutputSizeSchema.default('compact').optional(), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching daily Forex time series data.') export const ForexWeeklyMonthlyParamsSchema = z.object({ from_symbol: z.string().describe('The currency symbol to convert from (e.g., "EUR").'), to_symbol: z.string().describe('The currency symbol to convert to (e.g., "USD").'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching weekly/monthly Forex time series data.') // === Fundamental Data Schemas === export const FundamentalDataSymbolParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), }).describe('Parameter schema requiring only a stock symbol.') export const FundamentalDataListingStatusParamsSchema = z.object({ symbol: z.string().optional().describe('Filter results for a specific symbol after fetching.'), date: z.string().optional().describe('List symbols active/delisted on a specific date (YYYY-MM-DD).'), state: z.enum(['active', 'delisted']).default('active').optional().describe('Filter by listing status.'), }).describe('Parameters for fetching listing status (CSV endpoint).') export const FundamentalDataEarningsCalendarParamsSchema = z.object({ symbol: z.string().optional().describe('Fetch earnings calendar for a specific symbol.'), horizon: z.enum(['3month', '6month', '12month']).default('3month').optional().describe('Time horizon for upcoming earnings.'), }).describe('Parameters for fetching earnings calendar (CSV endpoint).') // IPO Calendar takes no parameters // === Options Data Schemas === export const OptionsDataRealtimeOptionsParamsSchema = z.object({ symbol: z.string().describe('The underlying stock symbol (e.g., "AAPL").'), contract: z.string().optional().describe('Specific option contract ID to fetch details for.'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching realtime options chain data (Premium).') export const OptionsDataHistoricalOptionsParamsSchema = z.object({ symbol: z.string().describe('The underlying stock symbol (e.g., "AAPL").'), date: z.string().optional().describe('Specific date (YYYY-MM-DD) for historical data.'), datatype: DatatypeSchema.default('json').optional(), }).describe('Parameters for fetching historical options chain data (Premium).') // === Technical Indicators Schemas === // Base schema for many indicators export const TechnicalIndicatorsCommonIndicatorParamsSchema = z.object({ symbol: z.string().describe('The stock symbol (e.g., "IBM").'), interval: z.string().describe('Time interval (e.g., "daily", "60min", "weekly"). Check Alpha Vantage docs for valid intervals per indicator.'), datatype: DatatypeSchema.default('json').optional(), month: z.string().optional().describe('Specific month for intraday intervals (YYYY-MM format).'), }).describe('Common parameters for many technical indicators.') // Schema for indicators requiring time_period and series_type export const TechnicalIndicatorsTimeSeriesIndicatorParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ time_period: z.string().describe('Number of data points used to calculate the indicator.'), // Using string as AV API expects string series_type: SeriesTypeSchema, }).describe('Parameters for time series based technical indicators.') // Schema for indicators requiring fast/slow periods export const TechnicalIndicatorsFastSlowIndicatorParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ fastperiod: z.string().optional().describe('Fast period setting (integer).'), slowperiod: z.string().optional().describe('Slow period setting (integer).'), }).describe('Parameters for indicators with fast/slow period settings.') // Schema for MAMA indicator export const TechnicalIndicatorsMamaIndicatorParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ fastlimit: z.string().optional().default('0.01').describe('Fast limit parameter for MAMA.'), slowlimit: z.string().optional().default('0.01').describe('Slow limit parameter for MAMA.'), series_type: SeriesTypeSchema, }).describe('Parameters for the MAMA technical indicator.') // Schemas for Hilbert Transform indicators (omitting time_period) export const TechnicalIndicatorsHtTrendlineParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ series_type: SeriesTypeSchema }).describe('Parameters for HT_TRENDLINE.'); export const TechnicalIndicatorsHtSineParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ series_type: SeriesTypeSchema }).describe('Parameters for HT_SINE.'); export const TechnicalIndicatorsHtTrendmodeParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ series_type: SeriesTypeSchema }).describe('Parameters for HT_TRENDMODE.'); export const TechnicalIndicatorsHtDcperiodParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ series_type: SeriesTypeSchema }).describe('Parameters for HT_DCPERIOD.'); export const TechnicalIndicatorsHtDcphaseParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ series_type: SeriesTypeSchema }).describe('Parameters for HT_DCPHASE.'); export const TechnicalIndicatorsHtPhasorParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ series_type: SeriesTypeSchema }).describe('Parameters for HT_PHASOR.'); // Schemas for indicators requiring time_period but not series_type export const TechnicalIndicatorsTimePeriodOnlyParamsSchema = TechnicalIndicatorsCommonIndicatorParamsSchema.extend({ time_period: z.string().describe('Number of data points used to calculate the indicator.'), }).describe('Parameters for indicators requiring symbol, interval, and time_period.'); export const TechnicalIndicatorsNatrParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for NATR.'); export const TechnicalIndicatorsAroonParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for AROON.'); export const TechnicalIndicatorsAroonOscParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for AROONOSC.'); export const TechnicalIndicatorsMfiParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for MFI.'); export const TechnicalIndicatorsDxParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for DX.'); export const TechnicalIndicatorsMinusDiParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for MINUS_DI.'); export const TechnicalIndicatorsPlusDiParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for PLUS_DI.'); export const TechnicalIndicatorsMinusDmParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for MINUS_DM.'); export const TechnicalIndicatorsPlusDmParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for PLUS_DM.'); export const TechnicalIndicatorsMidpriceParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for MIDPRICE.'); export const TechnicalIndicatorsAtrParamsSchema = TechnicalIndicatorsTimePeriodOnlyParamsSchema.describe('Parameters for ATR.'); // Note: Some indicators like ULTOSC, BBANDS, SAR might require more specific parameters not covered by the common schemas. // These schemas provide a starting point; refer to Alpha Vantage documentation for exact requirements per indicator.

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/MissionSquad/mcp-avantage'

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