finmap-mcp 1.0.5 → 1.0.7
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 +11 -17
- package/dist/core.js +49 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,25 +1,18 @@
|
|
|
1
1
|
# Finmap MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
- **Comprehensive Data**: Market capitalization, trading volume, price changes, sector analysis
|
|
8
|
-
- **Interactive Charts**: Direct links to finmap.org visualizations
|
|
9
|
-
- **Both Remote & Local**: Cloudflare Workers hosted server + npm package
|
|
10
|
-
- **Rich Metadata**: Company information, sector classifications, historical data
|
|
3
|
+
The finmap.org MCP server provides comprehensive historical data from the US, UK, Russian and Turkish stock exchanges. Access sectors, tickers, company profiles, market cap, volume, value, and trade counts, as well as treemap and histogram visualizations.
|
|
11
4
|
|
|
12
5
|
## Supported Exchanges
|
|
13
6
|
|
|
14
|
-
| Exchange | Code | Country | Earliest Data |
|
|
15
|
-
|
|
16
|
-
| Moscow Exchange | `moex` | Russia | 2011-12-19 |
|
|
17
|
-
| New York Stock Exchange | `nyse` |
|
|
18
|
-
| NASDAQ | `nasdaq` |
|
|
19
|
-
| American Stock Exchange | `amex` |
|
|
20
|
-
|
|
|
21
|
-
| London Stock Exchange | `lse` |
|
|
22
|
-
| Borsa Istanbul | `bist` | Turkey | 2015-11-30 |
|
|
7
|
+
| Exchange | Code | Country | Earliest Data | Update Frequency |
|
|
8
|
+
|----------|------|---------|---------------|------------------|
|
|
9
|
+
| Moscow Exchange | `moex` | Russia | 2011-12-19 | Every 15 minutes (weekdays) |
|
|
10
|
+
| New York Stock Exchange | `nyse` | United States | 2024-12-09 | Hourly (weekdays) |
|
|
11
|
+
| NASDAQ Stock Market | `nasdaq` | United States | 2024-12-09 | Hourly (weekdays) |
|
|
12
|
+
| American Stock Exchange | `amex` | United States | 2024-12-09 | Hourly (weekdays) |
|
|
13
|
+
| US Combined (AMEX + NASDAQ + NYSE) | `us-all` | United States | 2024-12-09 | Hourly (weekdays) |
|
|
14
|
+
| London Stock Exchange | `lse` | United Kingdom | 2025-02-07 | Hourly (weekdays) |
|
|
15
|
+
| Borsa Istanbul | `bist` | Turkey | 2015-11-30 | Bi-monthly |
|
|
23
16
|
|
|
24
17
|
## Installation & Usage
|
|
25
18
|
|
|
@@ -219,6 +212,7 @@ Get detailed company information including business description (US market only)
|
|
|
219
212
|
|
|
220
213
|
```json
|
|
221
214
|
{
|
|
215
|
+
{
|
|
222
216
|
"ModuleTitle": {
|
|
223
217
|
"label": "Module Title",
|
|
224
218
|
"value": "Company Description"
|
package/dist/core.js
CHANGED
|
@@ -46,14 +46,49 @@ const EXCHANGE_TO_COUNTRY_MAP = {
|
|
|
46
46
|
moex: "russia",
|
|
47
47
|
bist: "turkey",
|
|
48
48
|
};
|
|
49
|
-
const
|
|
50
|
-
amex:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
const EXCHANGE_INFO = {
|
|
50
|
+
amex: {
|
|
51
|
+
name: "American Stock Exchange",
|
|
52
|
+
country: "United States",
|
|
53
|
+
availableSince: "2024-12-09",
|
|
54
|
+
updateFrequency: "Hourly (weekdays)",
|
|
55
|
+
},
|
|
56
|
+
nasdaq: {
|
|
57
|
+
name: "NASDAQ Stock Market",
|
|
58
|
+
country: "United States",
|
|
59
|
+
availableSince: "2024-12-09",
|
|
60
|
+
updateFrequency: "Hourly (weekdays)",
|
|
61
|
+
},
|
|
62
|
+
nyse: {
|
|
63
|
+
name: "New York Stock Exchange",
|
|
64
|
+
country: "United States",
|
|
65
|
+
availableSince: "2024-12-09",
|
|
66
|
+
updateFrequency: "Hourly (weekdays)",
|
|
67
|
+
},
|
|
68
|
+
"us-all": {
|
|
69
|
+
name: "US Combined (AMEX + NASDAQ + NYSE)",
|
|
70
|
+
country: "United States",
|
|
71
|
+
availableSince: "2024-12-09",
|
|
72
|
+
updateFrequency: "Hourly (weekdays)",
|
|
73
|
+
},
|
|
74
|
+
lse: {
|
|
75
|
+
name: "London Stock Exchange",
|
|
76
|
+
country: "United Kingdom",
|
|
77
|
+
availableSince: "2025-02-07",
|
|
78
|
+
updateFrequency: "Hourly (weekdays)",
|
|
79
|
+
},
|
|
80
|
+
moex: {
|
|
81
|
+
name: "Moscow Exchange",
|
|
82
|
+
country: "Russia",
|
|
83
|
+
availableSince: "2011-12-19",
|
|
84
|
+
updateFrequency: "Every 15 minutes (weekdays)",
|
|
85
|
+
},
|
|
86
|
+
bist: {
|
|
87
|
+
name: "Borsa Istanbul",
|
|
88
|
+
country: "Turkey",
|
|
89
|
+
availableSince: "2015-11-30",
|
|
90
|
+
updateFrequency: "Bi-monthly",
|
|
91
|
+
},
|
|
57
92
|
};
|
|
58
93
|
const commonInputSchema = {
|
|
59
94
|
stockExchange: z
|
|
@@ -92,7 +127,7 @@ async function fetchMarketData(stockExchange, formattedDate) {
|
|
|
92
127
|
const url = `${DATA_BASE_URL}/data-${country}/refs/heads/main/marketdata/${date}/${stockExchange}.json`;
|
|
93
128
|
const response = await fetch(url);
|
|
94
129
|
if (response.status === 404) {
|
|
95
|
-
throw new Error(`Not found, try another date. The date must be on or after ${
|
|
130
|
+
throw new Error(`Not found, try another date. The date must be on or after ${EXCHANGE_INFO[stockExchange].availableSince} for ${stockExchange}`);
|
|
96
131
|
}
|
|
97
132
|
return response.json();
|
|
98
133
|
}
|
|
@@ -107,16 +142,16 @@ async function fetchSecurityInfo(exchange, ticker) {
|
|
|
107
142
|
return data;
|
|
108
143
|
}
|
|
109
144
|
export function registerFinmapTools(server) {
|
|
110
|
-
server.registerResource("
|
|
111
|
-
title: "
|
|
112
|
-
description: "
|
|
145
|
+
server.registerResource("exchanges-info", "finmap://exchanges-info", {
|
|
146
|
+
title: "Stock exchanges information",
|
|
147
|
+
description: "Available stock exchanges with details about data availability and update frequency",
|
|
113
148
|
mimeType: "application/json",
|
|
114
149
|
}, async () => {
|
|
115
150
|
return {
|
|
116
151
|
contents: [
|
|
117
152
|
{
|
|
118
|
-
uri: "finmap://
|
|
119
|
-
text: JSON.stringify(
|
|
153
|
+
uri: "finmap://exchanges-info",
|
|
154
|
+
text: JSON.stringify(EXCHANGE_INFO, null, 2),
|
|
120
155
|
},
|
|
121
156
|
],
|
|
122
157
|
};
|