stockquotes-mcp 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/logger.d.ts +5 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +5 -1
- package/dist/logger.js.map +1 -1
- package/dist/stockQuotesService.d.ts +21 -1
- package/dist/stockQuotesService.d.ts.map +1 -1
- package/dist/stockQuotesService.js +105 -29
- package/dist/stockQuotesService.js.map +1 -1
- package/dist/toolRegistration.d.ts.map +1 -1
- package/dist/toolRegistration.js +20 -1
- package/dist/toolRegistration.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -1
- package/dist/yahooFinanceClient.d.ts +6 -6
- package/dist/yahooFinanceClient.d.ts.map +1 -1
- package/dist/yahooFinanceClient.js +3 -4
- package/dist/yahooFinanceClient.js.map +1 -1
- package/package.json +9 -8
package/dist/logger.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import winston from 'winston';
|
|
2
|
+
/**
|
|
3
|
+
* Custom console format for Winston logger
|
|
4
|
+
* Formats log messages with timestamp, level, message, and optional metadata
|
|
5
|
+
*/
|
|
6
|
+
export declare const consoleFormat: winston.Logform.Format;
|
|
2
7
|
export declare const logger: winston.Logger;
|
|
3
8
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B;;;GAGG;AACH,eAAO,MAAM,aAAa,wBAMxB,CAAC;AAEH,eAAO,MAAM,MAAM,gBAajB,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import winston from 'winston';
|
|
2
2
|
const { combine, timestamp, json, colorize, printf } = winston.format;
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Custom console format for Winston logger
|
|
5
|
+
* Formats log messages with timestamp, level, message, and optional metadata
|
|
6
|
+
*/
|
|
7
|
+
export const consoleFormat = printf(({ level, message, timestamp, ...metadata }) => {
|
|
4
8
|
let msg = `${String(timestamp)} [${String(level)}]: ${String(message)}`;
|
|
5
9
|
if (Object.keys(metadata).length > 0) {
|
|
6
10
|
msg += ` ${JSON.stringify(metadata)}`;
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;AAEtE,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;AAEtE;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE;IACjF,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;IACpC,WAAW,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;IAC3C,UAAU,EAAE;QACV,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,OAAO,CACb,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAC5C,QAAQ,EAAE,EACV,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAC/D;SACF,CAAC;KACH;CACF,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HistoricalData, StockQuoteInput, StockQuoteResponse, StockSearchResult } from './types.js';
|
|
1
|
+
import type { HistoricalData, StockQuoteInput, StockQuoteResponse, StockQuotesInput, StockSearchResult } from './types.js';
|
|
2
2
|
import type { YahooClient } from './yahooFinanceClient.js';
|
|
3
3
|
/**
|
|
4
4
|
* Service for fetching stock quotes from Yahoo Finance
|
|
@@ -16,6 +16,26 @@ export declare class StockQuotesService {
|
|
|
16
16
|
* @returns Promise<StockQuoteResponse> - The stock quote data
|
|
17
17
|
*/
|
|
18
18
|
getQuote(input: StockQuoteInput): Promise<StockQuoteResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Fetch multiple stock quotes for the given ticker symbols
|
|
21
|
+
* @param input - The stock quotes input containing the tickers and optional fields
|
|
22
|
+
* @returns Promise<StockQuoteResponse[]> - The stock quote data for each ticker
|
|
23
|
+
*/
|
|
24
|
+
getQuotes(input: StockQuotesInput): Promise<StockQuoteResponse[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Prepares and transforms field requests for Yahoo Finance
|
|
27
|
+
* @param fields - Optional list of fields requested by the client
|
|
28
|
+
* @returns string[] | undefined - Transformed fields for Yahoo Finance
|
|
29
|
+
*/
|
|
30
|
+
private prepareFields;
|
|
31
|
+
/**
|
|
32
|
+
* Maps a YahooQuote to a StockQuoteResponse
|
|
33
|
+
* @param quote - YahooQuote object
|
|
34
|
+
* @param ticker - Ticker symbol
|
|
35
|
+
* @param requestedFields - Optional list of fields requested by the client
|
|
36
|
+
* @returns StockQuoteResponse
|
|
37
|
+
*/
|
|
38
|
+
private mapToStockQuoteResponse;
|
|
19
39
|
/**
|
|
20
40
|
* Fetch multiple stock quotes at once
|
|
21
41
|
* @param tickers - Array of ticker symbols
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stockQuotesService.d.ts","sourceRoot":"","sources":["../src/stockQuotesService.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"stockQuotesService.d.ts","sourceRoot":"","sources":["../src/stockQuotesService.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAElC;;OAEG;gBACS,WAAW,EAAE,WAAW;IAMpC;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2CnE;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsCvE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAcrB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAsD/B;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAepF;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuCzD;;;;;;OAMG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,EAAE,CAAC;CA2D7B"}
|
|
@@ -30,7 +30,7 @@ export class StockQuotesService {
|
|
|
30
30
|
return cachedResponse;
|
|
31
31
|
}
|
|
32
32
|
try {
|
|
33
|
-
const validFields =
|
|
33
|
+
const validFields = this.prepareFields(fields);
|
|
34
34
|
const options = validFields ? { fields: validFields } : undefined;
|
|
35
35
|
const result = await this.yahooClient.quote(ticker, options);
|
|
36
36
|
if (!result) {
|
|
@@ -40,31 +40,7 @@ export class StockQuotesService {
|
|
|
40
40
|
if (!quote) {
|
|
41
41
|
throw new NotFoundError(`Stock ticker '${ticker}' not found`);
|
|
42
42
|
}
|
|
43
|
-
const response =
|
|
44
|
-
symbol: quote.symbol ?? ticker,
|
|
45
|
-
name: quote.shortName ?? quote.longName,
|
|
46
|
-
exchange: quote.exchange,
|
|
47
|
-
currency: quote.currency,
|
|
48
|
-
regularMarketPrice: quote.regularMarketPrice,
|
|
49
|
-
regularMarketChange: quote.regularMarketChange,
|
|
50
|
-
regularMarketChangePercent: quote.regularMarketChangePercent,
|
|
51
|
-
regularMarketVolume: quote.regularMarketVolume,
|
|
52
|
-
marketCap: quote.marketCap,
|
|
53
|
-
fiftyTwoWeekLow: quote.fiftyTwoWeekLow,
|
|
54
|
-
fiftyTwoWeekHigh: quote.fiftyTwoWeekHigh,
|
|
55
|
-
averageDailyVolume3Month: quote.averageDailyVolume3Month,
|
|
56
|
-
trailingPE: quote.trailingPE,
|
|
57
|
-
forwardPE: quote.forwardPE,
|
|
58
|
-
dividendYield: quote.dividendYield,
|
|
59
|
-
epsTrailingTwelveMonths: quote.epsTrailingTwelveMonths,
|
|
60
|
-
epsForward: quote.epsForward,
|
|
61
|
-
bookValue: quote.bookValue,
|
|
62
|
-
priceToBook: quote.priceToBook,
|
|
63
|
-
marketState: quote.marketState,
|
|
64
|
-
quoteType: quote.quoteType,
|
|
65
|
-
};
|
|
66
|
-
Object.keys(response).forEach((key) => response[key] === undefined &&
|
|
67
|
-
delete response[key]);
|
|
43
|
+
const response = this.mapToStockQuoteResponse(quote, ticker, fields);
|
|
68
44
|
this.cache.set(cacheKey, response);
|
|
69
45
|
return response;
|
|
70
46
|
}
|
|
@@ -80,6 +56,106 @@ export class StockQuotesService {
|
|
|
80
56
|
throw error;
|
|
81
57
|
}
|
|
82
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Fetch multiple stock quotes for the given ticker symbols
|
|
61
|
+
* @param input - The stock quotes input containing the tickers and optional fields
|
|
62
|
+
* @returns Promise<StockQuoteResponse[]> - The stock quote data for each ticker
|
|
63
|
+
*/
|
|
64
|
+
async getQuotes(input) {
|
|
65
|
+
const { tickers, fields } = input;
|
|
66
|
+
const cacheKey = `quotes_${tickers.sort().join(',')}_${fields?.join(',') ?? 'all'}`;
|
|
67
|
+
const cachedResponse = this.cache.get(cacheKey);
|
|
68
|
+
if (cachedResponse) {
|
|
69
|
+
logger.debug('Cache hit for multiple stock quotes', { tickers, cacheKey });
|
|
70
|
+
return cachedResponse;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const validFields = this.prepareFields(fields);
|
|
74
|
+
const options = validFields ? { fields: validFields } : undefined;
|
|
75
|
+
const results = await this.yahooClient.quote(tickers, options);
|
|
76
|
+
if (!results) {
|
|
77
|
+
throw new NotFoundError(`Stock tickers not found: ${tickers.join(', ')}`);
|
|
78
|
+
}
|
|
79
|
+
const quotes = Array.isArray(results) ? results : [results];
|
|
80
|
+
const responses = quotes.map((quote) => this.mapToStockQuoteResponse(quote, quote.symbol ?? 'unknown', fields));
|
|
81
|
+
this.cache.set(cacheKey, responses);
|
|
82
|
+
return responses;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
if (error instanceof Error) {
|
|
86
|
+
if (error.message.includes('rate limit')) {
|
|
87
|
+
throw new RateLimitError();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Prepares and transforms field requests for Yahoo Finance
|
|
95
|
+
* @param fields - Optional list of fields requested by the client
|
|
96
|
+
* @returns string[] | undefined - Transformed fields for Yahoo Finance
|
|
97
|
+
*/
|
|
98
|
+
prepareFields(fields) {
|
|
99
|
+
if (!fields)
|
|
100
|
+
return undefined;
|
|
101
|
+
let validFields = fields.filter((field) => field.length > 0);
|
|
102
|
+
if (validFields.includes('name')) {
|
|
103
|
+
validFields = validFields.filter((f) => f !== 'name');
|
|
104
|
+
if (!validFields.includes('shortName'))
|
|
105
|
+
validFields.push('shortName');
|
|
106
|
+
if (!validFields.includes('longName'))
|
|
107
|
+
validFields.push('longName');
|
|
108
|
+
}
|
|
109
|
+
return validFields.length > 0 ? validFields : undefined;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Maps a YahooQuote to a StockQuoteResponse
|
|
113
|
+
* @param quote - YahooQuote object
|
|
114
|
+
* @param ticker - Ticker symbol
|
|
115
|
+
* @param requestedFields - Optional list of fields requested by the client
|
|
116
|
+
* @returns StockQuoteResponse
|
|
117
|
+
*/
|
|
118
|
+
mapToStockQuoteResponse(quote, ticker, requestedFields) {
|
|
119
|
+
const fullResponse = {
|
|
120
|
+
symbol: quote.symbol ?? ticker,
|
|
121
|
+
name: quote.shortName ?? quote.longName,
|
|
122
|
+
exchange: quote.exchange,
|
|
123
|
+
currency: quote.currency,
|
|
124
|
+
regularMarketPrice: quote.regularMarketPrice,
|
|
125
|
+
regularMarketChange: quote.regularMarketChange,
|
|
126
|
+
regularMarketChangePercent: quote.regularMarketChangePercent,
|
|
127
|
+
regularMarketVolume: quote.regularMarketVolume,
|
|
128
|
+
marketCap: quote.marketCap,
|
|
129
|
+
fiftyTwoWeekLow: quote.fiftyTwoWeekLow,
|
|
130
|
+
fiftyTwoWeekHigh: quote.fiftyTwoWeekHigh,
|
|
131
|
+
averageDailyVolume3Month: quote.averageDailyVolume3Month,
|
|
132
|
+
trailingPE: quote.trailingPE,
|
|
133
|
+
forwardPE: quote.forwardPE,
|
|
134
|
+
dividendYield: quote.dividendYield,
|
|
135
|
+
epsTrailingTwelveMonths: quote.epsTrailingTwelveMonths,
|
|
136
|
+
epsForward: quote.epsForward,
|
|
137
|
+
bookValue: quote.bookValue,
|
|
138
|
+
priceToBook: quote.priceToBook,
|
|
139
|
+
marketState: quote.marketState,
|
|
140
|
+
quoteType: quote.quoteType,
|
|
141
|
+
};
|
|
142
|
+
// Filter out undefined values
|
|
143
|
+
Object.keys(fullResponse).forEach((key) => fullResponse[key] === undefined &&
|
|
144
|
+
delete fullResponse[key]);
|
|
145
|
+
if (!requestedFields || requestedFields.length === 0) {
|
|
146
|
+
return fullResponse;
|
|
147
|
+
}
|
|
148
|
+
// Filter by requested fields
|
|
149
|
+
const filteredResponse = {
|
|
150
|
+
symbol: fullResponse.symbol, // Always include symbol
|
|
151
|
+
};
|
|
152
|
+
requestedFields.forEach((field) => {
|
|
153
|
+
if (field in fullResponse) {
|
|
154
|
+
filteredResponse[field] = fullResponse[field];
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
return filteredResponse;
|
|
158
|
+
}
|
|
83
159
|
/**
|
|
84
160
|
* Fetch multiple stock quotes at once
|
|
85
161
|
* @param tickers - Array of ticker symbols
|
|
@@ -164,9 +240,9 @@ export class StockQuotesService {
|
|
|
164
240
|
if (quote.date && quote.close && quote.high && quote.low && quote.volume) {
|
|
165
241
|
historicalData.push({
|
|
166
242
|
date: format(new Date(quote.date), 'yyyy-MM-dd'),
|
|
167
|
-
close: quote.close,
|
|
168
|
-
high: quote.high,
|
|
169
|
-
low: quote.low,
|
|
243
|
+
close: Math.round(quote.close * 100) / 100,
|
|
244
|
+
high: Math.round(quote.high * 100) / 100,
|
|
245
|
+
low: Math.round(quote.low * 100) / 100,
|
|
170
246
|
volume: quote.volume,
|
|
171
247
|
});
|
|
172
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stockQuotesService.js","sourceRoot":"","sources":["../src/stockQuotesService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stockQuotesService.js","sourceRoot":"","sources":["../src/stockQuotesService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRegistration.d.ts","sourceRoot":"","sources":["../src/toolRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolRegistration.d.ts","sourceRoot":"","sources":["../src/toolRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAoG/F"}
|
package/dist/toolRegistration.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from './logger.js';
|
|
2
|
-
import { HistoricalDataSchema, StockQuoteSchema, StockSearchSchema } from './types.js';
|
|
2
|
+
import { HistoricalDataSchema, StockQuoteSchema, StockQuotesSchema, StockSearchSchema, } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Register all MCP tools on a server instance
|
|
5
5
|
* @param server - MCP server instance to register tools on
|
|
@@ -25,6 +25,25 @@ export function registerToolsOnServer(server, stockService) {
|
|
|
25
25
|
structuredContent: quote,
|
|
26
26
|
};
|
|
27
27
|
});
|
|
28
|
+
server.registerTool('get_stock_quotes', {
|
|
29
|
+
title: 'Get Multiple Stock Quotes',
|
|
30
|
+
description: 'Fetch current stock quote data from Yahoo Finance for multiple ticker symbols in a single request. ' +
|
|
31
|
+
'Returns price, volume, market cap, and other key metrics for each ticker. ' +
|
|
32
|
+
'Supports stocks, ETFs, cryptocurrencies, and other financial instruments.',
|
|
33
|
+
inputSchema: StockQuotesSchema,
|
|
34
|
+
}, async ({ tickers, fields }) => {
|
|
35
|
+
logger.info('Fetching multiple stock quotes', { tickers, fields });
|
|
36
|
+
const quotes = await stockService.getQuotes({ tickers, fields });
|
|
37
|
+
return {
|
|
38
|
+
content: [
|
|
39
|
+
{
|
|
40
|
+
type: 'text',
|
|
41
|
+
text: JSON.stringify(quotes, null, 2),
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
structuredContent: { quotes },
|
|
45
|
+
};
|
|
46
|
+
});
|
|
28
47
|
server.registerTool('search_stocks', {
|
|
29
48
|
title: 'Search Stocks',
|
|
30
49
|
description: 'Search for stocks by company name or ticker symbol. ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRegistration.js","sourceRoot":"","sources":["../src/toolRegistration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,
|
|
1
|
+
{"version":3,"file":"toolRegistration.js","sourceRoot":"","sources":["../src/toolRegistration.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ export declare const StockQuoteSchema: z.ZodObject<{
|
|
|
3
3
|
ticker: z.ZodString;
|
|
4
4
|
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
5
5
|
}, z.core.$strip>;
|
|
6
|
+
export declare const StockQuotesSchema: z.ZodObject<{
|
|
7
|
+
tickers: z.ZodArray<z.ZodString>;
|
|
8
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
6
10
|
export declare const StockSearchSchema: z.ZodObject<{
|
|
7
11
|
query: z.ZodString;
|
|
8
12
|
}, z.core.$strip>;
|
|
@@ -12,6 +16,7 @@ export declare const HistoricalDataSchema: z.ZodObject<{
|
|
|
12
16
|
toDate: z.ZodString;
|
|
13
17
|
}, z.core.$strip>;
|
|
14
18
|
export type StockQuoteInput = z.infer<typeof StockQuoteSchema>;
|
|
19
|
+
export type StockQuotesInput = z.infer<typeof StockQuotesSchema>;
|
|
15
20
|
export type StockSearchInput = z.infer<typeof StockSearchSchema>;
|
|
16
21
|
export type HistoricalDataInput = z.infer<typeof HistoricalDataSchema>;
|
|
17
22
|
export interface StockQuoteResponse {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB;;;iBAQ3B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;iBAa5B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;iBAU/B,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGvE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAG7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
package/dist/types.js
CHANGED
|
@@ -9,6 +9,19 @@ export const StockQuoteSchema = z.object({
|
|
|
9
9
|
.describe('Stock ticker symbol (e.g., AAPL, GOOGL, MSFT)'),
|
|
10
10
|
fields: z.array(z.string()).optional().describe('Optional list of specific fields to return'),
|
|
11
11
|
});
|
|
12
|
+
// Schema for multiple stock quotes tool input
|
|
13
|
+
export const StockQuotesSchema = z.object({
|
|
14
|
+
tickers: z
|
|
15
|
+
.array(z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.max(10)
|
|
19
|
+
.toUpperCase()
|
|
20
|
+
.describe('Stock ticker symbol (e.g., AAPL, GOOGL, MSFT)'))
|
|
21
|
+
.min(1)
|
|
22
|
+
.describe('List of stock ticker symbols'),
|
|
23
|
+
fields: z.array(z.string()).optional().describe('Optional list of specific fields to return'),
|
|
24
|
+
});
|
|
12
25
|
// Schema for stock search tool input
|
|
13
26
|
export const StockSearchSchema = z.object({
|
|
14
27
|
query: z.string().min(1).describe('Search query (company name or ticker)'),
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,WAAW,EAAE;SACb,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAC9F,CAAC,CAAC;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CAC3E,CAAC,CAAC;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC5F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,WAAW,EAAE;SACb,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAC9F,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC;SACE,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,WAAW,EAAE;SACb,QAAQ,CAAC,+CAA+C,CAAC,CAC7D;SACA,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAC9F,CAAC,CAAC;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CAC3E,CAAC,CAAC;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC5F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC,CAAC"}
|
|
@@ -7,12 +7,12 @@ type ChartOptions = Parameters<InstanceType<typeof YahooFinance>['chart']>[1];
|
|
|
7
7
|
type ChartModuleOptions = Parameters<InstanceType<typeof YahooFinance>['chart']>[2];
|
|
8
8
|
export interface YahooClient {
|
|
9
9
|
/**
|
|
10
|
-
* Fetch stock quote(s) for a given symbol
|
|
11
|
-
* @param symbol - Ticker symbol
|
|
10
|
+
* Fetch stock quote(s) for a given symbol or symbols
|
|
11
|
+
* @param symbol - Ticker symbol or array of symbols
|
|
12
12
|
* @param options - Quote options
|
|
13
13
|
* @returns Promise<YahooQuote | YahooQuote[]> - Quote data
|
|
14
14
|
*/
|
|
15
|
-
quote(symbol: string, options?: QuoteOptions): Promise<YahooQuote | YahooQuote[]>;
|
|
15
|
+
quote(symbol: string | string[], options?: QuoteOptions): Promise<YahooQuote | YahooQuote[]>;
|
|
16
16
|
/**
|
|
17
17
|
* Search for stocks/companies
|
|
18
18
|
* @param query - Search query
|
|
@@ -38,12 +38,12 @@ export declare class YahooFinanceClient implements YahooClient {
|
|
|
38
38
|
*/
|
|
39
39
|
constructor(client?: InstanceType<typeof YahooFinance>);
|
|
40
40
|
/**
|
|
41
|
-
* Fetch stock quote(s) for a given symbol
|
|
42
|
-
* @param symbol - Ticker symbol
|
|
41
|
+
* Fetch stock quote(s) for a given symbol or symbols
|
|
42
|
+
* @param symbol - Ticker symbol or array of symbols
|
|
43
43
|
* @param options - Quote options
|
|
44
44
|
* @returns Promise<YahooQuote | YahooQuote[]> - Quote data
|
|
45
45
|
*/
|
|
46
|
-
quote(symbol: string, options?: QuoteOptions): Promise<YahooQuote | YahooQuote[]>;
|
|
46
|
+
quote(symbol: string | string[], options?: QuoteOptions): Promise<YahooQuote | YahooQuote[]>;
|
|
47
47
|
/**
|
|
48
48
|
* Search for stocks/companies
|
|
49
49
|
* @param query - Search query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yahooFinanceClient.d.ts","sourceRoot":"","sources":["../src/yahooFinanceClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtF,KAAK,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,KAAK,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,KAAK,mBAAmB,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,KAAK,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,KAAK,kBAAkB,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"yahooFinanceClient.d.ts","sourceRoot":"","sources":["../src/yahooFinanceClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtF,KAAK,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,KAAK,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,KAAK,mBAAmB,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,KAAK,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,KAAK,kBAAkB,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;IAE7F;;;;;;OAMG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D;;;OAGG;gBACS,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC;IAItD;;;;;OAKG;IACG,KAAK,CACT,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IAIrC;;;;;;OAMG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,mBAAmB,CAAC;IAK/B;;;;;;OAMG;IACG,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,kBAAkB,CAAC;CAI/B"}
|
|
@@ -9,14 +9,13 @@ export class YahooFinanceClient {
|
|
|
9
9
|
this.client = client ?? new YahooFinance();
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* Fetch stock quote(s) for a given symbol
|
|
13
|
-
* @param symbol - Ticker symbol
|
|
12
|
+
* Fetch stock quote(s) for a given symbol or symbols
|
|
13
|
+
* @param symbol - Ticker symbol or array of symbols
|
|
14
14
|
* @param options - Quote options
|
|
15
15
|
* @returns Promise<YahooQuote | YahooQuote[]> - Quote data
|
|
16
16
|
*/
|
|
17
17
|
async quote(symbol, options) {
|
|
18
|
-
|
|
19
|
-
return result;
|
|
18
|
+
return (await this.client.quote(symbol, options));
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* Search for stocks/companies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yahooFinanceClient.js","sourceRoot":"","sources":["../src/yahooFinanceClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AA6C1C,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAoC;IAE3D;;;OAGG;IACH,YAAY,MAA0C;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"yahooFinanceClient.js","sourceRoot":"","sources":["../src/yahooFinanceClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AA6C1C,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAoC;IAE3D;;;OAGG;IACH,YAAY,MAA0C;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CACT,MAAyB,EACzB,OAAsB;QAEtB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAA8B,CAAC;IACjF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAAuB,EACvB,aAAmC;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACvE,OAAO,MAA6B,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAAqB,EACrB,aAAkC;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACvE,OAAO,MAA4B,CAAC;IACtC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stockquotes-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "MCP Server for fetching stock quotes from Yahoo Finance",
|
|
5
5
|
"author": "Lionel Schiepers <lionel_schiepers@hotmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
"api"
|
|
58
58
|
],
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
60
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
61
|
+
"@stockquotes/core": "file:../StockQuotes.API/packages/stockquotes-core",
|
|
61
62
|
"date-fns": "^4.1.0",
|
|
62
63
|
"express": "^5.2.1",
|
|
63
64
|
"express-rate-limit": "^8.2.1",
|
|
@@ -69,23 +70,23 @@
|
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
72
|
-
"@semantic-release/github": "^12.0.
|
|
73
|
-
"@semantic-release/npm": "^13.1.
|
|
73
|
+
"@semantic-release/github": "^12.0.6",
|
|
74
|
+
"@semantic-release/npm": "^13.1.4",
|
|
74
75
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
75
76
|
"@types/express": "^5.0.6",
|
|
76
77
|
"@types/jest": "^30.0.0",
|
|
77
|
-
"@types/node": "^25.
|
|
78
|
+
"@types/node": "^25.2.3",
|
|
78
79
|
"@types/supertest": "^6.0.3",
|
|
79
80
|
"@types/winston": "^2.4.4",
|
|
80
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
81
|
-
"@typescript-eslint/parser": "^8.
|
|
81
|
+
"@typescript-eslint/eslint-plugin": "^8.55.0",
|
|
82
|
+
"@typescript-eslint/parser": "^8.55.0",
|
|
82
83
|
"eslint": "^9.39.2",
|
|
83
84
|
"eslint-config-prettier": "^10.1.8",
|
|
84
85
|
"husky": "^9.1.7",
|
|
85
86
|
"jest": "^30.2.0",
|
|
86
87
|
"npm-check-updates": "^19.3.2",
|
|
87
88
|
"prettier": "^3.8.1",
|
|
88
|
-
"semantic-release": "^25.0.
|
|
89
|
+
"semantic-release": "^25.0.3",
|
|
89
90
|
"supertest": "^7.2.2",
|
|
90
91
|
"ts-jest": "^29.4.6",
|
|
91
92
|
"tsx": "^4.21.0",
|