finmap-mcp 1.1.0 → 1.1.2
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 +468 -216
- package/dist/core.js +3 -3
- package/dist/stdio-server.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -60,249 +60,501 @@ npx finmap-mcp
|
|
|
60
60
|
|
|
61
61
|
## Available Tools
|
|
62
62
|
|
|
63
|
-
### 1. `
|
|
64
|
-
|
|
63
|
+
### 1. `list_exchanges`
|
|
64
|
+
- Title: List exchanges
|
|
65
|
+
- Description: Return supported exchanges with IDs, names, country, currency, earliest available date, and update frequency.
|
|
65
66
|
|
|
66
|
-
**
|
|
67
|
-
- `stockExchange`: `"moex" | "nyse" | "nasdaq" | "amex" | "lse" | "bist" | "us-all"`
|
|
68
|
-
- `year`, `month`, `day` (optional): Specific date, defaults to latest
|
|
67
|
+
**Example Promt:** `#finmap-mcp list available stock exchanges`
|
|
69
68
|
|
|
70
|
-
**Example Response:**
|
|
71
|
-
```json
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
69
|
+
**Example Response:**
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"exchanges": [
|
|
73
|
+
{
|
|
74
|
+
"id": "amex",
|
|
75
|
+
"name": "American Stock Exchange",
|
|
76
|
+
"country": "United States",
|
|
77
|
+
"currency": "USD",
|
|
78
|
+
"availableSince": "2024-12-09",
|
|
79
|
+
"updateFrequency": "Hourly (weekdays)"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "nasdaq",
|
|
83
|
+
"name": "NASDAQ Stock Market",
|
|
84
|
+
"country": "United States",
|
|
85
|
+
"currency": "USD",
|
|
86
|
+
"availableSince": "2024-12-09",
|
|
87
|
+
"updateFrequency": "Hourly (weekdays)"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "nyse",
|
|
91
|
+
"name": "New York Stock Exchange",
|
|
92
|
+
"country": "United States",
|
|
93
|
+
"currency": "USD",
|
|
94
|
+
"availableSince": "2024-12-09",
|
|
95
|
+
"updateFrequency": "Hourly (weekdays)"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "us-all",
|
|
99
|
+
"name": "US Combined (AMEX + NASDAQ + NYSE)",
|
|
100
|
+
"country": "United States",
|
|
101
|
+
"currency": "USD",
|
|
102
|
+
"availableSince": "2024-12-09",
|
|
103
|
+
"updateFrequency": "Hourly (weekdays)"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "lse",
|
|
107
|
+
"name": "London Stock Exchange",
|
|
108
|
+
"country": "United Kingdom",
|
|
109
|
+
"currency": "GBP",
|
|
110
|
+
"availableSince": "2025-02-07",
|
|
111
|
+
"updateFrequency": "Hourly (weekdays)"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "moex",
|
|
115
|
+
"name": "Moscow Exchange",
|
|
116
|
+
"country": "Russia",
|
|
117
|
+
"currency": "RUB",
|
|
118
|
+
"availableSince": "2011-12-19",
|
|
119
|
+
"updateFrequency": "Every 15 minutes (weekdays)"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "bist",
|
|
123
|
+
"name": "Borsa Istanbul",
|
|
124
|
+
"country": "Turkey",
|
|
125
|
+
"currency": "TRY",
|
|
126
|
+
"availableSince": "2015-11-30",
|
|
127
|
+
"updateFrequency": "Every two months"
|
|
128
|
+
}
|
|
129
|
+
]
|
|
98
130
|
}
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### 2. `get-tickers`
|
|
103
|
-
List all available company tickers for an exchange with optional sector filtering.
|
|
104
|
-
|
|
105
|
-
**Parameters:**
|
|
106
|
-
- `stockExchange`: Exchange identifier
|
|
107
|
-
- `englishNames`: `true` (default) | `false` - Use English or original company names
|
|
108
|
-
- `sector` (optional): Filter by specific sector
|
|
109
|
-
|
|
110
|
-
### 3. `get-marketdata-by-ticker`
|
|
111
|
-
Get detailed information for a specific company ticker.
|
|
112
|
-
|
|
113
|
-
**Parameters:**
|
|
114
|
-
- `stockExchange`: Exchange identifier
|
|
115
|
-
- `ticker`: Company ticker symbol (case-sensitive)
|
|
116
|
-
- `year`, `month`, `day` (optional): Historical date
|
|
117
|
-
|
|
118
|
-
**Example Response:**
|
|
119
|
-
```json
|
|
120
|
-
{
|
|
121
|
-
"exchange": "MOEX",
|
|
122
|
-
"country": "",
|
|
123
|
-
"type": "",
|
|
124
|
-
"sector": "Finance",
|
|
125
|
-
"industry": "",
|
|
126
|
-
"currencyId": "",
|
|
127
|
-
"ticker": "T",
|
|
128
|
-
"nameEng": "IPJSC TCS Holding",
|
|
129
|
-
"nameEngShort": "",
|
|
130
|
-
"nameOriginal": "ТКС Холдинг МКПАО ао",
|
|
131
|
-
"nameOriginalShort": "ТКСХолд ао",
|
|
132
|
-
"priceOpen": 3406.2,
|
|
133
|
-
"priceLastSale": 3404.8,
|
|
134
|
-
"priceChangePct": -0.04,
|
|
135
|
-
"volume": 3720294,
|
|
136
|
-
"value": 12722573698,
|
|
137
|
-
"numTrades": 96979,
|
|
138
|
-
"marketCap": 914012195902,
|
|
139
|
-
"listedFrom": "2024-11-27",
|
|
140
|
-
"listedTill": "",
|
|
141
|
-
"wikiPageIdEng": "51138388\r",
|
|
142
|
-
"wikiPageIdOriginal": "3124277",
|
|
143
|
-
"itemsPerSector": 0
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### 4. `get-top-marketdata`
|
|
148
|
-
Get top performing companies sorted by various metrics.
|
|
149
|
-
|
|
150
|
-
**Parameters:**
|
|
151
|
-
- `stockExchange`: Exchange identifier
|
|
152
|
-
- `sortBy`: `"marketCap" | "priceChangePct" | "volume" | "value" | "numTrades"`
|
|
153
|
-
- `order`: `"desc" | "asc"` (default: desc)
|
|
154
|
-
- `limit`: Number of results (1-500, default: 10)
|
|
131
|
+
```
|
|
155
132
|
|
|
156
|
-
|
|
133
|
+
### 2. `list_sectors`
|
|
134
|
+
- Title: List sectors
|
|
135
|
+
- Description: List available business sectors for an exchange on a specific date, including item counts.
|
|
157
136
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
137
|
+
**Example Promt:** `#finmap-mcp List sectors for the Turkish stock exchange`
|
|
138
|
+
|
|
139
|
+
**Example Response:**
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"date": "2024-08-28",
|
|
143
|
+
"exchange": "BIST",
|
|
144
|
+
"currency": "TRY",
|
|
145
|
+
"sectors": [
|
|
146
|
+
{
|
|
147
|
+
"name": "Finance",
|
|
148
|
+
"itemsPerSector": 164
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "MSPOTECW",
|
|
152
|
+
"itemsPerSector": 4669
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "MSPOTEPW",
|
|
156
|
+
"itemsPerSector": 3335
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "Industrials",
|
|
160
|
+
"itemsPerSector": 277
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "MSPOTXCR",
|
|
164
|
+
"itemsPerSector": 2
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "Real Estate",
|
|
168
|
+
"itemsPerSector": 4
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "Agriculture",
|
|
172
|
+
"itemsPerSector": 5
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "Utilities",
|
|
176
|
+
"itemsPerSector": 32
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "MSPOTGMF",
|
|
180
|
+
"itemsPerSector": 9
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "Technology",
|
|
184
|
+
"itemsPerSector": 39
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "Basic Materials",
|
|
188
|
+
"itemsPerSector": 7
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "MSPOTEMS",
|
|
192
|
+
"itemsPerSector": 1
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "MSPOTETF",
|
|
196
|
+
"itemsPerSector": 21
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "MSPOTGSF",
|
|
200
|
+
"itemsPerSector": 8
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "Consumer Staples",
|
|
204
|
+
"itemsPerSector": 27
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "Consumer Discretionary",
|
|
208
|
+
"itemsPerSector": 14
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "Health Care",
|
|
212
|
+
"itemsPerSector": 9
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "Miscellaneous",
|
|
216
|
+
"itemsPerSector": 13
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"name": "Telecommunications",
|
|
220
|
+
"itemsPerSector": 7
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "MSPOTEQT",
|
|
224
|
+
"itemsPerSector": 4
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
```
|
|
210
229
|
|
|
211
|
-
|
|
230
|
+
### 3. `list_tickers`
|
|
231
|
+
- Title: List tickers by sector
|
|
232
|
+
- Description: Return company tickers and names for an exchange on a specific date, grouped by sector.
|
|
212
233
|
|
|
213
|
-
|
|
214
|
-
|
|
234
|
+
**Example Promt:** `#finmap-mcp List companies in the Real Estate sector`
|
|
235
|
+
|
|
236
|
+
**Example Response:**
|
|
237
|
+
```json
|
|
215
238
|
{
|
|
216
|
-
"
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
"label": "Symbol",
|
|
226
|
-
"value": "SFM"
|
|
227
|
-
},
|
|
228
|
-
"Address": {
|
|
229
|
-
"label": "Address",
|
|
230
|
-
"value": "5455 EAST HIGH STREET,SUITE 111, PHOENIX, Arizona, 85054, United States"
|
|
231
|
-
},
|
|
232
|
-
"Phone": {
|
|
233
|
-
"label": "Phone",
|
|
234
|
-
"value": "+1 480 814-8016"
|
|
235
|
-
},
|
|
236
|
-
"Industry": {
|
|
237
|
-
"label": "Industry",
|
|
238
|
-
"value": "Food Chains"
|
|
239
|
-
},
|
|
240
|
-
"Sector": {
|
|
241
|
-
"label": "Sector",
|
|
242
|
-
"value": "Consumer Staples"
|
|
243
|
-
},
|
|
244
|
-
"Region": {
|
|
245
|
-
"label": "Region",
|
|
246
|
-
"value": "North America"
|
|
247
|
-
},
|
|
248
|
-
"CompanyDescription": {
|
|
249
|
-
"label": "Company Description",
|
|
250
|
-
"value": "Sprouts Farmers Market is an American specialty grocer offering an assortment highlighting fresh and naturally derived products. Its offerings are especially focused on produce, which constituted around 21% of sales in fiscal 2021. Founded in 2002, the chain is most heavily concentrated in California, which accounted for over one third of its 374 stores as of the end of fiscal 2021. All of the company's operations are in the United States, with its stores largely located in the southern half of the country. The firm sells roughly 20,000 products (of which around 70% are attribute driven, such as organic, plant-based, or catering to the keto or paleo diet), with private-label products accounting for about 16% of sales in fiscal 2021. Perishable items accounted for 58% of fiscal 2021 sales."
|
|
251
|
-
},
|
|
252
|
-
"CompanyUrl": {
|
|
253
|
-
"label": "Company Url",
|
|
254
|
-
"value": "https://www.sprouts.com"
|
|
255
|
-
},
|
|
256
|
-
"KeyExecutives": {
|
|
257
|
-
"label": "Key Executives",
|
|
258
|
-
"value": [
|
|
239
|
+
"date": "2024-08-28",
|
|
240
|
+
"exchange": "BIST",
|
|
241
|
+
"currency": "TRY",
|
|
242
|
+
"sectors": {
|
|
243
|
+
"Real Estate": [
|
|
244
|
+
{
|
|
245
|
+
"ticker": "ADESE.E",
|
|
246
|
+
"name": "ADESE GAYRIMENKUL"
|
|
247
|
+
},
|
|
259
248
|
{
|
|
260
|
-
"
|
|
261
|
-
"
|
|
249
|
+
"ticker": "IHLGM.E",
|
|
250
|
+
"name": "IHLAS GAYRIMENKUL"
|
|
262
251
|
},
|
|
263
252
|
{
|
|
264
|
-
"
|
|
265
|
-
"
|
|
253
|
+
"ticker": "RGYAS.E",
|
|
254
|
+
"name": "RONESANS GAYRIMENKUL YAT."
|
|
266
255
|
},
|
|
267
256
|
{
|
|
268
|
-
"
|
|
269
|
-
"
|
|
257
|
+
"ticker": "SONME.E",
|
|
258
|
+
"name": "SONMEZ FILAMENT"
|
|
270
259
|
}
|
|
271
260
|
]
|
|
272
261
|
}
|
|
273
|
-
},
|
|
274
|
-
"message": null,
|
|
275
|
-
"status": {
|
|
276
|
-
"rCode": 200,
|
|
277
|
-
"bCodeMessage": null,
|
|
278
|
-
"developerMessage": null
|
|
279
262
|
}
|
|
280
|
-
|
|
281
|
-
```
|
|
263
|
+
```
|
|
282
264
|
|
|
283
|
-
|
|
265
|
+
### 4. `search_companies`
|
|
266
|
+
- Title: Search companies
|
|
267
|
+
- Description: Find companies by partial name or ticker on an exchange and return best matches.
|
|
284
268
|
|
|
285
|
-
|
|
286
|
-
> "Get the current market data for MOEX and show me the top 3 sectors by market cap"
|
|
269
|
+
**Example Promt:** `#finmap-mcp Search for companies named 'Sprouts'`
|
|
287
270
|
|
|
288
|
-
|
|
271
|
+
**Example Response:**
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"date": "2025-08-28",
|
|
275
|
+
"exchange": "NASDAQ",
|
|
276
|
+
"currency": "USD",
|
|
277
|
+
"query": "Sprouts",
|
|
278
|
+
"matches": [
|
|
279
|
+
{
|
|
280
|
+
"ticker": "SFM",
|
|
281
|
+
"name": "Sprouts Farmers Market Inc. Common Stock",
|
|
282
|
+
"sector": "Consumer Staples",
|
|
283
|
+
"score": 70
|
|
284
|
+
}
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
```
|
|
289
288
|
|
|
290
|
-
|
|
289
|
+
### 5. `get_market_overview`
|
|
290
|
+
- Title: Market overview
|
|
291
|
+
- Description: Get total market cap, volume, value, and performance for an exchange on a specific date with a sector breakdown.
|
|
291
292
|
|
|
292
|
-
|
|
293
|
-
|
|
293
|
+
**Example Promt:** `#finmap-mcp market overview for Nasdaq`
|
|
294
|
+
|
|
295
|
+
**Example Response:**
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"date": "2025-08-28",
|
|
299
|
+
"exchange": "NASDAQ",
|
|
300
|
+
"currency": "USD",
|
|
301
|
+
"marketTotal": {
|
|
302
|
+
"name": "Market",
|
|
303
|
+
"marketCap": 41238186996017,
|
|
304
|
+
"marketCapChangePct": 0.6213636439596683,
|
|
305
|
+
"volume": 7606048313,
|
|
306
|
+
"value": 0,
|
|
307
|
+
"numTrades": 0,
|
|
308
|
+
"itemsPerSector": 7974
|
|
309
|
+
},
|
|
310
|
+
"sectors": [
|
|
311
|
+
{
|
|
312
|
+
"name": "Basic Materials",
|
|
313
|
+
"marketCap": 248122454077,
|
|
314
|
+
"marketCapChangePct": -0.19965738920998274,
|
|
315
|
+
"volume": 40489423,
|
|
316
|
+
"value": 0,
|
|
317
|
+
"numTrades": 0,
|
|
318
|
+
"itemsPerSector": 36
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"name": "Consumer Discretionary",
|
|
322
|
+
"marketCap": 5313249666194,
|
|
323
|
+
"marketCapChangePct": 0.5556221951442668,
|
|
324
|
+
"volume": 1029152348,
|
|
325
|
+
"value": 0,
|
|
326
|
+
"numTrades": 0,
|
|
327
|
+
"itemsPerSector": 580
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "ETFS",
|
|
331
|
+
"marketCap": 0,
|
|
332
|
+
"marketCapChangePct": null,
|
|
333
|
+
"volume": 0,
|
|
334
|
+
"value": 0,
|
|
335
|
+
"numTrades": 0,
|
|
336
|
+
"itemsPerSector": 3976
|
|
337
|
+
},
|
|
338
|
+
...
|
|
339
|
+
{
|
|
340
|
+
"name": "Utilities",
|
|
341
|
+
"marketCap": 333109407104,
|
|
342
|
+
"marketCapChangePct": -0.1881153782118469,
|
|
343
|
+
"volume": 39232326,
|
|
344
|
+
"value": 0,
|
|
345
|
+
"numTrades": 0,
|
|
346
|
+
"itemsPerSector": 48
|
|
347
|
+
}
|
|
348
|
+
]
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### 6. `get_sectors_overview`
|
|
353
|
+
- Title: Sector performance
|
|
354
|
+
- Description: Get aggregated performance metrics by sector for an exchange on a specific date.
|
|
355
|
+
|
|
356
|
+
**Example Promt:** `#finmap-mcp Get overview for the Utilities sector`
|
|
357
|
+
|
|
358
|
+
**Example Response:**
|
|
359
|
+
```json
|
|
360
|
+
{
|
|
361
|
+
"date": "2025-08-28",
|
|
362
|
+
"exchange": "NASDAQ",
|
|
363
|
+
"currency": "USD",
|
|
364
|
+
"sectors": [
|
|
365
|
+
{
|
|
366
|
+
"name": "Utilities",
|
|
367
|
+
"marketCap": 333109407104,
|
|
368
|
+
"marketCapChangePct": -0.1881153782118469,
|
|
369
|
+
"volume": 39232326,
|
|
370
|
+
"value": 0,
|
|
371
|
+
"numTrades": 0,
|
|
372
|
+
"itemsPerSector": 48
|
|
373
|
+
}
|
|
374
|
+
]
|
|
375
|
+
}
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### 7. `get_stock_data`
|
|
379
|
+
- Title: Stock data by ticker
|
|
380
|
+
- Description: Get detailed market data for a specific ticker on an exchange and date, including price, change, volume, value, market cap, and trades.
|
|
294
381
|
|
|
295
|
-
|
|
382
|
+
**Example Promt:** `#finmap-mcp Dominion Energy, stock data`
|
|
383
|
+
|
|
384
|
+
**Example Response:**
|
|
385
|
+
```json
|
|
386
|
+
{
|
|
387
|
+
"exchange": "nyse",
|
|
388
|
+
"country": "United States",
|
|
389
|
+
"currency": "USD",
|
|
390
|
+
"sector": "Utilities",
|
|
391
|
+
"ticker": "D",
|
|
392
|
+
"nameEng": "Dominion Energy Inc. Common Stock",
|
|
393
|
+
"nameOriginal": "",
|
|
394
|
+
"priceOpen": 60.34,
|
|
395
|
+
"priceLastSale": 59.81,
|
|
396
|
+
"priceChangePct": -0.878,
|
|
397
|
+
"volume": 3771759,
|
|
398
|
+
"value": 0,
|
|
399
|
+
"numTrades": 0,
|
|
400
|
+
"marketCap": 51043865111,
|
|
401
|
+
"listedFrom": "",
|
|
402
|
+
"listedTill": ""
|
|
403
|
+
}
|
|
404
|
+
```
|
|
296
405
|
|
|
297
|
-
###
|
|
298
|
-
|
|
406
|
+
### 8. `rank_stocks`
|
|
407
|
+
- Title: Rank stocks
|
|
408
|
+
- Description: Rank stocks on an exchange by a chosen metric (marketCap, priceChangePct, volume, value, numTrades) for a specific date with order and limit.
|
|
299
409
|
|
|
300
|
-
|
|
410
|
+
**Example Promt:** `#finmap-mcp UK, rank stocks by market cap`
|
|
411
|
+
|
|
412
|
+
**Example Response:**
|
|
413
|
+
```json
|
|
414
|
+
{
|
|
415
|
+
"date": "2025-08-28",
|
|
416
|
+
"exchange": "LSE",
|
|
417
|
+
"currency": "GBP",
|
|
418
|
+
"sortBy": "marketCap",
|
|
419
|
+
"order": "desc",
|
|
420
|
+
"limit": 5,
|
|
421
|
+
"count": 5,
|
|
422
|
+
"stocks": [
|
|
423
|
+
{
|
|
424
|
+
"ticker": "AZN",
|
|
425
|
+
"name": "ASTRAZENECA PLC ORD SHS $0.25",
|
|
426
|
+
"sector": "Health Care",
|
|
427
|
+
"priceLastSale": 11810,
|
|
428
|
+
"priceChangePct": -0.5557426743011115,
|
|
429
|
+
"marketCap": 184159063201,
|
|
430
|
+
"volume": 0,
|
|
431
|
+
"value": 0,
|
|
432
|
+
"numTrades": 0
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"ticker": "HSBA",
|
|
436
|
+
"name": "HSBC HLDGS PLC ORD $0.50 (UK REG)",
|
|
437
|
+
"sector": "Finance",
|
|
438
|
+
"priceLastSale": 955.8,
|
|
439
|
+
"priceChangePct": 0.1676797317124293,
|
|
440
|
+
"marketCap": 165599631829,
|
|
441
|
+
"volume": 0,
|
|
442
|
+
"value": 0,
|
|
443
|
+
"numTrades": 0
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"ticker": "SHEL",
|
|
447
|
+
"name": "SHELL PLC ORD EUR0.07",
|
|
448
|
+
"sector": "Energy",
|
|
449
|
+
"priceLastSale": 2715.5,
|
|
450
|
+
"priceChangePct": 0,
|
|
451
|
+
"marketCap": 158779785181,
|
|
452
|
+
"volume": 0,
|
|
453
|
+
"value": 0,
|
|
454
|
+
"numTrades": 0
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"ticker": "ULVR",
|
|
458
|
+
"name": "UNILEVER PLC ORD 3 1/9P",
|
|
459
|
+
"sector": "Consumer Staples",
|
|
460
|
+
"priceLastSale": 4610,
|
|
461
|
+
"priceChangePct": -0.2812026822409691,
|
|
462
|
+
"marketCap": 113348756395,
|
|
463
|
+
"volume": 0,
|
|
464
|
+
"value": 0,
|
|
465
|
+
"numTrades": 0
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"ticker": "BHP",
|
|
469
|
+
"name": "BHP GROUP LIMITED ORD NPV (DI)",
|
|
470
|
+
"sector": "Basic Materials",
|
|
471
|
+
"priceLastSale": 2073,
|
|
472
|
+
"priceChangePct": 0.6310679611650485,
|
|
473
|
+
"marketCap": 104611160052,
|
|
474
|
+
"volume": 0,
|
|
475
|
+
"value": 0,
|
|
476
|
+
"numTrades": 0
|
|
477
|
+
}
|
|
478
|
+
]
|
|
479
|
+
}
|
|
480
|
+
```
|
|
301
481
|
|
|
302
|
-
###
|
|
303
|
-
|
|
482
|
+
### 9. `get_company_profile`
|
|
483
|
+
- Title: Company profile (US)
|
|
484
|
+
- Description: Get business description, industry, and background for a US-listed company by ticker.
|
|
304
485
|
|
|
305
|
-
|
|
486
|
+
**Example Promt:** `#finmap-mcp Sprouts Farmers Market, get company profile`
|
|
487
|
+
|
|
488
|
+
**Example Response:**
|
|
489
|
+
```json
|
|
490
|
+
{
|
|
491
|
+
"data": {
|
|
492
|
+
"ModuleTitle": {
|
|
493
|
+
"label": "Module Title",
|
|
494
|
+
"value": "Company Description"
|
|
495
|
+
},
|
|
496
|
+
"CompanyName": {
|
|
497
|
+
"label": "Company Name",
|
|
498
|
+
"value": "Sprouts Farmers Market, Inc."
|
|
499
|
+
},
|
|
500
|
+
"Symbol": {
|
|
501
|
+
"label": "Symbol",
|
|
502
|
+
"value": "SFM"
|
|
503
|
+
},
|
|
504
|
+
"Address": {
|
|
505
|
+
"label": "Address",
|
|
506
|
+
"value": "5455 EAST HIGH STREET,SUITE 111, PHOENIX, Arizona, 85054, United States"
|
|
507
|
+
},
|
|
508
|
+
"Phone": {
|
|
509
|
+
"label": "Phone",
|
|
510
|
+
"value": "+1 480 814-8016"
|
|
511
|
+
},
|
|
512
|
+
"Industry": {
|
|
513
|
+
"label": "Industry",
|
|
514
|
+
"value": "Food Chains"
|
|
515
|
+
},
|
|
516
|
+
"Sector": {
|
|
517
|
+
"label": "Sector",
|
|
518
|
+
"value": "Consumer Staples"
|
|
519
|
+
},
|
|
520
|
+
"Region": {
|
|
521
|
+
"label": "Region",
|
|
522
|
+
"value": "North America"
|
|
523
|
+
},
|
|
524
|
+
"CompanyDescription": {
|
|
525
|
+
"label": "Company Description",
|
|
526
|
+
"value": "Sprouts Farmers Market is an American specialty grocer offering an assortment highlighting fresh and naturally derived products. Its offerings are especially focused on produce, which constituted around 21% of sales in fiscal 2021. Founded in 2002, the chain is most heavily concentrated in California, which accounted for over one third of its 374 stores as of the end of fiscal 2021. All of the company's operations are in the United States, with its stores largely located in the southern half of the country. The firm sells roughly 20,000 products (of which around 70% are attribute driven, such as organic, plant-based, or catering to the keto or paleo diet), with private-label products accounting for about 16% of sales in fiscal 2021. Perishable items accounted for 58% of fiscal 2021 sales."
|
|
527
|
+
},
|
|
528
|
+
"CompanyUrl": {
|
|
529
|
+
"label": "Company Url",
|
|
530
|
+
"value": "https://www.sprouts.com"
|
|
531
|
+
},
|
|
532
|
+
"KeyExecutives": {
|
|
533
|
+
"label": "Key Executives",
|
|
534
|
+
"value": [
|
|
535
|
+
{
|
|
536
|
+
"name": "Jack Loudon Sinclair",
|
|
537
|
+
"title": "Chief Executive Officer & Director"
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
"name": "James Bahrenburg",
|
|
541
|
+
"title": "Chief Technology Officer"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"name": "Nicholas Konat",
|
|
545
|
+
"title": "President & Chief Operating Officer"
|
|
546
|
+
}
|
|
547
|
+
]
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
"message": null,
|
|
551
|
+
"status": {
|
|
552
|
+
"rCode": 200,
|
|
553
|
+
"bCodeMessage": null,
|
|
554
|
+
"developerMessage": null
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
```
|
|
306
558
|
|
|
307
559
|
|
|
308
560
|
## Data Provider
|
package/dist/core.js
CHANGED
|
@@ -74,8 +74,8 @@ function createErrorResponse(error) {
|
|
|
74
74
|
}
|
|
75
75
|
function createCharts(exchange, date) {
|
|
76
76
|
return {
|
|
77
|
-
histogram: `${BASE_URL}/?
|
|
78
|
-
treemap: `${BASE_URL}/?
|
|
77
|
+
histogram: `${BASE_URL}/?chart=histogram&data=marketcap¤cy=USD&exchange=${exchange}`,
|
|
78
|
+
treemap: `${BASE_URL}/?chart=treemap&data=marketcap¤cy=USD&exchange=${exchange}${date ? `&date=${date.replaceAll("-", "/")}` : ""}`,
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
function calculateMatchScore(ticker, name, searchTerm) {
|
|
@@ -224,7 +224,7 @@ export function registerFinmapTools(server) {
|
|
|
224
224
|
});
|
|
225
225
|
const sectors = Object.entries(sectorCounts).map(([name, count]) => ({
|
|
226
226
|
name,
|
|
227
|
-
count,
|
|
227
|
+
itemsPerSector: count,
|
|
228
228
|
}));
|
|
229
229
|
return createResponse({
|
|
230
230
|
info: INFO,
|
package/dist/stdio-server.js
CHANGED
|
@@ -4,7 +4,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
5
|
const server = new McpServer({
|
|
6
6
|
name: "finmap-mcp",
|
|
7
|
-
version: "1.1.
|
|
7
|
+
version: "1.1.2",
|
|
8
8
|
});
|
|
9
9
|
registerFinmapTools(server);
|
|
10
10
|
const transport = new StdioServerTransport();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "finmap-mcp",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "MCP server providing financial market data from finmap.org",
|
|
5
5
|
"main": "./dist/stdio-server.js",
|
|
6
6
|
"type": "module",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"package": "npm run build:stdio && npm pack --pack-destination dist"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@modelcontextprotocol/sdk": "1.17.
|
|
76
|
+
"@modelcontextprotocol/sdk": "1.17.5",
|
|
77
77
|
"agents": "^0.0.113",
|
|
78
78
|
"zod": "^3.25.76"
|
|
79
79
|
},
|
|
@@ -83,6 +83,6 @@
|
|
|
83
83
|
"rimraf": "^6.0.1",
|
|
84
84
|
"tsx": "^4.20.5",
|
|
85
85
|
"typescript": "5.9.2",
|
|
86
|
-
"wrangler": "^4.33.
|
|
86
|
+
"wrangler": "^4.33.2"
|
|
87
87
|
}
|
|
88
88
|
}
|