@cyanheads/secedgar-mcp-server 0.13.0 → 0.14.0

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.
Files changed (67) hide show
  1. package/README.md +40 -9
  2. package/dist/index.js +5 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js +2 -2
  5. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js.map +1 -1
  6. package/dist/mcp-server/resources/definitions/concepts.resource.d.ts.map +1 -1
  7. package/dist/mcp-server/resources/definitions/concepts.resource.js +6 -1
  8. package/dist/mcp-server/resources/definitions/concepts.resource.js.map +1 -1
  9. package/dist/mcp-server/resources/definitions/filing-types.resource.d.ts.map +1 -1
  10. package/dist/mcp-server/resources/definitions/filing-types.resource.js +18 -2
  11. package/dist/mcp-server/resources/definitions/filing-types.resource.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +27 -4
  14. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +61 -0
  16. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -0
  17. package/dist/mcp-server/tools/definitions/find-holders.tool.js +396 -0
  18. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -0
  19. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +9 -0
  20. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/get-filing.tool.js +91 -6
  22. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-financials.tool.js +39 -14
  25. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +3 -2
  27. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +11 -6
  29. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +63 -0
  31. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -0
  32. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +380 -0
  33. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -0
  34. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +34 -4
  36. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  37. package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts +1 -0
  38. package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/definitions/search-concepts.tool.js +9 -1
  40. package/dist/mcp-server/tools/definitions/search-concepts.tool.js.map +1 -1
  41. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/search-filings.tool.js +3 -15
  43. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  44. package/dist/services/edgar/concept-map.d.ts +3 -1
  45. package/dist/services/edgar/concept-map.d.ts.map +1 -1
  46. package/dist/services/edgar/concept-map.js +171 -5
  47. package/dist/services/edgar/concept-map.js.map +1 -1
  48. package/dist/services/edgar/concept-series.d.ts +98 -11
  49. package/dist/services/edgar/concept-series.d.ts.map +1 -1
  50. package/dist/services/edgar/concept-series.js +186 -19
  51. package/dist/services/edgar/concept-series.js.map +1 -1
  52. package/dist/services/edgar/edgar-api-service.d.ts +7 -0
  53. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  54. package/dist/services/edgar/edgar-api-service.js +13 -0
  55. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  56. package/dist/services/edgar/eight-k-items.d.ts +62 -0
  57. package/dist/services/edgar/eight-k-items.d.ts.map +1 -0
  58. package/dist/services/edgar/eight-k-items.js +131 -0
  59. package/dist/services/edgar/eight-k-items.js.map +1 -0
  60. package/dist/services/edgar/fiscal-periods.d.ts +10 -5
  61. package/dist/services/edgar/fiscal-periods.d.ts.map +1 -1
  62. package/dist/services/edgar/fiscal-periods.js +33 -10
  63. package/dist/services/edgar/fiscal-periods.js.map +1 -1
  64. package/dist/services/edgar/types.d.ts +39 -0
  65. package/dist/services/edgar/types.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/server.json +3 -3
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <div align="center">
2
2
  <h1>@cyanheads/secedgar-mcp-server</h1>
3
3
  <p><b>Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.</b>
4
- <div>12 Tools (+1 opt-in) • 2 Resources • 1 Prompt</div>
4
+ <div>14 Tools (+1 opt-in) • 2 Resources • 1 Prompt</div>
5
5
  </p>
6
6
  </div>
7
7
 
@@ -29,7 +29,7 @@
29
29
 
30
30
  ## Tools
31
31
 
32
- Ten tools for querying SEC EDGAR data, plus three for SQL analytics over the DuckDB-backed canvas dataframes those tools materialize:
32
+ Twelve tools for querying SEC EDGAR data, plus three for SQL analytics over the DuckDB-backed canvas dataframes those tools materialize:
33
33
 
34
34
  | Tool | Description |
35
35
  |:---|:---|
@@ -38,8 +38,10 @@ Ten tools for querying SEC EDGAR data, plus three for SQL analytics over the Duc
38
38
  | `secedgar_get_filing` | Fetch a specific filing's metadata and document content |
39
39
  | `secedgar_get_financials` | Get historical XBRL financial data for a company |
40
40
  | `secedgar_get_snapshot` | One-call financial profile — the latest value of every supported concept, grouped by statement |
41
+ | `secedgar_get_material_events` | 8-K filings with item codes decoded and filterable — earnings, officer changes, non-reliance |
41
42
  | `secedgar_get_insider_transactions` | Form 4 / 4-A insider transactions (buys, sells, grants, exercises) parsed from ownership XML |
42
43
  | `secedgar_get_institutional_holdings` | 13F-HR quarterly institutional holdings parsed from the information table |
44
+ | `secedgar_find_holders` | Reverse 13F lookup — which institutional managers reported holding an issuer |
43
45
  | `secedgar_fetch_frames` | Fetch SEC XBRL frames for one concept × one period across all reporting companies |
44
46
  | `secedgar_compare_companies` | Compare named companies across several concepts, aligned on calendar periods |
45
47
  | `secedgar_search_concepts` | Discover supported XBRL concept names or reverse-lookup a raw tag |
@@ -83,6 +85,7 @@ Fetch a specific filing's metadata and document content by accession number.
83
85
  - Converts HTML filings to readable plain text
84
86
  - Configurable content limit (1K–200K characters, default 50K)
85
87
  - Can fetch specific exhibits by document name
88
+ - Binary entries — scanned pages, PDF exhibits, packaged archives and spreadsheets — are marked `binary` in the document catalog and rejected with a `binary_document` error instead of being returned as decoded bytes
86
89
  - **Offset paging** for large documents (10-K, S-1/A can exceed 1M chars): pass `next_offset` from a truncated response as `offset` on the next call to continue reading; first-page truncated responses include a detected `outline` (headings with offsets) for targeted navigation
87
90
  - **Section targeting** via the `section` param: jumps directly to a named heading by case-insensitive substring match (e.g. `"risk factors"`, `"item 7"`, `"certain relationships"`); on a miss, the error carries the detected outline so you can pick the correct heading
88
91
  - Extracted text is cached per `accession + document` (bounded LRU, 8 entries), making subsequent paged calls cheap
@@ -98,7 +101,8 @@ Get historical XBRL financial data for a company with friendly concept name reso
98
101
  - Automatic deduplication to one value per standard calendar period
99
102
  - Filter by annual, quarterly, or all periods
100
103
  - Optional `limit` caps the inline series to the most-recent N periods; the full series stays queryable via the `df_<id>` dataframe
101
- - Quarterly results carry a `caveats` entry when a calendar quarter is absent from the frame-tagged series — SEC reports fiscal Q4 as the 10-K residual, so the calendar quarter that fiscal Q4 spans has no discrete quarterly value (calendar-year filers included)
104
+ - Quarterly results carry a `caveats` entry naming every calendar quarter absent from the frame-tagged series — SEC reports fiscal Q4 as the 10-K residual, so the calendar quarter that fiscal Q4 spans has no discrete quarterly value (calendar-year filers included), and a filer whose other fiscal quarters span non-calendar durations loses a second quarter the same way
105
+ - A further `caveats` entry when the concept resolved to an XBRL tag SEC has retired from the taxonomy — that only happens when no current tag reports for the filer, and the series can stop years short
102
106
  - See `secedgar://concepts` resource for the full mapping
103
107
 
104
108
  ---
@@ -111,7 +115,7 @@ Build a company financial profile in one call instead of a run of `secedgar_get_
111
115
  - Same frame dedup and tag priority as `secedgar_get_financials`, so the two agree for any concept they both cover
112
116
  - Duration concepts (income statement, cash flow, per-share) report their latest full year and latest single quarter; balance-sheet and entity-info concepts report their latest point-in-time value
113
117
  - Concepts the filer does not report are listed under `gaps` with the XBRL tags that were tried — never zero-filled or interpolated
114
- - IFRS filers resolve through the mapped IFRS tag variants via `taxonomy: "ifrs-full"`; each line reports the taxonomy its value came from
118
+ - IFRS filers resolve through the mapped IFRS tag variants via `taxonomy: "ifrs-full"`, which covers the income statement, balance sheet, cash flow, and per-share concepts; each line reports the taxonomy its value came from
115
119
  - Compact single-record profile — no dataframe; reach for `secedgar_get_financials` when you need a time series
116
120
 
117
121
  ---
@@ -132,7 +136,7 @@ Surface Form 4 / 4-A insider activity for a company by parsing ownership XML. Fo
132
136
 
133
137
  Surface 13F-HR quarterly institutional holdings by parsing the information table.
134
138
 
135
- - Pass the institutional filer (CIK or full legal name, e.g. `0000102909` for Vanguard) to see what it holds — reverse lookup from a portfolio company to its holders is not supported (EDGAR has no issuer→13F index); use `secedgar_search_filings` with `forms=["13F-HR"]` for issuer-side questions
139
+ - Pass the institutional filer (CIK or full legal name, e.g. `0000102909` for Vanguard) to see what it holds; for the reverse direction — which managers hold a given company — use `secedgar_find_holders`, whose `filer_cik` results feed straight back into this tool
136
140
  - Each holding: issuer name, CUSIP, market value (whole USD), shares/principal, and put/call; raw rows also carry investment discretion
137
141
  - Sub-lines for the same security (one per manager/account) are consolidated into distinct positions sorted by value by default — pass `consolidate: false` for raw filing rows
138
142
  - Resolves the filing-manager name and reporting quarter from the cover page; target a specific quarter with `quarter` (e.g. `"2025-Q4"`)
@@ -142,6 +146,32 @@ Surface 13F-HR quarterly institutional holdings by parsing the information table
142
146
 
143
147
  ---
144
148
 
149
+ ### `secedgar_find_holders`
150
+
151
+ Reverse 13F lookup: which institutional managers reported a position in an issuer, for one reporting quarter.
152
+
153
+ - Searching by `cusip` matches the identifier the 13F information table itself carries — the precise path. Louisiana-Pacific Q1 2026 returns 451 filings by CUSIP `546347105` against 43 by the phrase `"LOUISIANA-PACIFIC CORP"`; the name path both under-matches (managers write the name differently) and over-matches (an unrelated issuer sharing a word)
154
+ - A CUSIP is not derivable from a ticker anywhere in EDGAR — read one off any `secedgar_get_institutional_holdings` result, or fall back to the name path
155
+ - `quarter` targets a reporting period (`"2026-Q1"`); omit it for the newest quarter whose 45-day filing deadline has passed. The applied quarter and its filing window are echoed back
156
+ - Filings are kept by the period they report, not the date they were filed, so amendments restating an older quarter (roughly 6% of any window) do not land in the wrong quarter's holder list
157
+ - Up to 500 filer rows are fetched per call; `total_filings` reports the full count and `dataset.truncated` flags when more exist
158
+ - **The list is unranked.** EDGAR search relevance carries no signal about position size — read a manager's actual position by passing its `filer_cik` to `secedgar_get_institutional_holdings`
159
+
160
+ ---
161
+
162
+ ### `secedgar_get_material_events`
163
+
164
+ A company's 8-K history with item codes decoded and filterable — the only surface that can scope by what the event actually was rather than by form.
165
+
166
+ - Filter with `items` (e.g. `["2.02"]` for results of operations, `["5.02"]` for officer departures, `["4.02"]` for non-reliance); `secedgar_search_filings` and `secedgar_company_search` cannot see items at all
167
+ - Two numbering regimes are both accepted and decoded: the dotted scheme in force since 2004-08-23, and the single integers before it (legacy `12` is the ancestor of `2.02`, `9` of `7.01`). Decoding keys off the code's shape, so a filing straddling the changeover is never mis-decoded, and a window spanning it needs both codes in the filter
168
+ - `item_distribution` counts every code across the scanned window before the filter, so a zero-hit filter comes back with the items that *are* present rather than a dead end
169
+ - A date window pages into the older submissions archive, reaching 8-K filings that predate the ~1000-filing recent window; `history_scanned_through` discloses the scan depth
170
+ - The full decode table is in the `secedgar://filing-types` resource
171
+ - The full filtered set materializes as a `df_<id>` dataframe with item codes on every row — item frequency over time is one `secedgar_dataframe_query` away
172
+
173
+ ---
174
+
145
175
  ### `secedgar_fetch_frames`
146
176
 
147
177
  Fetch SEC XBRL frames for one concept × one period across all reporting companies.
@@ -164,7 +194,7 @@ Compare 2-10 named companies across 1-8 concepts, aligned on calendar periods
164
194
  - `periods` bounds the inline matrix (1-12, default 4) and the window shrinks further when companies x concepts x periods is too large to return in one response; the full aligned series is always materialized as a `df_<id>` dataframe for growth rates and spreads via `secedgar_dataframe_query`
165
195
  - A company that fails to resolve is reported in `failed_companies` with a machine-readable reason and the comparison proceeds with the rest
166
196
  - A company that does not report a concept is reported in `gaps` with the tags that were tried — never interpolated
167
- - `caveats` surface a filer missing a calendar quarter, period ends that differ inside one aligned period, and concepts whose unit differs across companies
197
+ - `caveats` surface a filer missing one or two calendar quarters, a concept that resolved to a retired XBRL tag for one company, period ends that differ inside one aligned period, and concepts whose unit differs across companies
168
198
 
169
199
  ---
170
200
 
@@ -176,13 +206,14 @@ Discover supported XBRL concept names before querying financials or cross-compan
176
206
  - Filter by statement group (`income_statement`, `balance_sheet`, `cash_flow`, `per_share`, `entity_info`) or taxonomy
177
207
  - Reverse-lookup raw tags like `NetIncomeLoss` to the supported friendly names
178
208
  - Surfaces `related_tags` for concepts with a high-coverage alternate-definition tag (e.g. restricted-cash-inclusive cash) so callers can discover them before screening
209
+ - Filtering by `taxonomy: "ifrs-full"` narrows the catalog to concepts with an IFRS tag confirmed against live 20-F filings; a concept with no IFRS equivalent is left out rather than mapped to a guess
179
210
  - Returns the same catalog used by `secedgar_get_financials`, `secedgar_fetch_frames`, and `secedgar://concepts`
180
211
 
181
212
  ---
182
213
 
183
214
  ### `secedgar_dataframe_describe` / `secedgar_dataframe_query` / `secedgar_dataframe_drop`
184
215
 
185
- In-conversation SQL analytics over the dataframes that `secedgar_fetch_frames`, `secedgar_compare_companies`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_insider_transactions`, and `secedgar_get_institutional_holdings` materialize on a shared DuckDB-backed canvas. Each data-returning call adds a `dataset` field with a `df_XXXXX_XXXXX` handle; pass that handle to `secedgar_dataframe_query` for joins, aggregates, window functions, percentiles — standard DuckDB SQL.
216
+ In-conversation SQL analytics over the dataframes that `secedgar_fetch_frames`, `secedgar_compare_companies`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_material_events`, `secedgar_get_insider_transactions`, `secedgar_get_institutional_holdings`, and `secedgar_find_holders` materialize on a shared DuckDB-backed canvas. Each data-returning call adds a `dataset` field with a `df_XXXXX_XXXXX` handle; pass that handle to `secedgar_dataframe_query` for joins, aggregates, window functions, percentiles — standard DuckDB SQL.
186
217
 
187
218
  - **Read-only by default.** Writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected by the framework SQL gate. System catalogs (`information_schema`, `pg_catalog`, `sqlite_master`, `duckdb_*`) are denied at the bridge layer so callers can't enumerate dataframes they don't already hold a handle for. `secedgar_dataframe_drop` is the only destructive tool and is opt-in (`EDGAR_DATAFRAME_DROP_ENABLED=true`); TTL handles cleanup otherwise.
188
219
  - **Per-table TTL.** Each dataframe ages on its own clock (default 24h, override with `EDGAR_DATASET_TTL_SECONDS`). The canvas itself uses the framework's sliding TTL.
@@ -193,7 +224,7 @@ In-conversation SQL analytics over the dataframes that `secedgar_fetch_frames`,
193
224
  | URI | Description |
194
225
  |:---|:---|
195
226
  | `secedgar://concepts` | Common XBRL financial concepts grouped by statement, mapping friendly names to XBRL tags |
196
- | `secedgar://filing-types` | Common SEC filing types with descriptions, cadence, and use cases |
227
+ | `secedgar://filing-types` | Common SEC filing types with descriptions, cadence, and use cases, plus the full 8-K item-code decode tables for both numbering regimes |
197
228
 
198
229
  ## Prompts
199
230
 
@@ -219,7 +250,7 @@ SEC EDGAR–specific:
219
250
  - Friendly XBRL concept name mapping with historical tag change handling
220
251
  - Searchable concept catalog with statement-group metadata and reverse XBRL tag lookup
221
252
  - HTML-to-text conversion for filing documents via `html-to-text`
222
- - In-conversation SQL analytics: `secedgar_fetch_frames`, `secedgar_compare_companies`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_insider_transactions`, and `secedgar_get_institutional_holdings` materialize their full result as a DuckDB-backed canvas dataframe queryable via `secedgar_dataframe_query`
253
+ - In-conversation SQL analytics: `secedgar_fetch_frames`, `secedgar_compare_companies`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_material_events`, `secedgar_get_insider_transactions`, `secedgar_get_institutional_holdings`, and `secedgar_find_holders` materialize their full result as a DuckDB-backed canvas dataframe queryable via `secedgar_dataframe_query`
223
254
  - No API keys required — SEC EDGAR is a free, public API
224
255
 
225
256
  ## Getting started
package/dist/index.js CHANGED
@@ -15,10 +15,12 @@ import { dataframeDescribeTool } from './mcp-server/tools/definitions/dataframe-
15
15
  import { dataframeDropTool } from './mcp-server/tools/definitions/dataframe-drop.tool.js';
16
16
  import { dataframeQueryTool } from './mcp-server/tools/definitions/dataframe-query.tool.js';
17
17
  import { fetchFramesTool } from './mcp-server/tools/definitions/fetch-frames.tool.js';
18
+ import { findHoldersTool } from './mcp-server/tools/definitions/find-holders.tool.js';
18
19
  import { getFilingTool } from './mcp-server/tools/definitions/get-filing.tool.js';
19
20
  import { getFinancialsTool } from './mcp-server/tools/definitions/get-financials.tool.js';
20
21
  import { getInsiderTransactionsTool } from './mcp-server/tools/definitions/get-insider-transactions.tool.js';
21
22
  import { getInstitutionalHoldingsTool } from './mcp-server/tools/definitions/get-institutional-holdings.tool.js';
23
+ import { getMaterialEventsTool } from './mcp-server/tools/definitions/get-material-events.tool.js';
22
24
  import { getSnapshotTool } from './mcp-server/tools/definitions/get-snapshot.tool.js';
23
25
  import { searchConceptsTool } from './mcp-server/tools/definitions/search-concepts.tool.js';
24
26
  import { searchFilingsTool } from './mcp-server/tools/definitions/search-filings.tool.js';
@@ -43,8 +45,10 @@ await createApp({
43
45
  getFilingTool,
44
46
  getFinancialsTool,
45
47
  getSnapshotTool,
48
+ getMaterialEventsTool,
46
49
  getInsiderTransactionsTool,
47
50
  getInstitutionalHoldingsTool,
51
+ findHoldersTool,
48
52
  fetchFramesTool,
49
53
  compareCompaniesTool,
50
54
  searchConceptsTool,
@@ -54,7 +58,7 @@ await createApp({
54
58
  ],
55
59
  resources: [conceptsResource, filingTypesResource],
56
60
  prompts: [companyAnalysisPrompt],
57
- instructions: 'Use the secedgar_* tools to query SEC EDGAR — US public-company filings since 1993 plus historical XBRL financials. Resolve companies with secedgar_company_search (accepts ticker, name, or CIK), fetch document text with secedgar_get_filing by accession number, and search filings with secedgar_search_filings (full-text covers 2001-present; pre-2001 date ranges browse the archives by form and entity/date, so pre-2001 full-text matching requires ticker:/cik: entity scope; supports boolean operators and inline ticker:AAPL / cik:320193 targeting). For financials, secedgar_get_financials and secedgar_fetch_frames accept friendly names like "revenue" or "eps_diluted" (discover them with secedgar_search_concepts) or raw XBRL tags; secedgar_get_snapshot profiles one company across every supported concept in a single call, and secedgar_compare_companies puts 2-10 named companies side by side on aligned calendar periods. Data-returning tools also materialize their full upstream response as a df_<id> handle for downstream SQL via secedgar_dataframe_query — list dataframes with secedgar_dataframe_describe.',
61
+ instructions: 'Use the secedgar_* tools to query SEC EDGAR — US public-company filings since 1993 plus historical XBRL financials. Resolve companies with secedgar_company_search (accepts ticker, name, or CIK), fetch document text with secedgar_get_filing by accession number, and search filings with secedgar_search_filings (full-text covers 2001-present; pre-2001 date ranges browse the archives by form and entity/date, so pre-2001 full-text matching requires ticker:/cik: entity scope; supports boolean operators and inline ticker:AAPL / cik:320193 targeting). For financials, secedgar_get_financials and secedgar_fetch_frames accept friendly names like "revenue" or "eps_diluted" (discover them with secedgar_search_concepts) or raw XBRL tags; secedgar_get_snapshot profiles one company across every supported concept in a single call, and secedgar_compare_companies puts 2-10 named companies side by side on aligned calendar periods. For 8-K material events, secedgar_get_material_events filters a company\'s 8-K history by item code (2.02 results, 5.02 officer changes, 4.02 non-reliance). Ownership runs in both directions: secedgar_get_institutional_holdings takes a 13F manager and returns its portfolio, secedgar_find_holders takes an issuer and returns the managers reporting it. Data-returning tools also materialize their full upstream response as a df_<id> handle for downstream SQL via secedgar_dataframe_query — list dataframes with secedgar_dataframe_describe.',
58
62
  async setup(core) {
59
63
  initEdgarApiService();
60
64
  initCanvasBridge(core.canvas);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -24,13 +24,13 @@ export const companyAnalysisPrompt = prompt('secedgar_company_analysis', {
24
24
  '**Company Identification** — Use `secedgar_company_search` to resolve the company and review recent filings.',
25
25
  '**Financial Trends** — Use `secedgar_get_financials` to pull key metrics (revenue, net_income, eps_diluted, assets, debt, operating_cash_flow) and identify trends over the last 3-5 years.',
26
26
  '**Recent Filings Review** — Use `secedgar_get_filing` to read the most recent 10-K or 10-Q for qualitative insights (risk factors, MD&A, business overview).',
27
- '**Material Events** — Use `secedgar_search_filings` (or call `secedgar_company_search` with `form_types: ["8-K"]`) to surface recent material events (M&A, leadership changes, earnings surprises).',
27
+ '**Material Events** — Use `secedgar_get_material_events` to surface recent 8-K filings with their item codes decoded, narrowing to the events that matter (`items: ["1.01"]` for material agreements, `["2.02"]` for results, `["5.02"]` for officer changes, `["4.02"]` for non-reliance).',
28
28
  ];
29
29
  if (wantsInsider) {
30
30
  steps.push('**Insider Activity** — Use `secedgar_get_insider_transactions` to review Form 4 / 4-A transactions by officers, directors, and 10% owners (buys, sells, grants, exercises). It does not cover Form 3 initial statements or Form 5 annual statements — reach those with `secedgar_search_filings` (`forms: ["3", "5"]`) plus `secedgar_get_filing`.');
31
31
  }
32
32
  if (wantsInstitutional) {
33
- steps.push("**Institutional Ownership** — Use `secedgar_get_institutional_holdings` for a 13F filer's reported positions (pass the institutional manager, not the issuer — EDGAR has no issuer-to-holder index).");
33
+ steps.push("**Institutional Ownership** — Use `secedgar_find_holders` to list the managers reporting a position in this company, then `secedgar_get_institutional_holdings` with a returned `filer_cik` to read that manager's reported position. `secedgar_get_institutional_holdings` takes the manager, never the issuer.");
34
34
  }
35
35
  steps.push('**Industry Context** — Use `secedgar_fetch_frames` to compare key metrics against peers.');
36
36
  const findings = [
@@ -1 +1 @@
1
- {"version":3,"file":"company-analysis.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/company-analysis.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,2BAA2B,EAAE;IACvE,WAAW,EAAE,mKAAmK;IAEhL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACtF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8HAA8H,CAC/H;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,+EAA+E;QAC/E,mFAAmF;QACnF,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,0CAA0C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAa;YACtB,8GAA8G;YAC9G,6LAA6L;YAC7L,8JAA8J;YAC9J,qMAAqM;SACtM,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CACR,oVAAoV,CACrV,CAAC;QACJ,CAAC;QACD,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACR,sMAAsM,CACvM,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,0FAA0F,CAC3F,CAAC;QAEF,MAAM,QAAQ,GAAa;YACzB,gEAAgE;YAChE,yDAAyD;YACzD,yDAAyD;YACzD,kEAAkE;SACnE,CAAC;QACF,IAAI,YAAY,IAAI,kBAAkB,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CACX,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAElF,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,iCAAiC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;wBACpH,EAAE;wBACF,kCAAkC;wBAClC,EAAE;wBACF,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC9C,EAAE;wBACF,sBAAsB;wBACtB,GAAG,QAAQ;qBACZ,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"company-analysis.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/company-analysis.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,2BAA2B,EAAE;IACvE,WAAW,EAAE,mKAAmK;IAEhL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACtF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8HAA8H,CAC/H;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,+EAA+E;QAC/E,mFAAmF;QACnF,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,0CAA0C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAa;YACtB,8GAA8G;YAC9G,6LAA6L;YAC7L,8JAA8J;YAC9J,6RAA6R;SAC9R,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CACR,oVAAoV,CACrV,CAAC;QACJ,CAAC;QACD,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACR,kTAAkT,CACnT,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,0FAA0F,CAC3F,CAAC;QAEF,MAAM,QAAQ,GAAa;YACzB,gEAAgE;YAChE,yDAAyD;YACzD,yDAAyD;YACzD,kEAAkE;SACnE,CAAC;QACF,IAAI,YAAY,IAAI,kBAAkB,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CACX,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAElF,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,iCAAiC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;wBACpH,EAAE;wBACF,kCAAkC;wBAClC,EAAE;wBACF,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC9C,EAAE;wBACF,sBAAsB;wBACtB,GAAG,QAAQ;qBACZ,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"concepts.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,eAAO,MAAM,gBAAgB;;wDAwD3B,CAAC"}
1
+ {"version":3,"file":"concepts.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,eAAO,MAAM,gBAAgB;;wDA6D3B,CAAC"}
@@ -34,12 +34,17 @@ export const conceptsResource = resource('secedgar://concepts', {
34
34
  lines.push('|:------|:------|:----------|:---------|:-----|');
35
35
  for (const item of items) {
36
36
  const tagCell = item.tags.map((t) => `\`${t}\``).join(', ');
37
+ // A concept resolves to a different element set under ifrs-full, so a
38
+ // menu listing only the us-gaap tags reads as the whole story.
39
+ const ifrsCell = item.ifrsTags?.length
40
+ ? `<br>_ifrs-full:_ ${item.ifrsTags.map((t) => `\`${t}\``).join(', ')}`
41
+ : '';
37
42
  const altCell = item.relatedTags?.length
38
43
  ? `<br>_alt (different definition, query separately):_ ${item.relatedTags
39
44
  .map((r) => `\`${r.tag}\` (${r.note})`)
40
45
  .join('; ')}`
41
46
  : '';
42
- lines.push(`| \`${item.name}\` | ${item.label} | ${tagCell}${altCell} | ${item.taxonomy} | ${item.unit} |`);
47
+ lines.push(`| \`${item.name}\` | ${item.label} | ${tagCell}${ifrsCell}${altCell} | ${item.taxonomy} | ${item.unit} |`);
43
48
  }
44
49
  lines.push('');
45
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"concepts.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,MAAM,YAAY,GAAiC;IACjD,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,qBAAqB,EAAE;IAC9D,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,2LAA2L;IAC7L,QAAQ,EAAE,eAAe;IAEzB,OAAO,CAAC,OAAO,EAAE,IAAI;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CACR,sFAAsF,EACtF,EAAE,CACH,CAAC;QACF,KAAK,CAAC,IAAI,CACR,kFAAkF,EAClF,EAAE,CACH,CAAC;QAEF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM;oBACtC,CAAC,CAAC,uDAAuD,IAAI,CAAC,WAAW;yBACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC;yBACtC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjB,CAAC,CAAC,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CACR,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,MAAM,OAAO,GAAG,OAAO,MAAM,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,IAAI,IAAI,CAChG,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACjB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,qBAAqB;gBAC1B,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,4DAA4D;gBACzE,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"concepts.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filing-types.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/filing-types.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsEH,eAAO,MAAM,mBAAmB;;wDAkC9B,CAAC"}
1
+ {"version":3,"file":"filing-types.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/filing-types.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4EH,eAAO,MAAM,mBAAmB;;wDAsE9B,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * @module mcp-server/resources/definitions/filing-types
4
4
  */
5
5
  import { resource } from '@cyanheads/mcp-ts-core';
6
+ import { CURRENT_EIGHT_K_ITEMS, EIGHT_K_RENUMBERING_DATE, EIGHT_K_SECTIONS, LEGACY_EIGHT_K_ITEMS, } from '../../../services/edgar/eight-k-items.js';
6
7
  const FILING_TYPES = [
7
8
  {
8
9
  form: '10-K',
@@ -19,7 +20,7 @@ const FILING_TYPES = [
19
20
  {
20
21
  form: '8-K',
21
22
  cadence: 'Event-driven',
22
- description: 'Current report for material events: M&A (1.01), earnings (2.02), exec changes (5.02).',
23
+ description: 'Current report for material events, scoped by item code (see the item tables below).',
23
24
  use_cases: 'Breaking news, material events, earnings announcements',
24
25
  },
25
26
  {
@@ -67,7 +68,7 @@ const FILING_TYPES = [
67
68
  ];
68
69
  export const filingTypesResource = resource('secedgar://filing-types', {
69
70
  name: 'SEC Filing Types',
70
- description: 'Reference list of common SEC filing types with descriptions, cadence, and typical use cases. Helps choose the forms parameter for secedgar_search_filings or the form_types filter for secedgar_company_search.',
71
+ description: 'Reference list of common SEC filing types with descriptions, cadence, and typical use cases, plus the full 8-K item-code decode tables for both numbering regimes. Helps choose the forms parameter for secedgar_search_filings, the form_types filter for secedgar_company_search, or the items filter for secedgar_get_material_events.',
71
72
  mimeType: 'text/markdown',
72
73
  handler(_params, _ctx) {
73
74
  const lines = ['# SEC Filing Types', ''];
@@ -78,6 +79,21 @@ export const filingTypesResource = resource('secedgar://filing-types', {
78
79
  lines.push(`| **${ft.form}** | ${ft.cadence} | ${ft.description} | ${ft.use_cases} |`);
79
80
  }
80
81
  lines.push('', '> **Beneficial-ownership form names (December 2024 transition):** 5%+ ownership filings now use the structured form names `SCHEDULE 13D` / `SCHEDULE 13G` (with a `primary_doc.xml`). The legacy `SC 13D` / `SC 13G` names stopped appearing on new filings, so filter EFTS (`secedgar_search_filings` forms) on the current names to reach recent filings.');
82
+ lines.push('', '## 8-K item codes', '', `An 8-K reports one or more numbered items, and the item is what identifies the event. Pass these codes to \`secedgar_get_material_events\` (\`items\` filter). SEC replaced the original single-integer numbering with the dotted scheme effective **${EIGHT_K_RENUMBERING_DATE}**; the two vocabularies are disjoint, so a filter of dotted codes never matches a pre-changeover filing and vice versa.`, '', `### Current numbering (${EIGHT_K_RENUMBERING_DATE} onward)`, '', '| Item | Title |', '|:-----|:------|');
83
+ let currentSection = '';
84
+ for (const [code, label] of Object.entries(CURRENT_EIGHT_K_ITEMS)) {
85
+ const section = EIGHT_K_SECTIONS[code.slice(0, 1)];
86
+ if (section && section !== currentSection) {
87
+ currentSection = section;
88
+ lines.push(`| | *Section ${code.slice(0, 1)} — ${section}* |`);
89
+ }
90
+ lines.push(`| \`${code}\` | ${label} |`);
91
+ }
92
+ lines.push('', `### Legacy numbering (before ${EIGHT_K_RENUMBERING_DATE})`, '', '| Item | Title |', '|:-----|:------|');
93
+ for (const [code, label] of Object.entries(LEGACY_EIGHT_K_ITEMS)) {
94
+ lines.push(`| \`${code}\` | ${label} |`);
95
+ }
96
+ lines.push('', "> Legacy item 12 is the ancestor of today's 2.02 (results of operations), item 9 of today's 7.01 (Regulation FD), and item 7 of today's 9.01 (financial statements and exhibits). Items 10-12 were added in 2002-2003 and retired at the changeover along with the rest.");
81
97
  return lines.join('\n');
82
98
  },
83
99
  list: async () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"filing-types.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/filing-types.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ;QACjB,WAAW,EACT,mFAAmF;QACrF,SAAS,EAAE,yDAAyD;KACrE;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,qEAAqE;QAClF,SAAS,EAAE,oDAAoD;KAChE;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,cAAc;QACvB,WAAW,EACT,uFAAuF;QACzF,SAAS,EAAE,wDAAwD;KACpE;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,WAAW,EACT,wFAAwF;QAC1F,SAAS,EAAE,sDAAsD;KAClE;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,yDAAyD;QACtE,SAAS,EAAE,sDAAsD;KAClE;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,qEAAqE;QAClF,SAAS,EAAE,yDAAyD;KACrE;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,yDAAyD;QACtE,SAAS,EAAE,+CAA+C;KAC3D;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,0CAA0C;KACtD;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,2EAA2E;QACxF,SAAS,EAAE,qCAAqC;KACjD;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,4DAA4D;QACzE,SAAS,EAAE,gCAAgC;KAC5C;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,yBAAyB,EAAE;IACrE,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,iNAAiN;IACnN,QAAQ,EAAE,eAAe;IAEzB,OAAO,CAAC,OAAO,EAAE,IAAI;QACnB,MAAM,KAAK,GAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CACR,uHAAuH,EACvH,EAAE,CACH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC3D,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,OAAO,MAAM,EAAE,CAAC,WAAW,MAAM,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;QACzF,CAAC;QACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,6VAA6V,CAC9V,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACjB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,yBAAyB;gBAC9B,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,yDAAyD;gBACtE,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"filing-types.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/filing-types.resource.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compare-companies.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/compare-companies.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA+DjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4d/B,CAAC"}
1
+ {"version":3,"file":"compare-companies.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/compare-companies.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAoEjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8f/B,CAAC"}
@@ -11,7 +11,7 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
11
11
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
12
12
  import { getCanvasBridge, toDatasetField } from '../../../services/canvas-bridge/canvas-bridge.js';
13
13
  import { resolveConceptTarget } from '../../../services/edgar/concept-map.js';
14
- import { seriesFromCompanyFacts } from '../../../services/edgar/concept-series.js';
14
+ import { newestReportedPeriod, seriesFromCompanyFacts, seriesStalenessCaveats, } from '../../../services/edgar/concept-series.js';
15
15
  import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
16
16
  import { missingQuarterCaveats } from '../../../services/edgar/fiscal-periods.js';
17
17
  /** Full-year duration frame — `CY2024`. */
@@ -95,7 +95,7 @@ export const compareCompaniesTool = tool('secedgar_compare_companies', {
95
95
  period_type: z
96
96
  .enum(['annual', 'quarterly'])
97
97
  .default('annual')
98
- .describe('Align on full calendar years (annual) or calendar quarters (quarterly). Quarterly comparisons of off-calendar filers are missing one calendar quarter per year — see caveats.'),
98
+ .describe('Align on full calendar years (annual) or calendar quarters (quarterly). Quarterly comparisons of off-calendar filers are missing at least one calendar quarter per year — see caveats.'),
99
99
  periods: z
100
100
  .number()
101
101
  .int()
@@ -180,7 +180,7 @@ export const compareCompaniesTool = tool('secedgar_compare_companies', {
180
180
  .describe('Company-concept pairs with no data. Deliberately explicit — a missing value is never interpolated or zero-filled.'),
181
181
  caveats: z
182
182
  .array(z.string())
183
- .describe('Comparability warnings: a filer missing a calendar quarter from the frame-tagged series, period ends that differ inside one aligned period, and concepts whose unit differs across companies. Empty when nothing needs flagging.'),
183
+ .describe("Comparability warnings: a filer missing one or two calendar quarters from the frame-tagged series, a concept whose values stop at least two full years behind the rest of that company's reporting (either an XBRL tag SEC has retired, or a current tag the filer stopped using), period ends that differ inside one aligned period, and concepts whose unit differs across companies. Company-specific warnings are prefixed with the company name. Empty when nothing needs flagging."),
184
184
  dataset: z
185
185
  .object({
186
186
  name: z
@@ -253,8 +253,10 @@ export const compareCompaniesTool = tool('secedgar_compare_companies', {
253
253
  ...(company.ticker ? { ticker: company.ticker } : {}),
254
254
  });
255
255
  const quarterFrames = [];
256
+ /** Held until this company's concepts are all read — see the reference below. */
257
+ const resolvedLines = [];
256
258
  for (const { concept, target } of targets) {
257
- const series = seriesFromCompanyFacts(facts, target.taxonomy, target.tags);
259
+ const series = seriesFromCompanyFacts(facts, target.taxonomy, target.tags, target.tagSelection);
258
260
  if (!series || series.series.length === 0) {
259
261
  gaps.push({
260
262
  cik: company.cik,
@@ -304,6 +306,27 @@ export const compareCompaniesTool = tool('secedgar_compare_companies', {
304
306
  const units = unitsByConcept.get(concept) ?? new Set();
305
307
  units.add(series.unit || target.unit || '');
306
308
  unitsByConcept.set(concept, units);
309
+ // series[] is sorted newest-first by period end.
310
+ const newest = series.series[0];
311
+ if (newest)
312
+ resolvedLines.push({ concept, tag: series.tag, label: series.label, newest });
313
+ }
314
+ /**
315
+ * A concept whose series stops years back for this filer alone sits next to
316
+ * current values from the other companies, and the spread reads as a
317
+ * business fact unless the gap is named — whether the cause is a retired tag
318
+ * (#98) or a current one the filer stopped tagging (#102). Measured against
319
+ * this company's own newest reported period, so a filer that is simply
320
+ * behind on everything is not flagged concept by concept.
321
+ */
322
+ const reference = newestReportedPeriod(facts, input.taxonomy);
323
+ for (const line of resolvedLines) {
324
+ for (const caveat of seriesStalenessCaveats(line.tag, line.label, line.newest, {
325
+ date: reference,
326
+ kind: 'reported-period',
327
+ })) {
328
+ caveatSet.add(`${name} / ${line.concept}: ${caveat}`);
329
+ }
307
330
  }
308
331
  /**
309
332
  * Prefixed per company: the missing quarter is a property of that filer's
@@ -1 +1 @@
1
- {"version":3,"file":"compare-companies.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/compare-companies.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,2CAA2C;AAC3C,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,kDAAkD;AAClD,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,yCAAyC;AACzC,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,KAAa,EAAE,UAAkC;IAClE,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;QACzB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAkBD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,EAAE;IACrE,WAAW,EACT,uvCAAuvC;IACzvC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAE9E,UAAU,EAAE;QACV,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACxE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAChE;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,uBAAuB;YAC/B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,uDAAuD;YAC7D,QAAQ,EAAE,+DAA+D;SAC1E;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,4GAA4G;YAClH,QAAQ,EACN,uFAAuF;SAC1F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CACP,gLAAgL,CACjL;QACH,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC;aAC3E,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,qIAAqI,CACtI;QACH,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aAC9B,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,CACP,sMAAsM,CACvM;QACH,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;aAC7B,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CACP,+KAA+K,CAChL;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CACP,iYAAiY,CAClY;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC9F,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,gMAAgM,CACjM;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAC5E,CAAC;aACD,QAAQ,CAAC,0DAA0D,CAAC,CACxE;aACA,QAAQ,CAAC,uCAAuC,CAAC;QACpD,gBAAgB,EAAE,CAAC;aAChB,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC7D,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;iBACpD,QAAQ,CACP,+NAA+N,CAChO;YACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC/E,CAAC;aACD,QAAQ,CAAC,yEAAyE,CAAC,CACvF;aACA,QAAQ,CACP,+GAA+G,CAChH;QACH,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YACpF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC3D,KAAK,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CACP,yIAAyI,CAC1I;SACJ,CAAC;aACD,QAAQ,CAAC,qDAAqD,CAAC,CACnE;aACA,QAAQ,CAAC,0CAA0C,CAAC;QACvD,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAClE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC7D,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,CACP,yHAAyH,CAC1H;YACH,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,6FAA6F,CAC9F;YACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACnE,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,CAAC,+DAA+D,CAAC;SAC7E,CAAC;aACD,QAAQ,CAAC,mCAAmC,CAAC,CACjD;aACA,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,IAAI,EAAE,CAAC;aACJ,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAC9E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACvE,UAAU,EAAE,CAAC;iBACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,2DAA2D,CAAC;SACzE,CAAC;aACD,QAAQ,CAAC,kDAAkD,CAAC,CAChE;aACA,QAAQ,CACP,mHAAmH,CACpH;QACH,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,kOAAkO,CACnO;QACH,OAAO,EAAE,CAAC;aACP,MAAM,CAAC;YACN,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,uEAAuE,CAAC;YACpF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACrE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC9D,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CACP,6JAA6J,CAC9J;KACJ,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;QAEjC,MAAM,iBAAiB,GAAwC,EAAE,CAAC;QAClE,MAAM,MAAM,GAIP,EAAE,CAAC;QAER,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI,QAAQ,kEAAkE;iBACxF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,QAAQ;qBAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;qBAChF,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI,QAAQ,iCAAiC,IAAI,qDAAqD;iBAChH,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/D,IAAI,KAAK;gBAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,CAAC,IAAI,CACZ,uBAAuB,EACvB,eAAe,KAAK,CAAC,SAAS,CAAC,MAAM,wCAAwC,EAC7E,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAC1E,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/C,OAAO;YACP,MAAM,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;SACtD,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,IAAI,GAAmF,EAAE,CAAC;QAChG,MAAM,QAAQ,GAAyE,EAAE,CAAC;QAC1F,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;QACtD,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;YAC3C,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,kBAAkB;oBAC1B,OAAO,EAAE,IAAI,OAAO,CAAC,KAAK,UAAU,OAAO,CAAC,GAAG,sFAAsF;iBACtI,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI;gBACJ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC;YAEH,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,OAAO,EAAE,IAAI;wBACb,OAAO;wBACP,UAAU,EAAE,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,IAAI;qBAC7C,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED;;;;mBAIG;gBACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;wBAAE,SAAS;oBAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACjB,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,OAAO,EAAE,IAAI;wBACb,OAAO;wBACP,MAAM;wBACN,KAAK,EAAE,IAAI,CAAC,GAAG;wBACf,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE;wBACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU,EAAE,IAAI,CAAC,GAAG;wBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,gBAAgB,EAAE,IAAI,CAAC,IAAI;qBAC5B,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,OAAO,EAAE,IAAI;wBACb,OAAO;wBACP,UAAU,EAAE,MAAM,CAAC,SAAS;qBAC7B,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;gBAC/D,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC5C,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YAED;;;;eAIG;YACH,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACtC,KAAK,MAAM,MAAM,IAAI,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC1D,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,IAAI,CACZ,oBAAoB,EACpB,eAAe,QAAQ,CAAC,MAAM,gEAAgE,KAAK,CAAC,WAAW,WAAW,EAC1H,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,iFAAiF;QACjF,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,MAAM,GAAG,gBAAgB,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM;gBAAE,MAAM;YACtD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED;;;;;;WAMG;QACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA4C,CAAC;QAC/E,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;iBACxC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,SAAS,CAAC,GAAG,CACX,6BAA6B,aAAa,CAAC,CAAC,CAAC,MAAM,MAAM,gLAAgL,CAC1O,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACnB,SAAS,CAAC,GAAG,CACX,YAAY,OAAO,4DAA4D,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4FAA4F,CACjM,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAA4E,CAAC;QACjF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACrD,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,UAAU,EAAE,4BAA4B;gBACxC,WAAW,EAAE;oBACX,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;oBACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B;aACF,CAAC,CAAC;YACH,IAAI,UAAU;gBAAE,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,OAAO,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,QAAQ;YACnB,gBAAgB,EAAE,MAAM;YACxB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC9C,OAAO;gBACP,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;aAChD,CAAC,CAAC;YACH,KAAK,EAAE,WAAW;YAClB,IAAI;YACJ,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;YACvB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG;YACV,4BAA4B,MAAM,CAAC,SAAS,CAAC,MAAM,gBAAgB,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,GAAG;YAChJ,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvC,cAAc,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAClI,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CACN,YAAY,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,cAAc,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACnC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,GAAG,CAC/N,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACzD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,CACN,KAAK,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,OAAO,aAAa,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CACN,EAAE,EACF,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,SAAS,kBAAkB,MAAM,CAAC,OAAO,CAAC,UAAU,+DAA+D,CACvK,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC;QAEvE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"compare-companies.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/compare-companies.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @fileoverview Reverse 13F lookup — which institutions reported holding an issuer.
3
+ * Searches the EDGAR full-text index scoped to 13F-HR within one quarter's filing
4
+ * window and returns the filer list, each row chaining into
5
+ * secedgar_get_institutional_holdings for the actual position.
6
+ * @module mcp-server/tools/definitions/find-holders
7
+ */
8
+ import { z } from '@cyanheads/mcp-ts-core';
9
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
+ export declare const findHoldersTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
11
+ issuer: z.ZodString;
12
+ cusip: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>>;
13
+ quarter: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>>;
14
+ limit: z.ZodDefault<z.ZodNumber>;
15
+ }, z.core.$strip>, z.ZodObject<{
16
+ issuer: z.ZodString;
17
+ resolved_issuer_name: z.ZodOptional<z.ZodString>;
18
+ resolved_issuer_cik: z.ZodOptional<z.ZodString>;
19
+ search_mode: z.ZodEnum<{
20
+ cusip: "cusip";
21
+ name: "name";
22
+ }>;
23
+ search_key: z.ZodString;
24
+ quarter: z.ZodString;
25
+ filed_from: z.ZodString;
26
+ filed_to: z.ZodString;
27
+ total_filings: z.ZodNumber;
28
+ total_is_exact: z.ZodBoolean;
29
+ fetched: z.ZodNumber;
30
+ holders_in_quarter: z.ZodNumber;
31
+ holders: z.ZodArray<z.ZodObject<{
32
+ filer_name: z.ZodString;
33
+ filer_cik: z.ZodString;
34
+ accession_number: z.ZodString;
35
+ filing_date: z.ZodString;
36
+ form: z.ZodOptional<z.ZodString>;
37
+ }, z.core.$strip>>;
38
+ dataset: z.ZodOptional<z.ZodObject<{
39
+ name: z.ZodString;
40
+ row_count: z.ZodNumber;
41
+ expires_at: z.ZodString;
42
+ truncated: z.ZodBoolean;
43
+ }, z.core.$strip>>;
44
+ }, z.core.$strip>, readonly [{
45
+ readonly reason: "issuer_not_found";
46
+ readonly code: JsonRpcErrorCode.NotFound;
47
+ readonly when: "No cusip was given and the issuer does not resolve to a known EDGAR company";
48
+ readonly recovery: "Confirm the issuer with secedgar_company_search, or pass the cusip parameter to search the information tables directly.";
49
+ }, {
50
+ readonly reason: "ambiguous_issuer";
51
+ readonly code: JsonRpcErrorCode.ValidationError;
52
+ readonly when: "The issuer name matches several EDGAR companies and no cusip was given";
53
+ readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
54
+ }], {
55
+ readonly ordering: z.ZodString;
56
+ readonly notice: z.ZodOptional<z.ZodString>;
57
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
58
+ readonly shown: z.ZodOptional<z.ZodNumber>;
59
+ readonly cap: z.ZodOptional<z.ZodNumber>;
60
+ }>;
61
+ //# sourceMappingURL=find-holders.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-holders.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-holders.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmFjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgZ1B,CAAC"}