@insightsentry/mcp 1.2.7 → 1.2.8
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/index.js +8 -8
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -56,7 +56,7 @@ If you're unsure about a symbol code, search for it: \`search_symbols({ query: "
|
|
|
56
56
|
|
|
57
57
|
### "Fundamental analysis" (e.g., "What's Apple's free cash flow?", "Show me Tesla's balance sheet")
|
|
58
58
|
1. \`get_fundamentals_meta\` — Call with \`filter\` to discover fields: \`filter: "base[$contains($lowercase(name), \\"cash flow\\")].{ \\"id\\": id, \\"name\\": name }"\` or \`filter: "$distinct(base.category)"\`. Lightweight, no symbol needed. Skip if you already know the field IDs.
|
|
59
|
-
2. \`get_symbol_fundamentals\` — Returns {code, data: [...hundreds of fields...], last_update}. **Always use \`filter\`** to extract only what's needed: \`filter: "data[category='
|
|
59
|
+
2. \`get_symbol_fundamentals\` — Returns {code, data: [...hundreds of fields...], last_update}. **Always use \`filter\`** to extract only what's needed: \`filter: "data[category='Statistics'].{ \\"id\\": id, \\"name\\": name, \\"value\\": value }"\`. Never return the full response.
|
|
60
60
|
3. (Optional) \`get_fundamentals_series\` — For historical trends of specific indicators (max 5 IDs per request).
|
|
61
61
|
|
|
62
62
|
### "SEC filings and transcripts"
|
|
@@ -88,8 +88,8 @@ Examples:
|
|
|
88
88
|
- \`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
|
|
89
89
|
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "$distinct(data.category)" })\` — list available categories first
|
|
90
90
|
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data.{ \"id\": id, \"name\": name }" })\` — list all field id+name pairs (without values, lightweight overview)
|
|
91
|
-
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data[category='
|
|
92
|
-
- \`screen_stocks({ fields: ["close", "volume", "market_cap"], filter: "$sum(data.market_cap)" })\` — aggregate instead of listing rows
|
|
91
|
+
- \`get_symbol_fundamentals({ symbol: "NASDAQ:AAPL", filter: "data[category='Statistics'].{ \"id\": id, \"name\": name, \"value\": value }" })\` — then grab specific category with values
|
|
92
|
+
- \`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)
|
|
93
93
|
- \`get_stock_screener_params({ filter: "available_fields[$contains($, \\"volume\\")]" })\` — search screener fields by keyword (available_fields is a flat string array, not objects)
|
|
94
94
|
- \`get_symbol_info({ symbol: "NASDAQ:AAPL", filter: "$keys($)" })\` — list all available fields first
|
|
95
95
|
- \`get_symbol_info({ symbol: "NASDAQ:AAPL", filter: "{ \"sector\": sector, \"industry\": industry, \"market_cap\": market_cap, \"ceo\": ceo }" })\` — then pick specific fields
|
|
@@ -100,7 +100,7 @@ Examples:
|
|
|
100
100
|
- \`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
|
|
101
101
|
- \`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
|
|
102
102
|
- \`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
|
|
103
|
-
- \`screen_stocks({ fields: ["close", "volume", "market_cap", "change_percent"], filter: "data[change_percent > 0].{ \"name\": name, \"change_percent\": change_percent }" })\` — only gainers
|
|
103
|
+
- \`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)
|
|
104
104
|
- \`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)
|
|
105
105
|
|
|
106
106
|
Also prefer API-level filtering when available (screener field selection, option \`type\`/\`range\` filters) — combine with \`filter\` for maximum efficiency.
|
|
@@ -109,16 +109,16 @@ Also prefer API-level filtering when available (screener field selection, option
|
|
|
109
109
|
Screener fields are limited to 10 per request — pick the most relevant ones and use \`filter\` to narrow and reshape results.
|
|
110
110
|
|
|
111
111
|
**Value screen** — low P/E, cheap on cash flow:
|
|
112
|
-
\`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 > 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 }" })\`
|
|
112
|
+
\`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 }" })\`
|
|
113
113
|
|
|
114
114
|
**Momentum screen** — strong 3-month performance + unusual volume:
|
|
115
|
-
\`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 > 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 }" })\`
|
|
115
|
+
\`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 }" })\`
|
|
116
116
|
|
|
117
117
|
**Quality screen** — high ROIC, low leverage, strong margins:
|
|
118
|
-
\`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 > 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 }" })\`
|
|
118
|
+
\`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 }" })\`
|
|
119
119
|
|
|
120
120
|
**Volatility + volume spike** — unusual activity detection:
|
|
121
|
-
\`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 > 2 and volatility_week > 3].{ \"name\": name, \"code\": symbol_code, \"vol_w\": volatility_week, \"rvol\": relative_volume_intraday, \"gap\": gap, \"chg\": change_percent }" })\`
|
|
121
|
+
\`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 }" })\`
|
|
122
122
|
`;
|
|
123
123
|
const apiKey = process.env.INSIGHTSENTRY_API_KEY?.trim();
|
|
124
124
|
function isJwt(token) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@insightsentry/mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.8",
|
|
4
4
|
"description": "MCP server for InsightSentry financial data API - provides AI-accessible tools for market data, screening, options, and comprehensive API documentation resources",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|