stockquotes-mcp 1.0.26 → 1.0.28

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/README.md CHANGED
@@ -51,7 +51,7 @@ It transforms your AI from a static text generator into a dynamic financial anal
51
51
  - **Real-time Data**: Instant access to prices, volume, market cap, and more via Yahoo Finance.
52
52
  - **Smart Caching**: Built-in caching (5min for quotes, 30min for search) to optimize performance and reduce API limits.
53
53
  - **Dual Transport**: Supports `stdio` (for local CLIs) and `HTTP/SSE` (for remote/web clients).
54
- - **Secure & Robust**: HTTP transport includes `helmet` security headers and rate limiting (100 req/15min).
54
+ - **Secure & Robust**: HTTP transport includes `helmet` security headers and rate limiting (120 req/min).
55
55
  - **Smart Search**: Fuzzy search for stocks by company name or ticker symbol.
56
56
  - **Multi-Asset Support**: Works with Stocks, ETFs, Cryptocurrencies, and Indices.
57
57
  - **Type-Safe**: Built with 100% TypeScript for reliability.
@@ -74,8 +74,8 @@ export class HttpTransportStrategy {
74
74
  this.expressApp.use(helmet());
75
75
  // Apply rate limiting to all routes
76
76
  const limiter = rateLimit({
77
- windowMs: 15 * 60 * 1000, // 15 minutes
78
- max: 100, // limit each IP to 100 requests per windowMs
77
+ windowMs: 1 * 60 * 1000, // 1 minute
78
+ max: 120, // limit each IP to 120 requests per windowMs
79
79
  standardHeaders: true,
80
80
  legacyHeaders: false,
81
81
  message: {
@@ -1 +1 @@
1
- {"version":3,"file":"HttpTransportStrategy.js","sourceRoot":"","sources":["../../src/transports/HttpTransportStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpTransportStrategy.js","sourceRoot":"","sources":["../../src/transports/HttpTransportStrategy.ts"],"names":[],"mappings":"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"}
@@ -32,11 +32,17 @@ export interface YahooClient {
32
32
  }
33
33
  export declare class YahooFinanceClient implements YahooClient {
34
34
  private readonly client;
35
+ private static queue;
35
36
  /**
36
37
  * Create a new YahooFinanceClient
37
38
  * @param client - Optional YahooFinance instance
38
39
  */
39
40
  constructor(client?: InstanceType<typeof YahooFinance>);
41
+ /**
42
+ * Enqueues a task to be executed sequentially.
43
+ * Ensures only one Yahoo Finance call is active at a time across all instances.
44
+ */
45
+ private enqueue;
40
46
  /**
41
47
  * Fetch stock quote(s) for a given symbol or symbols
42
48
  * @param symbol - Ticker symbol or array of symbols
@@ -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,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"}
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;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAoC;IAExD;;;OAGG;gBACS,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC;IAItD;;;OAGG;YACW,OAAO;IAerB;;;;;OAKG;IACG,KAAK,CACT,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IAMrC;;;;;;OAMG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,mBAAmB,CAAC;IAO/B;;;;;;OAMG;IACG,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,kBAAkB,CAAC;CAM/B"}
@@ -1,6 +1,7 @@
1
1
  import YahooFinance from 'yahoo-finance2';
2
2
  export class YahooFinanceClient {
3
3
  client;
4
+ static queue = Promise.resolve();
4
5
  /**
5
6
  * Create a new YahooFinanceClient
6
7
  * @param client - Optional YahooFinance instance
@@ -8,6 +9,24 @@ export class YahooFinanceClient {
8
9
  constructor(client) {
9
10
  this.client = client ?? new YahooFinance();
10
11
  }
12
+ /**
13
+ * Enqueues a task to be executed sequentially.
14
+ * Ensures only one Yahoo Finance call is active at a time across all instances.
15
+ */
16
+ async enqueue(task) {
17
+ const previous = YahooFinanceClient.queue;
18
+ let resolveNext;
19
+ YahooFinanceClient.queue = new Promise((resolve) => {
20
+ resolveNext = resolve;
21
+ });
22
+ try {
23
+ await previous;
24
+ return await task();
25
+ }
26
+ finally {
27
+ resolveNext();
28
+ }
29
+ }
11
30
  /**
12
31
  * Fetch stock quote(s) for a given symbol or symbols
13
32
  * @param symbol - Ticker symbol or array of symbols
@@ -15,7 +34,7 @@ export class YahooFinanceClient {
15
34
  * @returns Promise<YahooQuote | YahooQuote[]> - Quote data
16
35
  */
17
36
  async quote(symbol, options) {
18
- return (await this.client.quote(symbol, options));
37
+ return this.enqueue(async () => (await this.client.quote(symbol, options)));
19
38
  }
20
39
  /**
21
40
  * Search for stocks/companies
@@ -25,8 +44,10 @@ export class YahooFinanceClient {
25
44
  * @returns Promise<YahooSearchResponse> - Search results
26
45
  */
27
46
  async search(query, options, moduleOptions) {
28
- const result = await this.client.search(query, options, moduleOptions);
29
- return result;
47
+ return this.enqueue(async () => {
48
+ const result = await this.client.search(query, options, moduleOptions);
49
+ return result;
50
+ });
30
51
  }
31
52
  /**
32
53
  * Fetch chart data (historical data)
@@ -36,8 +57,10 @@ export class YahooFinanceClient {
36
57
  * @returns Promise<YahooChartResponse> - Chart data
37
58
  */
38
59
  async chart(symbol, options, moduleOptions) {
39
- const result = await this.client.chart(symbol, options, moduleOptions);
40
- return result;
60
+ return this.enqueue(async () => {
61
+ const result = await this.client.chart(symbol, options, moduleOptions);
62
+ return result;
63
+ });
41
64
  }
42
65
  }
43
66
  //# sourceMappingURL=yahooFinanceClient.js.map
@@ -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,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"}
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;IACnD,MAAM,CAAC,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAExD;;;OAGG;IACH,YAAY,MAA0C;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,OAAO,CAAI,IAAsB;QAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAC1C,IAAI,WAAuB,CAAC;QAC5B,kBAAkB,CAAC,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACvD,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC;YACf,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,WAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CACT,MAAyB,EACzB,OAAsB;QAEtB,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAA8B,CACpF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAAuB,EACvB,aAAmC;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YACvE,OAAO,MAA6B,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAAqB,EACrB,aAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YACvE,OAAO,MAA4B,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stockquotes-mcp",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
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",