@insightsentry/mcp 1.4.2 → 1.4.4
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 +70 -143
- package/bin/insight.js +1 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +3 -8
- package/dist/api-client.js.map +1 -1
- package/dist/auth-status.d.ts +23 -0
- package/dist/auth-status.d.ts.map +1 -0
- package/dist/auth-status.js +86 -0
- package/dist/auth-status.js.map +1 -0
- package/dist/chart.d.ts.map +1 -1
- package/dist/chart.js +3 -3
- package/dist/chart.js.map +1 -1
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +42 -41
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -5
- package/dist/config.js.map +1 -1
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +14 -21
- package/dist/history.js.map +1 -1
- package/dist/index.js +73 -66
- package/dist/index.js.map +1 -1
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +1 -1
- package/dist/resources.js.map +1 -1
- package/dist/response-storage.js +5 -1
- package/dist/response-storage.js.map +1 -1
- package/dist/tool-runner.d.ts.map +1 -1
- package/dist/tool-runner.js +1 -1
- package/dist/tool-runner.js.map +1 -1
- package/package.json +9 -2
package/dist/index.js
CHANGED
|
@@ -2,12 +2,14 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { ApiClient } from "./api-client.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { flexibleInputSchema } from "./arg-coercion.js";
|
|
6
|
+
import { getAuthStatus, getWhoami } from "./auth-status.js";
|
|
7
7
|
import { renderChart } from "./chart.js";
|
|
8
|
+
import { resolveApiKeyWithSource } from "./config.js";
|
|
8
9
|
import { downloadHistory } from "./history.js";
|
|
10
|
+
import { docResources } from "./resources.js";
|
|
11
|
+
import { toolDefinitions } from "./tool-definitions.js";
|
|
9
12
|
import { runApiTool } from "./tool-runner.js";
|
|
10
|
-
import { flexibleInputSchema } from "./arg-coercion.js";
|
|
11
13
|
const INSTRUCTIONS = `You are connected to the InsightSentry financial data API. You have access to real-time and historical market data for equities, futures, options, crypto, forex, and more.
|
|
12
14
|
|
|
13
15
|
## IMPORTANT: Symbol Code Format
|
|
@@ -26,6 +28,9 @@ If you're unsure about a symbol code, search for it: \`search_symbols({ query: "
|
|
|
26
28
|
|
|
27
29
|
## Common Workflows
|
|
28
30
|
|
|
31
|
+
### "Am I logged in?" / "Is InsightSentry configured?"
|
|
32
|
+
Call \`whoami\` to check whether this MCP server has an InsightSentry API key configured. It parses the local JWT and returns the logged-in user's email/uuid without calling the external API.
|
|
33
|
+
|
|
29
34
|
### "Get me data on a stock/crypto/asset"
|
|
30
35
|
1. \`search_symbols\` — **Always start here.** Find the correct EXCHANGE:SYMBOL code.
|
|
31
36
|
2. Then use any combination of:
|
|
@@ -89,23 +94,23 @@ API responses can be large (e.g., 30k bars of time series, hundreds of fundament
|
|
|
89
94
|
**Always use \`filter\` when you don't need the full response.** Only omit it when the user explicitly asks for raw data or when debugging.
|
|
90
95
|
|
|
91
96
|
Examples:
|
|
92
|
-
- \`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 2000, filter: "{
|
|
97
|
+
- \`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 2000, filter: "{ "code": code, "avg_close": $average(series.close), "max_high": $max(series.high), "min_low": $min(series.low) }" })\` — compute aggregates server-side instead of consuming all bars
|
|
93
98
|
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "$distinct(data.category)" })\` — list available categories first
|
|
94
|
-
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data.{
|
|
95
|
-
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data[category='Statistics'].{
|
|
99
|
+
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data.{ "id": id, "name": name }" })\` — list all field id+name pairs (without values, lightweight overview)
|
|
100
|
+
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data[category='Statistics'].{ "id": id, "name": name, "value": value }" })\` — then grab specific category with values
|
|
96
101
|
- \`screen_stocks({ fields: ["close", "volume", "market_cap"], filter: "$sum(data[market_cap != null].market_cap)" })\` — aggregate instead of listing rows (filter nulls first, as some rows may lack a field)
|
|
97
102
|
- \`get_stock_screener_params({ filter: "available_fields[$contains($, \\"volume\\")]" })\` — search screener fields by keyword (available_fields is a flat string array, not objects)
|
|
98
103
|
- \`get_symbol_info({ symbol: "NASDAQ:AAPL", filter: "$keys($)" })\` — list all available fields first
|
|
99
|
-
- \`get_symbol_info({ symbol: "NASDAQ:AAPL", filter: "{
|
|
100
|
-
- \`get_newsfeed({ keywords: "tesla", filter: "data[[0..2]].{
|
|
101
|
-
- \`get_fundamentals_meta({ filter: "base[$contains($lowercase(name),
|
|
104
|
+
- \`get_symbol_info({ symbol: "NASDAQ:AAPL", filter: "{ "sector": sector, "industry": industry, "market_cap": market_cap, "ceo": ceo }" })\` — then pick specific fields
|
|
105
|
+
- \`get_newsfeed({ keywords: "tesla", filter: "data[[0..2]].{ "title": title, "published_at": published_at }" })\` — first 3 headlines only
|
|
106
|
+
- \`get_fundamentals_meta({ filter: "base[$contains($lowercase(name), "cash flow")].{ "id": id, "name": name, "period": period }" })\` — search available fields by keyword
|
|
102
107
|
- \`get_fundamentals_meta({ filter: "$distinct(base.category)" })\` — list all available categories
|
|
103
108
|
- \`get_fundamentals_meta({ filter: "$distinct(base.group)" })\` — list all available groups
|
|
104
|
-
- \`get_fundamentals_meta({ filter: "fundamental_series[$contains($lowercase(name),
|
|
105
|
-
- \`get_options_expiration({ code: "NASDAQ:AAPL", expiration: "2026-06-17", range: 10, type: "call", filter: "data[$abs(delta) >= 0.4 and $abs(delta) <= 0.6].{
|
|
106
|
-
- \`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 300, filter: "{
|
|
107
|
-
- \`screen_stocks({ fields: ["close", "volume", "market_cap", "change_percent"], filter: "data[change_percent][change_percent > 0].{
|
|
108
|
-
- \`get_documents({ code: "NASDAQ:AAPL", filter: "$[form
|
|
109
|
+
- \`get_fundamentals_meta({ filter: "fundamental_series[$contains($lowercase(name), "cash") or $contains($lowercase(name), "income")].id" })\` — find series IDs for use with get_fundamentals_series
|
|
110
|
+
- \`get_options_expiration({ code: "NASDAQ:AAPL", expiration: "2026-06-17", range: 10, type: "call", filter: "data[$abs(delta) >= 0.4 and $abs(delta) <= 0.6].{ "code": code, "strike": strike_price, "delta": delta, "iv": implied_volatility }" })\` — API narrows to ±10% strikes + calls, then filter refines by delta
|
|
111
|
+
- \`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 300, filter: "{ "code": code, "period_return_pct": $round((series[-1].close - series[0].open) / series[0].open * 100, 2), "total_volume": $sum(series.volume) }" })\` — compute period return and total volume
|
|
112
|
+
- \`screen_stocks({ fields: ["close", "volume", "market_cap", "change_percent"], filter: "data[change_percent][change_percent > 0].{ "name": name, "change_percent": change_percent }" })\` — only gainers (first predicate filters out nulls)
|
|
113
|
+
- \`get_documents({ code: "NASDAQ:AAPL", filter: "$[form="10-K" or form="10-Q"].{ "id": id, "title": title, "form": form }" })\` — only SEC filings (10-K/10-Q)
|
|
109
114
|
|
|
110
115
|
Also prefer API-level filtering when available (screener field selection, option \`type\`/\`range\` filters), then combine it with \`filter\` when you need additional shaping.
|
|
111
116
|
|
|
@@ -113,16 +118,16 @@ Also prefer API-level filtering when available (screener field selection, option
|
|
|
113
118
|
Screener fields are limited to 10 per request — pick the most relevant ones and use \`filter\` to narrow and reshape results.
|
|
114
119
|
|
|
115
120
|
**Value screen** — low P/E, cheap on cash flow:
|
|
116
|
-
\`screen_stocks({ fields: ["close", "market_cap", "price_earnings_ttm", "price_free_cash_flow_ttm", "dividends_yield", "enterprise_value_ebitda_ttm"], exchanges: ["NYSE", "NASDAQ"], sortBy: "market_cap", sortOrder: "desc", filter: "data[price_earnings_ttm][price_free_cash_flow_ttm][price_earnings_ttm > 0 and price_earnings_ttm < 15 and price_free_cash_flow_ttm < 10].{
|
|
121
|
+
\`screen_stocks({ fields: ["close", "market_cap", "price_earnings_ttm", "price_free_cash_flow_ttm", "dividends_yield", "enterprise_value_ebitda_ttm"], exchanges: ["NYSE", "NASDAQ"], sortBy: "market_cap", sortOrder: "desc", filter: "data[price_earnings_ttm][price_free_cash_flow_ttm][price_earnings_ttm > 0 and price_earnings_ttm < 15 and price_free_cash_flow_ttm < 10].{ "name": name, "code": symbol_code, "pe": price_earnings_ttm, "p_fcf": price_free_cash_flow_ttm, "div_yield": dividends_yield, "ev_ebitda": enterprise_value_ebitda_ttm }" })\`
|
|
117
122
|
|
|
118
123
|
**Momentum screen** — strong 3-month performance + unusual volume:
|
|
119
|
-
\`screen_stocks({ fields: ["close", "market_cap", "change_percent_1W", "performance_3_month", "relative_volume_intraday", "average_volume_30d"], exchanges: ["NYSE", "NASDAQ"], sortBy: "performance_3_month", sortOrder: "desc", filter: "data[performance_3_month][relative_volume_intraday][performance_3_month > 20 and relative_volume_intraday > 1.5].{
|
|
124
|
+
\`screen_stocks({ fields: ["close", "market_cap", "change_percent_1W", "performance_3_month", "relative_volume_intraday", "average_volume_30d"], exchanges: ["NYSE", "NASDAQ"], sortBy: "performance_3_month", sortOrder: "desc", filter: "data[performance_3_month][relative_volume_intraday][performance_3_month > 20 and relative_volume_intraday > 1.5].{ "name": name, "code": symbol_code, "perf_3m": performance_3_month, "chg_1w": change_percent_1W, "rvol": relative_volume_intraday }" })\`
|
|
120
125
|
|
|
121
126
|
**Quality screen** — high ROIC, low leverage, strong margins:
|
|
122
|
-
\`screen_stocks({ fields: ["close", "market_cap", "return_on_invested_capital_fq", "debt_to_equity_fq", "operating_margin_ttm", "free_cash_flow_margin_ttm", "gross_margin_ttm"], exchanges: ["NYSE", "NASDAQ"], sortBy: "market_cap", sortOrder: "desc", filter: "data[return_on_invested_capital_fq][debt_to_equity_fq][operating_margin_ttm][return_on_invested_capital_fq > 20 and debt_to_equity_fq < 1 and operating_margin_ttm > 25].{
|
|
127
|
+
\`screen_stocks({ fields: ["close", "market_cap", "return_on_invested_capital_fq", "debt_to_equity_fq", "operating_margin_ttm", "free_cash_flow_margin_ttm", "gross_margin_ttm"], exchanges: ["NYSE", "NASDAQ"], sortBy: "market_cap", sortOrder: "desc", filter: "data[return_on_invested_capital_fq][debt_to_equity_fq][operating_margin_ttm][return_on_invested_capital_fq > 20 and debt_to_equity_fq < 1 and operating_margin_ttm > 25].{ "name": name, "code": symbol_code, "roic": return_on_invested_capital_fq, "d_e": debt_to_equity_fq, "op_margin": operating_margin_ttm, "fcf_margin": free_cash_flow_margin_ttm }" })\`
|
|
123
128
|
|
|
124
129
|
**Volatility + volume spike** — unusual activity detection:
|
|
125
|
-
\`screen_stocks({ fields: ["close", "market_cap", "volatility_week", "volatility_month", "relative_volume_intraday", "gap", "change_percent"], exchanges: ["NYSE", "NASDAQ"], sortBy: "relative_volume_intraday", sortOrder: "desc", filter: "data[relative_volume_intraday][volatility_week][relative_volume_intraday > 2 and volatility_week > 3].{
|
|
130
|
+
\`screen_stocks({ fields: ["close", "market_cap", "volatility_week", "volatility_month", "relative_volume_intraday", "gap", "change_percent"], exchanges: ["NYSE", "NASDAQ"], sortBy: "relative_volume_intraday", sortOrder: "desc", filter: "data[relative_volume_intraday][volatility_week][relative_volume_intraday > 2 and volatility_week > 3].{ "name": name, "code": symbol_code, "vol_w": volatility_week, "rvol": relative_volume_intraday, "gap": gap, "chg": change_percent }" })\`
|
|
126
131
|
|
|
127
132
|
## Charting with \`render_chart\`
|
|
128
133
|
|
|
@@ -133,81 +138,94 @@ Use \`render_chart\` to visualize data as PNG images. It accepts a full [Chart.j
|
|
|
133
138
|
\`\`\`json
|
|
134
139
|
{ "code": "NASDAQ:AAPL", "bar_type": "1d", "series": [{ "time": 1733432340, "open": 242.89, "high": 243.09, "low": 242.82, "close": 243.08, "volume": 533779 }, ...] }
|
|
135
140
|
\`\`\`
|
|
136
|
-
Use \`filter\` to extract parallel arrays for charting — e.g., \`filter: "{
|
|
141
|
+
Use \`filter\` to extract parallel arrays for charting — e.g., \`filter: "{ "labels": series.$fromMillis(time * 1000, "[M01]/[D01]"), "close": series.close }"\`.
|
|
137
142
|
|
|
138
143
|
### Example: Line chart — daily closing prices
|
|
139
144
|
Step 1: Fetch data with filter to extract labels and values:
|
|
140
|
-
\`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 30, filter: "{
|
|
145
|
+
\`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 30, filter: "{ "labels": series.$fromMillis(time * 1000, "[M01]/[D01]"), "close": series.close }" })\`
|
|
141
146
|
→ returns \`{ "labels": ["03/01", "03/02", ...], "close": [242.5, 243.1, ...] }\`
|
|
142
147
|
|
|
143
148
|
Step 2: Pass to render_chart:
|
|
144
|
-
\`render_chart({ config: "{
|
|
149
|
+
\`render_chart({ config: "{ "type": "line", "data": { "labels": ["03/01", "03/02", ...], "datasets": [{ "label": "AAPL Close", "data": [242.5, 243.1, ...], "borderColor": "rgb(59,130,246)", "fill": false, "pointRadius": 0 }] }, "options": { "plugins": { "title": { "display": true, "text": "AAPL Daily Close (30 days)" } } } }" })\`
|
|
145
150
|
|
|
146
151
|
### Example: Bar chart — daily volume
|
|
147
|
-
\`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 30, filter: "{
|
|
148
|
-
\`render_chart({ config: "{
|
|
152
|
+
\`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 30, filter: "{ "labels": series.$fromMillis(time * 1000, "[M01]/[D01]"), "volume": series.volume }" })\`
|
|
153
|
+
\`render_chart({ config: "{ "type": "bar", "data": { "labels": [...], "datasets": [{ "label": "Volume", "data": [...], "backgroundColor": "rgba(59,130,246,0.5)" }] }, "options": { "plugins": { "title": { "display": true, "text": "AAPL Daily Volume" } } } }" })\`
|
|
149
154
|
|
|
150
155
|
### Example: Multi-line — comparing two symbols
|
|
151
156
|
Fetch both series (can be parallel), then combine into one chart:
|
|
152
|
-
\`render_chart({ config: "{
|
|
157
|
+
\`render_chart({ config: "{ "type": "line", "data": { "labels": [...dates...], "datasets": [{ "label": "AAPL", "data": [...], "borderColor": "rgb(59,130,246)", "pointRadius": 0 }, { "label": "MSFT", "data": [...], "borderColor": "rgb(239,68,68)", "pointRadius": 0 }] }, "options": { "plugins": { "title": { "display": true, "text": "AAPL vs MSFT" } } } }" })\`
|
|
153
158
|
|
|
154
159
|
### Example: Candlestick-style OHLC using floating bars
|
|
155
160
|
Chart.js doesn't have a native candlestick type, but you can approximate with floating bar charts:
|
|
156
|
-
\`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 20, filter: "{
|
|
161
|
+
\`get_symbol_series({ symbol: "NASDAQ:AAPL", bar_type: "day", dp: 20, filter: "{ "labels": series.$fromMillis(time * 1000, "[M01]/[D01]"), "open": series.open, "close": series.close, "high": series.high, "low": series.low }" })\`
|
|
157
162
|
Use the \`open\` and \`close\` arrays as \`[low, high]\` pairs in a floating bar dataset, with color conditional on open vs close.
|
|
158
163
|
|
|
159
164
|
### Example: Intraday chart from history
|
|
160
|
-
\`get_symbol_history({ symbol: "NASDAQ:AAPL", bar_type: "minute", bar_interval: 5, start_date: "2026-03", filter: "{
|
|
165
|
+
\`get_symbol_history({ symbol: "NASDAQ:AAPL", bar_type: "minute", bar_interval: 5, start_date: "2026-03", filter: "{ "labels": series.$fromMillis(time * 1000, "[H01]:[m01]"), "close": series.close }" })\`
|
|
161
166
|
Then pass labels and close arrays to \`render_chart\` as a line chart.
|
|
162
167
|
|
|
163
168
|
### Tips
|
|
164
|
-
- Use \`filter\` with \`$fromMillis(time * 1000,
|
|
169
|
+
- Use \`filter\` with \`$fromMillis(time * 1000, "[pattern]")\` to format Unix timestamps as readable labels. The \`time\` field is in seconds — multiply by 1000 for milliseconds.
|
|
165
170
|
- Set \`pointRadius: 0\` on line charts with many data points for cleaner output.
|
|
166
171
|
- For large datasets (hundreds of points), use \`dp\` to limit data points or increase chart \`width\`.
|
|
167
172
|
- Supported chart types: line, bar, pie, doughnut, radar, polarArea, bubble, scatter.
|
|
168
173
|
- Default dimensions: 800×400px. Use \`width\`/\`height\` params to customize (200–2000px).
|
|
169
174
|
`;
|
|
170
|
-
const apiKey =
|
|
171
|
-
function isJwt(token) {
|
|
172
|
-
const parts = token.split(".");
|
|
173
|
-
if (parts.length !== 3)
|
|
174
|
-
return false;
|
|
175
|
-
try {
|
|
176
|
-
for (const part of parts.slice(0, 2)) {
|
|
177
|
-
atob(part.replace(/-/g, "+").replace(/_/g, "/"));
|
|
178
|
-
}
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
catch {
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
175
|
+
const { apiKey } = resolveApiKeyWithSource();
|
|
185
176
|
let client = null;
|
|
186
177
|
let apiKeyError = null;
|
|
178
|
+
const authStatus = getAuthStatus();
|
|
187
179
|
if (!apiKey) {
|
|
188
180
|
apiKeyError =
|
|
189
|
-
"INSIGHTSENTRY_API_KEY
|
|
181
|
+
"No InsightSentry API key found. Set INSIGHTSENTRY_API_KEY or run `insight login --key <your-api-key>`. Get your API key from https://insightsentry.com/dashboard";
|
|
190
182
|
}
|
|
191
|
-
else if (!
|
|
183
|
+
else if (!authStatus.key_format_valid) {
|
|
192
184
|
apiKeyError =
|
|
193
|
-
"
|
|
185
|
+
"InsightSentry API key is not a valid API key. InsightSentry API keys are JWT tokens. Get your API key from https://insightsentry.com/dashboard";
|
|
186
|
+
}
|
|
187
|
+
else if (authStatus.expired) {
|
|
188
|
+
apiKeyError =
|
|
189
|
+
"InsightSentry API key is expired. Get a new API key from https://insightsentry.com/dashboard";
|
|
194
190
|
}
|
|
195
191
|
else {
|
|
196
192
|
client = new ApiClient(apiKey);
|
|
197
193
|
}
|
|
198
194
|
const server = new McpServer({ name: "insightsentry", version: "1.0.0" }, { instructions: INSTRUCTIONS });
|
|
195
|
+
server.registerTool("whoami", {
|
|
196
|
+
description: "Print the logged-in InsightSentry user's email/uuid by parsing the configured API key JWT locally. This does not call the external API.",
|
|
197
|
+
inputSchema: {},
|
|
198
|
+
}, async () => {
|
|
199
|
+
const result = getWhoami();
|
|
200
|
+
if (!result.ok || !result.identity) {
|
|
201
|
+
return {
|
|
202
|
+
content: [{ type: "text", text: `Error: ${result.error}` }],
|
|
203
|
+
isError: true,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
const identity = result.identity;
|
|
207
|
+
return {
|
|
208
|
+
content: [{ type: "text", text: identity }],
|
|
209
|
+
};
|
|
210
|
+
});
|
|
199
211
|
// Register all API tools with Zod schemas for type-safe parameter validation
|
|
200
212
|
for (const tool of toolDefinitions) {
|
|
201
213
|
const schema = {
|
|
202
214
|
...flexibleInputSchema(tool.schema),
|
|
203
|
-
filter: z
|
|
215
|
+
filter: z
|
|
216
|
+
.string()
|
|
217
|
+
.describe("(Optional) JSONata expression to filter/transform the API response server-side before it reaches you. Use this to extract only the fields or rows you need, reducing token usage. See https://jsonata.org for syntax.")
|
|
218
|
+
.optional(),
|
|
204
219
|
store: z
|
|
205
220
|
.enum(["none", "json", "csv"])
|
|
206
221
|
.default("none")
|
|
207
222
|
.optional()
|
|
208
223
|
.describe("Store the response locally instead of returning it. Default is none. csv is only supported for get_symbol_series."),
|
|
209
224
|
output_file: z.string().optional().describe("File path for stored response."),
|
|
210
|
-
output_dir: z
|
|
225
|
+
output_dir: z
|
|
226
|
+
.string()
|
|
227
|
+
.optional()
|
|
228
|
+
.describe("Directory for stored response when output_file is not set."),
|
|
211
229
|
};
|
|
212
230
|
server.registerTool(tool.name, { description: tool.description, inputSchema: schema }, async (args) => {
|
|
213
231
|
if (!client) {
|
|
@@ -229,18 +247,14 @@ for (const tool of toolDefinitions) {
|
|
|
229
247
|
args,
|
|
230
248
|
request: (method, pathTemplate, params) => client.request(method, pathTemplate, params),
|
|
231
249
|
});
|
|
232
|
-
const content = typeof output === "string"
|
|
233
|
-
? output
|
|
234
|
-
: JSON.stringify(output, null, 2);
|
|
250
|
+
const content = typeof output === "string" ? output : JSON.stringify(output, null, 2);
|
|
235
251
|
return {
|
|
236
252
|
content: [{ type: "text", text: content }],
|
|
237
253
|
};
|
|
238
254
|
}
|
|
239
255
|
catch (error) {
|
|
240
256
|
return {
|
|
241
|
-
content: [
|
|
242
|
-
{ type: "text", text: `Error: ${error.message}` },
|
|
243
|
-
],
|
|
257
|
+
content: [{ type: "text", text: `Error: ${error.message}` }],
|
|
244
258
|
isError: true,
|
|
245
259
|
};
|
|
246
260
|
}
|
|
@@ -253,12 +267,8 @@ server.registerTool("download_history", {
|
|
|
253
267
|
symbol: z
|
|
254
268
|
.string()
|
|
255
269
|
.describe("Symbol code in EXCHANGE:SYMBOL format, e.g. NASDAQ:AAPL or CME_MINI:NQ1!"),
|
|
256
|
-
from: z
|
|
257
|
-
|
|
258
|
-
.describe("Start date. Use YYYY-MM or YYYY-MM-DD."),
|
|
259
|
-
to: z
|
|
260
|
-
.string()
|
|
261
|
-
.describe("End date. Use YYYY-MM or YYYY-MM-DD."),
|
|
270
|
+
from: z.string().describe("Start date. Use YYYY-MM or YYYY-MM-DD."),
|
|
271
|
+
to: z.string().describe("End date. Use YYYY-MM or YYYY-MM-DD."),
|
|
262
272
|
bar_type: z
|
|
263
273
|
.enum(["second", "minute", "hour", "day", "week", "month"])
|
|
264
274
|
.describe("Bar type. second/minute/hour use /history; day/week/month use /series."),
|
|
@@ -296,9 +306,10 @@ server.registerTool("download_history", {
|
|
|
296
306
|
};
|
|
297
307
|
}
|
|
298
308
|
try {
|
|
309
|
+
const activeClient = client;
|
|
299
310
|
const progress = [];
|
|
300
311
|
const result = await downloadHistory(args, {
|
|
301
|
-
request: (method, path, params) =>
|
|
312
|
+
request: (method, path, params) => activeClient.request(method, path, params),
|
|
302
313
|
onProgress: (event) => {
|
|
303
314
|
progress.push(`[${event.completed}/${event.total}] ${event.status} ${event.symbol} ${event.start_date}`);
|
|
304
315
|
},
|
|
@@ -374,9 +385,7 @@ server.registerTool("render_chart", {
|
|
|
374
385
|
}
|
|
375
386
|
catch (error) {
|
|
376
387
|
return {
|
|
377
|
-
content: [
|
|
378
|
-
{ type: "text", text: `Error: ${error.message}` },
|
|
379
|
-
],
|
|
388
|
+
content: [{ type: "text", text: `Error: ${error.message}` }],
|
|
380
389
|
isError: true,
|
|
381
390
|
};
|
|
382
391
|
}
|
|
@@ -384,9 +393,7 @@ server.registerTool("render_chart", {
|
|
|
384
393
|
// Register documentation resources
|
|
385
394
|
for (const doc of docResources) {
|
|
386
395
|
server.registerResource(doc.name, doc.uri, { mimeType: doc.mimeType, description: doc.description }, async () => ({
|
|
387
|
-
contents: [
|
|
388
|
-
{ uri: doc.uri, mimeType: doc.mimeType, text: doc.content },
|
|
389
|
-
],
|
|
396
|
+
contents: [{ uri: doc.uri, mimeType: doc.mimeType, text: doc.content }],
|
|
390
397
|
}));
|
|
391
398
|
}
|
|
392
399
|
// Start the server
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/resources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,EAwtFrC,CAAC"}
|
package/dist/resources.js
CHANGED
package/dist/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,kFAAkF;AAClF,kEAAkE;AAClE,uCAAuC;AAUvC,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,8BAA8B;QACpC,WAAW,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/response-storage.js
CHANGED
|
@@ -47,13 +47,17 @@ async function writeStoredFile(outputFile, content, unique) {
|
|
|
47
47
|
function resolveOutputFile(response, options, format) {
|
|
48
48
|
if (options.output_file)
|
|
49
49
|
return path.resolve(options.output_file);
|
|
50
|
+
const outputDir = options.output_dir;
|
|
51
|
+
if (!outputDir) {
|
|
52
|
+
throw new Error("output_file or output_dir is required when store is json or csv");
|
|
53
|
+
}
|
|
50
54
|
const paramsHash = options.requestParams
|
|
51
55
|
? createHash("sha256").update(stableStringify(options.requestParams)).digest("hex").slice(0, 10)
|
|
52
56
|
: undefined;
|
|
53
57
|
const parts = [options.toolName, paramsHash, response?.code, response?.bar_type]
|
|
54
58
|
.filter((part) => typeof part === "string" && part.trim())
|
|
55
59
|
.map((part) => sanitizePathPart(String(part)));
|
|
56
|
-
return path.join(path.resolve(
|
|
60
|
+
return path.join(path.resolve(outputDir), `${parts.join("_")}.${format}`);
|
|
57
61
|
}
|
|
58
62
|
function stableStringify(value) {
|
|
59
63
|
if (Array.isArray(value))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-storage.js","sourceRoot":"","sources":["../src/response-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB7C,MAAM,UAAU,uBAAuB,CAAC,OAA6B;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IACvC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO;IAC9B,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAa,EACb,OAA6B;IAE7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IACvC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,OAAO,GACX,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACxF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"response-storage.js","sourceRoot":"","sources":["../src/response-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-runner.d.ts","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-runner.d.ts","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAoBzE"}
|
package/dist/tool-runner.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import jsonata from "jsonata";
|
|
2
|
-
import { storeResponse, validateResponseStorage } from "./response-storage.js";
|
|
2
|
+
import { storeResponse, validateResponseStorage, } from "./response-storage.js";
|
|
3
3
|
export async function runApiTool(options) {
|
|
4
4
|
const { filter: filterExpr, store, output_file, output_dir, ...apiArgs } = options.args;
|
|
5
5
|
const storeOptions = {
|
package/dist/tool-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-runner.js","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"tool-runner.js","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAEL,aAAa,EACb,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAgB/B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IACxF,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,KAAwC;QAC/C,WAAW;QACX,UAAU;QACV,aAAa,EAAE,OAAO;KACvB,CAAC;IAEF,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEzD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@insightsentry/mcp",
|
|
3
3
|
"mcpName": "io.github.rezmeplxrf/insightsentry_mcp",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.4",
|
|
5
5
|
"description": "MCP server for InsightSentry financial data API - provides AI-accessible tools for market data, screening, options, and comprehensive API documentation resources",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"generate": "tsx scripts/generate.ts",
|
|
19
19
|
"build": "npm run generate && tsc",
|
|
20
|
+
"typecheck": "tsc --noEmit",
|
|
21
|
+
"test": "node --import tsx --test test/*.test.ts",
|
|
22
|
+
"lint": "biome check .",
|
|
23
|
+
"lint:fix": "biome check --write .",
|
|
24
|
+
"format": "biome format --write .",
|
|
25
|
+
"check": "npm run lint && npm run typecheck && npm test",
|
|
20
26
|
"dev": "tsx src/index.ts",
|
|
21
27
|
"deploy": "npm run build && npm publish --access public",
|
|
22
28
|
"deploy:mcp": "mcp-publisher publish",
|
|
@@ -45,6 +51,7 @@
|
|
|
45
51
|
"zod": "^4.3.6"
|
|
46
52
|
},
|
|
47
53
|
"devDependencies": {
|
|
54
|
+
"@biomejs/biome": "2.4.10",
|
|
48
55
|
"@types/node": "^22.19.17",
|
|
49
56
|
"tsx": "^4.19.4",
|
|
50
57
|
"typescript": "^5.8.3"
|
|
@@ -52,4 +59,4 @@
|
|
|
52
59
|
"engines": {
|
|
53
60
|
"node": ">=18"
|
|
54
61
|
}
|
|
55
|
-
}
|
|
62
|
+
}
|