@cyanheads/secedgar-mcp-server 0.15.3 → 0.15.5

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 (61) hide show
  1. package/README.md +6 -5
  2. package/dist/index.js +5 -38
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
  5. package/dist/mcp-server/tools/definitions/company-search.tool.js +6 -4
  6. package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
  7. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +1 -0
  8. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +24 -6
  10. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  11. package/dist/mcp-server/tools/definitions/dataframe-describe.tool.js +1 -1
  12. package/dist/mcp-server/tools/definitions/dataframe-describe.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts +1 -0
  14. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js +48 -13
  16. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +22 -10
  19. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/find-holders.tool.js +8 -6
  22. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js +8 -4
  25. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/get-filing.tool.js +8 -4
  28. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +1 -0
  30. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/get-financials.tool.js +19 -4
  32. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js +18 -7
  35. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +11 -4
  38. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  40. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +18 -7
  41. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  42. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -1
  43. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +4 -4
  44. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -1
  45. package/dist/mcp-server/tools/definitions/index.d.ts +1034 -0
  46. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  47. package/dist/mcp-server/tools/definitions/index.js +63 -0
  48. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  49. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/search-filings.tool.js +25 -10
  51. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  52. package/dist/services/canvas-bridge/canvas-bridge.d.ts +16 -0
  53. package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
  54. package/dist/services/canvas-bridge/canvas-bridge.js +15 -0
  55. package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
  56. package/dist/services/edgar/filing-to-text.d.ts +19 -4
  57. package/dist/services/edgar/filing-to-text.d.ts.map +1 -1
  58. package/dist/services/edgar/filing-to-text.js +211 -14
  59. package/dist/services/edgar/filing-to-text.js.map +1 -1
  60. package/package.json +1 -1
  61. package/server.json +3 -3
@@ -0,0 +1,1034 @@
1
+ /**
2
+ * @fileoverview The tool registration list handed to `createApp()` — every
3
+ * secedgar tool definition, including the ones this deployment gates off.
4
+ *
5
+ * A gated tool stays in the list rather than being omitted from it:
6
+ * `secedgar_dataframe_drop` is wrapped with `disabledTool()` when
7
+ * `EDGAR_DATAFRAME_DROP_ENABLED` is off, which keeps it out of MCP registration
8
+ * (clients cannot list or call it) while leaving it visible — with its reason
9
+ * and enable hint — on the HTTP landing page, so an operator auditing the
10
+ * server can see the capability exists and what turns it on (#103).
11
+ *
12
+ * @module mcp-server/tools/definitions/index
13
+ */
14
+ /** Deployment gates that decide how a tool enters the registration list. */
15
+ export interface ToolDefinitionOptions {
16
+ /**
17
+ * `EDGAR_DATAFRAME_DROP_ENABLED`. When false, `secedgar_dataframe_drop` is
18
+ * registered through `disabledTool()` instead of live.
19
+ */
20
+ dropEnabled: boolean;
21
+ }
22
+ /**
23
+ * Build the tool list for `createApp({ tools })`. Length is constant across
24
+ * deployments — the drop gate changes how the tool is registered, never whether
25
+ * it is present, so the manifest's tool count matches the documented surface.
26
+ */
27
+ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
28
+ name: import("zod").ZodString;
29
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
30
+ name: import("zod").ZodString;
31
+ dropped: import("zod").ZodBoolean;
32
+ }, import("zod/v4/core").$strip>, readonly [{
33
+ readonly reason: "canvas_unavailable";
34
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
35
+ readonly when: "The DataCanvas service is not configured for this deployment";
36
+ readonly recovery: "Set CANVAS_PROVIDER_TYPE=duckdb in the server environment to enable dataframes.";
37
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
38
+ fund: import("zod").ZodString;
39
+ series_id: import("zod").ZodOptional<import("zod").ZodString>;
40
+ report_date: import("zod").ZodOptional<import("zod").ZodString>;
41
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
42
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
43
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
44
+ fund: import("zod").ZodString;
45
+ series_id: import("zod").ZodOptional<import("zod").ZodString>;
46
+ series_name: import("zod").ZodOptional<import("zod").ZodString>;
47
+ class_ids: import("zod").ZodArray<import("zod").ZodString>;
48
+ registrant_cik: import("zod").ZodString;
49
+ registrant_name: import("zod").ZodString;
50
+ report_period_date: import("zod").ZodOptional<import("zod").ZodString>;
51
+ report_period_end: import("zod").ZodOptional<import("zod").ZodString>;
52
+ filing_date: import("zod").ZodString;
53
+ publication_lag_days: import("zod").ZodOptional<import("zod").ZodNumber>;
54
+ form: import("zod").ZodString;
55
+ accession_number: import("zod").ZodString;
56
+ is_final_filing: import("zod").ZodOptional<import("zod").ZodBoolean>;
57
+ net_assets_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
58
+ total_assets_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
59
+ total_liabilities_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
60
+ total_holdings: import("zod").ZodNumber;
61
+ offset: import("zod").ZodNumber;
62
+ next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
63
+ available_report_periods: import("zod").ZodArray<import("zod").ZodString>;
64
+ holdings: import("zod").ZodArray<import("zod").ZodObject<{
65
+ name: import("zod").ZodString;
66
+ title: import("zod").ZodOptional<import("zod").ZodString>;
67
+ cusip: import("zod").ZodOptional<import("zod").ZodString>;
68
+ isin: import("zod").ZodOptional<import("zod").ZodString>;
69
+ lei: import("zod").ZodOptional<import("zod").ZodString>;
70
+ balance: import("zod").ZodOptional<import("zod").ZodNumber>;
71
+ units: import("zod").ZodOptional<import("zod").ZodString>;
72
+ currency: import("zod").ZodOptional<import("zod").ZodString>;
73
+ value_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
74
+ percent_of_net_assets: import("zod").ZodOptional<import("zod").ZodNumber>;
75
+ payoff_profile: import("zod").ZodOptional<import("zod").ZodString>;
76
+ asset_category: import("zod").ZodOptional<import("zod").ZodString>;
77
+ issuer_category: import("zod").ZodOptional<import("zod").ZodString>;
78
+ country: import("zod").ZodOptional<import("zod").ZodString>;
79
+ }, import("zod/v4/core").$strip>>;
80
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
81
+ name: import("zod").ZodString;
82
+ row_count: import("zod").ZodNumber;
83
+ expires_at: import("zod").ZodString;
84
+ }, import("zod/v4/core").$strip>>;
85
+ }, import("zod/v4/core").$strip>, readonly [{
86
+ readonly reason: "fund_not_found";
87
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
88
+ readonly when: "The fund input resolves to neither an EDGAR company nor a known fund series";
89
+ readonly recovery: "Use secedgar_company_search with the fund ticker to get its CIK and series ID.";
90
+ }, {
91
+ readonly reason: "ambiguous_fund";
92
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
93
+ readonly when: "The fund name matches several EDGAR companies";
94
+ readonly recovery: "Retry with the fund ticker or the 10-digit CIK from the matches list.";
95
+ }, {
96
+ readonly reason: "series_required";
97
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
98
+ readonly when: "The input resolves to a registrant trust that files reports for more than one fund series";
99
+ readonly recovery: "Retry with series_id set to one of the listed series, or pass a fund ticker.";
100
+ }, {
101
+ readonly reason: "no_filings_found";
102
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
103
+ readonly when: "No NPORT-P report exists for this fund, or none for the requested report_date";
104
+ readonly recovery: "Drop report_date to take the newest report, or use secedgar_search_filings with forms [\"NPORT-P\"] to see what the registrant has filed.";
105
+ }], {
106
+ readonly as_of: import("zod").ZodString;
107
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
108
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
109
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
110
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
111
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
112
+ company: import("zod").ZodString;
113
+ items: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
114
+ [x: string]: string;
115
+ }>>>;
116
+ filed_after: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
117
+ filed_before: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
118
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
119
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
120
+ cik: import("zod").ZodString;
121
+ company_name: import("zod").ZodString;
122
+ items_filter: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
123
+ total_matched: import("zod").ZodNumber;
124
+ total_8k_scanned: import("zod").ZodNumber;
125
+ item_distribution: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
126
+ history_scanned_through: import("zod").ZodOptional<import("zod").ZodString>;
127
+ filings: import("zod").ZodArray<import("zod").ZodObject<{
128
+ accession_number: import("zod").ZodString;
129
+ form: import("zod").ZodString;
130
+ filing_date: import("zod").ZodString;
131
+ report_date: import("zod").ZodOptional<import("zod").ZodString>;
132
+ primary_document: import("zod").ZodOptional<import("zod").ZodString>;
133
+ description: import("zod").ZodOptional<import("zod").ZodString>;
134
+ items: import("zod").ZodArray<import("zod").ZodObject<{
135
+ code: import("zod").ZodString;
136
+ label: import("zod").ZodOptional<import("zod").ZodString>;
137
+ regime: import("zod").ZodOptional<import("zod").ZodEnum<{
138
+ current: "current";
139
+ legacy: "legacy";
140
+ }>>;
141
+ }, import("zod/v4/core").$strip>>;
142
+ }, import("zod/v4/core").$strip>>;
143
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
144
+ name: import("zod").ZodString;
145
+ row_count: import("zod").ZodNumber;
146
+ expires_at: import("zod").ZodString;
147
+ truncated: import("zod").ZodBoolean;
148
+ }, import("zod/v4/core").$strip>>;
149
+ }, import("zod/v4/core").$strip>, readonly [{
150
+ readonly reason: "no_match";
151
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
152
+ readonly when: "No company matches the query";
153
+ readonly recovery: "Use a ticker symbol or 10-digit CIK for an exact match, or find the company with secedgar_company_search.";
154
+ }, {
155
+ readonly reason: "multiple_matches";
156
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
157
+ readonly when: "The query is ambiguous and matches several companies";
158
+ readonly recovery: "Retry with a ticker symbol or the 10-digit CIK from the matches list.";
159
+ }], {
160
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
161
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
162
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
163
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
164
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
165
+ query: import("zod").ZodString;
166
+ include_filings: import("zod").ZodDefault<import("zod").ZodBoolean>;
167
+ form_types: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
168
+ filing_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
169
+ filed_after: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
170
+ filed_before: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
171
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
172
+ cik: import("zod").ZodString;
173
+ name: import("zod").ZodString;
174
+ tickers: import("zod").ZodArray<import("zod").ZodString>;
175
+ exchanges: import("zod").ZodArray<import("zod").ZodString>;
176
+ sic: import("zod").ZodString;
177
+ sic_description: import("zod").ZodString;
178
+ state_of_incorporation: import("zod").ZodOptional<import("zod").ZodString>;
179
+ fiscal_year_end: import("zod").ZodOptional<import("zod").ZodString>;
180
+ series_id: import("zod").ZodOptional<import("zod").ZodString>;
181
+ class_id: import("zod").ZodOptional<import("zod").ZodString>;
182
+ filings: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
183
+ accession_number: import("zod").ZodString;
184
+ form: import("zod").ZodString;
185
+ filing_date: import("zod").ZodString;
186
+ report_date: import("zod").ZodOptional<import("zod").ZodString>;
187
+ primary_document: import("zod").ZodString;
188
+ description: import("zod").ZodOptional<import("zod").ZodString>;
189
+ }, import("zod/v4/core").$strip>>>;
190
+ total_filings: import("zod").ZodOptional<import("zod").ZodNumber>;
191
+ history_scanned_through: import("zod").ZodOptional<import("zod").ZodString>;
192
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
193
+ name: import("zod").ZodString;
194
+ row_count: import("zod").ZodNumber;
195
+ expires_at: import("zod").ZodString;
196
+ truncated: import("zod").ZodBoolean;
197
+ }, import("zod/v4/core").$strip>>;
198
+ }, import("zod/v4/core").$strip>, readonly [{
199
+ readonly reason: "no_match";
200
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
201
+ readonly when: "No company matches the query";
202
+ readonly recovery: "Check `data.suggestions` for near matches. SEC's ticker index reflects the filer's own submissions record, which can differ from the exchange-listed symbol. ETFs and mutual funds resolve only by ticker (e.g. \"VOO\"); operating companies also resolve by full legal name or 10-digit CIK.";
203
+ }, {
204
+ readonly reason: "multiple_matches";
205
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
206
+ readonly when: "Query is ambiguous and matches several companies";
207
+ readonly recovery: "Specify a ticker symbol for an exact match instead of a name fragment.";
208
+ }], {
209
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
210
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
211
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
212
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
213
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
214
+ query: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
215
+ forms: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
216
+ start_date: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
217
+ end_date: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
218
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
219
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
220
+ sort: import("zod").ZodDefault<import("zod").ZodEnum<{
221
+ filing_date_asc: "filing_date_asc";
222
+ filing_date_desc: "filing_date_desc";
223
+ relevance: "relevance";
224
+ }>>;
225
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
226
+ total: import("zod").ZodNumber;
227
+ total_is_exact: import("zod").ZodBoolean;
228
+ results: import("zod").ZodArray<import("zod").ZodObject<{
229
+ accession_number: import("zod").ZodString;
230
+ form: import("zod").ZodOptional<import("zod").ZodString>;
231
+ filing_date: import("zod").ZodString;
232
+ period_ending: import("zod").ZodOptional<import("zod").ZodString>;
233
+ company_name: import("zod").ZodString;
234
+ cik: import("zod").ZodString;
235
+ ticker: import("zod").ZodOptional<import("zod").ZodString>;
236
+ file_description: import("zod").ZodOptional<import("zod").ZodString>;
237
+ sic: import("zod").ZodOptional<import("zod").ZodString>;
238
+ location: import("zod").ZodOptional<import("zod").ZodString>;
239
+ source: import("zod").ZodOptional<import("zod").ZodEnum<{
240
+ efts: "efts";
241
+ "full-index": "full-index";
242
+ submissions: "submissions";
243
+ }>>;
244
+ }, import("zod/v4/core").$strip>>;
245
+ form_distribution: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>>;
246
+ scan: import("zod").ZodOptional<import("zod").ZodObject<{
247
+ candidates: import("zod").ZodNumber;
248
+ scanned: import("zod").ZodNumber;
249
+ matched: import("zod").ZodNumber;
250
+ capped: import("zod").ZodBoolean;
251
+ }, import("zod/v4/core").$strip>>;
252
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
253
+ name: import("zod").ZodString;
254
+ row_count: import("zod").ZodNumber;
255
+ expires_at: import("zod").ZodString;
256
+ truncated: import("zod").ZodBoolean;
257
+ }, import("zod/v4/core").$strip>>;
258
+ }, import("zod/v4/core").$strip>, readonly [{
259
+ readonly reason: "invalid_date_range";
260
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
261
+ readonly when: "Only one of start_date or end_date was provided";
262
+ readonly recovery: "Provide both start_date and end_date, or omit both to search all dates.";
263
+ }, {
264
+ readonly reason: "unresolved_ticker";
265
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
266
+ readonly when: "A ticker: targeting token in the query does not resolve to a known company";
267
+ readonly recovery: "Verify the symbol with secedgar_company_search, or target by CIK with cik:<number> instead.";
268
+ }, {
269
+ readonly reason: "invalid_cik";
270
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
271
+ readonly when: "A cik: targeting token in the query is not a 1-10 digit number";
272
+ readonly recovery: "Pass a numeric CIK such as cik:320193 — find it with secedgar_company_search if unknown.";
273
+ }, {
274
+ readonly reason: "entity_not_found";
275
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
276
+ readonly when: "A cik: targeting token on a pre-2001 date range names a CIK with no EDGAR submissions history";
277
+ readonly recovery: "Confirm the CIK with secedgar_company_search — an accession-number prefix names the filing agent, not the issuer.";
278
+ }, {
279
+ readonly reason: "missing_criteria";
280
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
281
+ readonly when: "Neither a full-text query nor a forms filter was provided (a date range cannot stand alone)";
282
+ readonly recovery: "Provide search terms, or browse by form type (forms: [\"S-1\"]) or entity (ticker:AAPL / cik:320193 in the query) — optionally narrowed by date.";
283
+ }, {
284
+ readonly reason: "pre2001_full_text_unscoped";
285
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
286
+ readonly when: "A date range reaching before 2001-01-01 carries free-text terms with no entity scope — no pre-2001 full-text index exists, and nothing bounds a local scan";
287
+ readonly recovery: "Add ticker: or cik: entity scope to the query, drop the text terms to browse by form and date, or start the range at 2001-01-01.";
288
+ }], {
289
+ readonly effectiveQuery: import("zod").ZodString;
290
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
291
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
292
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
293
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
294
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
295
+ accession_number: import("zod").ZodString;
296
+ cik: import("zod").ZodOptional<import("zod").ZodString>;
297
+ content_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
298
+ document: import("zod").ZodOptional<import("zod").ZodString>;
299
+ include_xbrl: import("zod").ZodDefault<import("zod").ZodBoolean>;
300
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
301
+ section: import("zod").ZodOptional<import("zod").ZodString>;
302
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
303
+ accession_number: import("zod").ZodString;
304
+ form: import("zod").ZodOptional<import("zod").ZodString>;
305
+ filing_date: import("zod").ZodOptional<import("zod").ZodString>;
306
+ company_name: import("zod").ZodOptional<import("zod").ZodString>;
307
+ cik: import("zod").ZodString;
308
+ period_ending: import("zod").ZodOptional<import("zod").ZodString>;
309
+ primary_document: import("zod").ZodString;
310
+ requested_document: import("zod").ZodOptional<import("zod").ZodString>;
311
+ documents: import("zod").ZodObject<{
312
+ primary: import("zod").ZodArray<import("zod").ZodObject<{
313
+ name: import("zod").ZodString;
314
+ type: import("zod").ZodString;
315
+ description: import("zod").ZodOptional<import("zod").ZodString>;
316
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
317
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
318
+ }, import("zod/v4/core").$strip>>;
319
+ exhibits: import("zod").ZodArray<import("zod").ZodObject<{
320
+ name: import("zod").ZodString;
321
+ type: import("zod").ZodString;
322
+ description: import("zod").ZodOptional<import("zod").ZodString>;
323
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
324
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
325
+ }, import("zod/v4/core").$strip>>;
326
+ auxiliary: import("zod").ZodArray<import("zod").ZodObject<{
327
+ name: import("zod").ZodString;
328
+ type: import("zod").ZodString;
329
+ description: import("zod").ZodOptional<import("zod").ZodString>;
330
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
331
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
332
+ }, import("zod/v4/core").$strip>>;
333
+ xbrl: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
334
+ name: import("zod").ZodString;
335
+ type: import("zod").ZodString;
336
+ description: import("zod").ZodOptional<import("zod").ZodString>;
337
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
338
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
339
+ }, import("zod/v4/core").$strip>>>;
340
+ }, import("zod/v4/core").$strip>;
341
+ content: import("zod").ZodString;
342
+ content_truncated: import("zod").ZodBoolean;
343
+ content_total_length: import("zod").ZodNumber;
344
+ next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
345
+ outline: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
346
+ heading: import("zod").ZodString;
347
+ offset: import("zod").ZodNumber;
348
+ }, import("zod/v4/core").$strip>>>;
349
+ filing_url: import("zod").ZodString;
350
+ }, import("zod/v4/core").$strip>, readonly [{
351
+ readonly reason: "document_not_found";
352
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
353
+ readonly when: "A specific document was requested but not present in the filing archive";
354
+ readonly recovery: "Pick a filename from the categorized document list in the error message.";
355
+ }, {
356
+ readonly reason: "no_documents";
357
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
358
+ readonly when: "Filing index lists items but no fetchable primary document was found";
359
+ readonly recovery: "Set document to one of the filenames listed in the error message.";
360
+ }, {
361
+ readonly reason: "binary_document";
362
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
363
+ readonly when: "The requested document is a binary entry (scanned image, PDF, archive) with no text to return";
364
+ readonly recovery: "Pick a text document (.htm, .txt, .xml) from the list in the error message.";
365
+ }, {
366
+ readonly reason: "filing_not_found";
367
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
368
+ readonly when: "No filing matches the accession number under any candidate CIK";
369
+ readonly recovery: "Verify the accession number and pass the company CIK explicitly.";
370
+ }, {
371
+ readonly reason: "offset_out_of_range";
372
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
373
+ readonly when: "The provided offset is at or beyond the end of the document";
374
+ readonly recovery: "Use an offset less than the total document length shown in the error message.";
375
+ }, {
376
+ readonly reason: "section_not_found";
377
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
378
+ readonly when: "The section string did not match any detected heading in the document";
379
+ readonly recovery: "Pick a heading from the outline in the error message, or use offset paging instead.";
380
+ }], {
381
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
382
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
383
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
384
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
385
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
386
+ company: import("zod").ZodString;
387
+ concept: import("zod").ZodString;
388
+ taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
389
+ dei: "dei";
390
+ "ifrs-full": "ifrs-full";
391
+ "us-gaap": "us-gaap";
392
+ }>>;
393
+ period_type: import("zod").ZodOptional<import("zod").ZodEnum<{
394
+ all: "all";
395
+ annual: "annual";
396
+ quarterly: "quarterly";
397
+ }>>;
398
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
399
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
400
+ company: import("zod").ZodString;
401
+ cik: import("zod").ZodString;
402
+ concept: import("zod").ZodString;
403
+ label: import("zod").ZodString;
404
+ description: import("zod").ZodOptional<import("zod").ZodString>;
405
+ unit: import("zod").ZodString;
406
+ data: import("zod").ZodArray<import("zod").ZodObject<{
407
+ period: import("zod").ZodString;
408
+ value: import("zod").ZodNumber;
409
+ start: import("zod").ZodOptional<import("zod").ZodString>;
410
+ end: import("zod").ZodString;
411
+ fiscal_year: import("zod").ZodNullable<import("zod").ZodNumber>;
412
+ fiscal_period: import("zod").ZodNullable<import("zod").ZodString>;
413
+ form: import("zod").ZodString;
414
+ filed: import("zod").ZodString;
415
+ accession_number: import("zod").ZodString;
416
+ }, import("zod/v4/core").$strip>>;
417
+ tags_tried: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
418
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
419
+ name: import("zod").ZodString;
420
+ row_count: import("zod").ZodNumber;
421
+ expires_at: import("zod").ZodString;
422
+ }, import("zod/v4/core").$strip>>;
423
+ caveats: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
424
+ }, import("zod/v4/core").$strip>, readonly [{
425
+ readonly reason: "company_not_found";
426
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
427
+ readonly when: "The company input does not resolve to a CIK";
428
+ readonly recovery: "Use a ticker symbol or 10-digit CIK number for an exact match.";
429
+ }, {
430
+ readonly reason: "ambiguous_company";
431
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
432
+ readonly when: "The company input resolves to multiple entities and the target is ambiguous";
433
+ readonly recovery: "Use a ticker symbol or 10-digit CIK from the matches list for an exact match.";
434
+ }, {
435
+ readonly reason: "no_concept_data";
436
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
437
+ readonly when: "The company does not report any XBRL data for the resolved concept and taxonomy";
438
+ readonly recovery: "Try a raw XBRL tag, switch taxonomy to ifrs-full, or use a related concept.";
439
+ }, {
440
+ readonly reason: "no_frame_data";
441
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
442
+ readonly when: "Concept exists but has no frame-aligned (standard calendar period) entries";
443
+ readonly recovery: "Try a related concept that reports against standard calendar periods.";
444
+ }, {
445
+ readonly reason: "no_period_data";
446
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
447
+ readonly when: "Concept has data but the period_type filter excluded all of it";
448
+ readonly recovery: "Switch period_type to \"quarterly\" or \"all\" for balance sheet items.";
449
+ }], {
450
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
451
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
452
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
453
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
454
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
455
+ company: import("zod").ZodString;
456
+ taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
457
+ "ifrs-full": "ifrs-full";
458
+ "us-gaap": "us-gaap";
459
+ }>>;
460
+ period_type: import("zod").ZodDefault<import("zod").ZodEnum<{
461
+ annual: "annual";
462
+ both: "both";
463
+ quarterly: "quarterly";
464
+ }>>;
465
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
466
+ company: import("zod").ZodString;
467
+ cik: import("zod").ZodString;
468
+ taxonomy: import("zod").ZodString;
469
+ period_type: import("zod").ZodString;
470
+ concepts_resolved: import("zod").ZodNumber;
471
+ concepts_total: import("zod").ZodNumber;
472
+ lines: import("zod").ZodArray<import("zod").ZodObject<{
473
+ concept: import("zod").ZodString;
474
+ label: import("zod").ZodString;
475
+ group: import("zod").ZodString;
476
+ taxonomy: import("zod").ZodString;
477
+ tag: import("zod").ZodString;
478
+ unit: import("zod").ZodString;
479
+ annual: import("zod").ZodOptional<import("zod").ZodObject<{
480
+ period: import("zod").ZodString;
481
+ value: import("zod").ZodNumber;
482
+ period_end: import("zod").ZodString;
483
+ form: import("zod").ZodString;
484
+ accession_number: import("zod").ZodString;
485
+ }, import("zod/v4/core").$strip>>;
486
+ quarterly: import("zod").ZodOptional<import("zod").ZodObject<{
487
+ period: import("zod").ZodString;
488
+ value: import("zod").ZodNumber;
489
+ period_end: import("zod").ZodString;
490
+ form: import("zod").ZodString;
491
+ accession_number: import("zod").ZodString;
492
+ }, import("zod/v4/core").$strip>>;
493
+ instant: import("zod").ZodOptional<import("zod").ZodObject<{
494
+ period: import("zod").ZodString;
495
+ value: import("zod").ZodNumber;
496
+ period_end: import("zod").ZodString;
497
+ form: import("zod").ZodString;
498
+ accession_number: import("zod").ZodString;
499
+ }, import("zod/v4/core").$strip>>;
500
+ }, import("zod/v4/core").$strip>>;
501
+ gaps: import("zod").ZodArray<import("zod").ZodObject<{
502
+ concept: import("zod").ZodString;
503
+ label: import("zod").ZodString;
504
+ group: import("zod").ZodString;
505
+ tags_tried: import("zod").ZodArray<import("zod").ZodString>;
506
+ }, import("zod/v4/core").$strip>>;
507
+ caveats: import("zod").ZodArray<import("zod").ZodString>;
508
+ }, import("zod/v4/core").$strip>, readonly [{
509
+ readonly reason: "company_not_found";
510
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
511
+ readonly when: "The company input does not resolve to a CIK";
512
+ readonly recovery: "Use a ticker symbol or 10-digit CIK number for an exact match.";
513
+ }, {
514
+ readonly reason: "ambiguous_company";
515
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
516
+ readonly when: "The company input resolves to multiple entities and the target is ambiguous";
517
+ readonly recovery: "Use a ticker symbol or 10-digit CIK from the matches list for an exact match.";
518
+ }, {
519
+ readonly reason: "no_company_facts";
520
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
521
+ readonly when: "The filer has no XBRL facts at all — pre-XBRL, foreign private issuer, or a non-operating registrant";
522
+ readonly recovery: "Check the filer files XBRL financial statements, or read the filings directly with secedgar_search_filings.";
523
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
524
+ ticker_or_cik: import("zod").ZodString;
525
+ transaction_type: import("zod").ZodDefault<import("zod").ZodEnum<{
526
+ all: "all";
527
+ purchase: "purchase";
528
+ sale: "sale";
529
+ }>>;
530
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
531
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
532
+ issuer_name: import("zod").ZodString;
533
+ issuer_cik: import("zod").ZodString;
534
+ issuer_ticker: import("zod").ZodOptional<import("zod").ZodString>;
535
+ transactions: import("zod").ZodArray<import("zod").ZodObject<{
536
+ filing_date: import("zod").ZodString;
537
+ period_of_report: import("zod").ZodOptional<import("zod").ZodString>;
538
+ accession_number: import("zod").ZodString;
539
+ reporting_person: import("zod").ZodString;
540
+ relationship: import("zod").ZodString;
541
+ security_title: import("zod").ZodString;
542
+ transaction_date: import("zod").ZodOptional<import("zod").ZodString>;
543
+ transaction_code: import("zod").ZodString;
544
+ transaction_type: import("zod").ZodString;
545
+ is_derivative: import("zod").ZodBoolean;
546
+ shares_traded: import("zod").ZodOptional<import("zod").ZodNumber>;
547
+ direction: import("zod").ZodOptional<import("zod").ZodEnum<{
548
+ acquire: "acquire";
549
+ dispose: "dispose";
550
+ }>>;
551
+ price_per_share: import("zod").ZodOptional<import("zod").ZodNumber>;
552
+ shares_owned_after: import("zod").ZodOptional<import("zod").ZodNumber>;
553
+ ownership_type: import("zod").ZodOptional<import("zod").ZodEnum<{
554
+ direct: "direct";
555
+ indirect: "indirect";
556
+ }>>;
557
+ ownership_nature: import("zod").ZodOptional<import("zod").ZodString>;
558
+ }, import("zod/v4/core").$strip>>;
559
+ filings_scanned: import("zod").ZodNumber;
560
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
561
+ name: import("zod").ZodString;
562
+ row_count: import("zod").ZodNumber;
563
+ expires_at: import("zod").ZodString;
564
+ truncated: import("zod").ZodBoolean;
565
+ }, import("zod/v4/core").$strip>>;
566
+ }, import("zod/v4/core").$strip>, readonly [{
567
+ readonly reason: "company_not_found";
568
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
569
+ readonly when: "The ticker or CIK does not resolve to a known company";
570
+ readonly recovery: "Use secedgar_company_search to find the correct ticker or CIK.";
571
+ }, {
572
+ readonly reason: "no_filings_found";
573
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
574
+ readonly when: "No Form 4 filings exist for this company in the recent submissions window";
575
+ readonly recovery: "Use secedgar_search_filings with forms=[\"4\"] for broader historical coverage.";
576
+ }], {
577
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
578
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
579
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
580
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
581
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
582
+ ticker_or_cik: import("zod").ZodString;
583
+ quarter: import("zod").ZodOptional<import("zod").ZodString>;
584
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
585
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
586
+ consolidate: import("zod").ZodDefault<import("zod").ZodBoolean>;
587
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
588
+ filer_name: import("zod").ZodString;
589
+ filer_cik: import("zod").ZodString;
590
+ reporting_period: import("zod").ZodOptional<import("zod").ZodString>;
591
+ filing_date: import("zod").ZodString;
592
+ accession_number: import("zod").ZodString;
593
+ total_holdings_in_filing: import("zod").ZodNumber;
594
+ total_positions: import("zod").ZodOptional<import("zod").ZodNumber>;
595
+ offset: import("zod").ZodNumber;
596
+ next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
597
+ holdings: import("zod").ZodArray<import("zod").ZodObject<{
598
+ issuer_name: import("zod").ZodString;
599
+ title_of_class: import("zod").ZodOptional<import("zod").ZodString>;
600
+ cusip: import("zod").ZodOptional<import("zod").ZodString>;
601
+ market_value_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
602
+ shares_or_principal_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
603
+ shares_or_principal_type: import("zod").ZodOptional<import("zod").ZodEnum<{
604
+ PRN: "PRN";
605
+ SH: "SH";
606
+ }>>;
607
+ put_call: import("zod").ZodOptional<import("zod").ZodEnum<{
608
+ Call: "Call";
609
+ Put: "Put";
610
+ }>>;
611
+ investment_discretion: import("zod").ZodOptional<import("zod").ZodEnum<{
612
+ DFND: "DFND";
613
+ OTR: "OTR";
614
+ SOLE: "SOLE";
615
+ }>>;
616
+ }, import("zod/v4/core").$strip>>;
617
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
618
+ name: import("zod").ZodString;
619
+ row_count: import("zod").ZodNumber;
620
+ expires_at: import("zod").ZodString;
621
+ }, import("zod/v4/core").$strip>>;
622
+ }, import("zod/v4/core").$strip>, readonly [{
623
+ readonly reason: "company_not_found";
624
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
625
+ readonly when: "The ticker or CIK does not resolve to a known company or institution";
626
+ readonly recovery: "Use secedgar_company_search to find the correct CIK or full entity name.";
627
+ }, {
628
+ readonly reason: "ambiguous_entity";
629
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
630
+ readonly when: "The name resolves to multiple EDGAR entities (e.g. several filers sharing a legal name)";
631
+ readonly recovery: "Retry with the exact 10-digit CIK of the intended filer from the matches list.";
632
+ }, {
633
+ readonly reason: "no_filings_found";
634
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
635
+ readonly when: "No 13F-HR filings found for this entity in the recent submissions window";
636
+ readonly recovery: "Use secedgar_search_filings with forms=[\"13F-HR\"] for broader search, or check that the entity is an institutional investment manager.";
637
+ }, {
638
+ readonly reason: "no_info_table";
639
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
640
+ readonly when: "The 13F-HR filing was found but the information table XML document could not be located";
641
+ readonly recovery: "Use secedgar_get_filing with the accession number to inspect the filing documents directly.";
642
+ }], {
643
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
644
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
645
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
646
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
647
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
648
+ issuer: import("zod").ZodString;
649
+ cusip: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
650
+ quarter: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
651
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
652
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
653
+ issuer: import("zod").ZodString;
654
+ resolved_issuer_name: import("zod").ZodOptional<import("zod").ZodString>;
655
+ resolved_issuer_cik: import("zod").ZodOptional<import("zod").ZodString>;
656
+ search_mode: import("zod").ZodEnum<{
657
+ cusip: "cusip";
658
+ name: "name";
659
+ }>;
660
+ search_key: import("zod").ZodString;
661
+ quarter: import("zod").ZodString;
662
+ filed_from: import("zod").ZodString;
663
+ filed_to: import("zod").ZodString;
664
+ total_filings: import("zod").ZodNumber;
665
+ total_is_exact: import("zod").ZodBoolean;
666
+ fetched: import("zod").ZodNumber;
667
+ holders_in_quarter: import("zod").ZodNumber;
668
+ holders: import("zod").ZodArray<import("zod").ZodObject<{
669
+ filer_name: import("zod").ZodString;
670
+ filer_cik: import("zod").ZodString;
671
+ accession_number: import("zod").ZodString;
672
+ filing_date: import("zod").ZodString;
673
+ form: import("zod").ZodOptional<import("zod").ZodString>;
674
+ }, import("zod/v4/core").$strip>>;
675
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
676
+ name: import("zod").ZodString;
677
+ row_count: import("zod").ZodNumber;
678
+ expires_at: import("zod").ZodString;
679
+ truncated: import("zod").ZodBoolean;
680
+ }, import("zod/v4/core").$strip>>;
681
+ }, import("zod/v4/core").$strip>, readonly [{
682
+ readonly reason: "issuer_not_found";
683
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
684
+ readonly when: "No cusip was given and the issuer does not resolve to a known EDGAR company";
685
+ readonly recovery: "Confirm the issuer with secedgar_company_search, or pass the cusip parameter to search the information tables directly.";
686
+ }, {
687
+ readonly reason: "ambiguous_issuer";
688
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
689
+ readonly when: "The issuer name matches several EDGAR companies and no cusip was given";
690
+ readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
691
+ }], {
692
+ readonly ordering: import("zod").ZodString;
693
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
694
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
695
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
696
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
697
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
698
+ issuer: import("zod").ZodString;
699
+ form_kind: import("zod").ZodDefault<import("zod").ZodEnum<{
700
+ "13D": "13D";
701
+ "13G": "13G";
702
+ all: "all";
703
+ }>>;
704
+ include_amendments: import("zod").ZodDefault<import("zod").ZodBoolean>;
705
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
706
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
707
+ issuer: import("zod").ZodString;
708
+ issuer_cik: import("zod").ZodString;
709
+ issuer_name: import("zod").ZodString;
710
+ form_kind: import("zod").ZodEnum<{
711
+ "13D": "13D";
712
+ "13G": "13G";
713
+ all: "all";
714
+ }>;
715
+ total_structured_filings: import("zod").ZodNumber;
716
+ filings_parsed: import("zod").ZodNumber;
717
+ structured_coverage_from: import("zod").ZodString;
718
+ legacy_filings_before_coverage: import("zod").ZodNumber;
719
+ filings: import("zod").ZodArray<import("zod").ZodObject<{
720
+ form: import("zod").ZodString;
721
+ schedule: import("zod").ZodEnum<{
722
+ "13D": "13D";
723
+ "13G": "13G";
724
+ }>;
725
+ is_amendment: import("zod").ZodBoolean;
726
+ amendment_number: import("zod").ZodOptional<import("zod").ZodString>;
727
+ accession_number: import("zod").ZodString;
728
+ filing_date: import("zod").ZodString;
729
+ event_date: import("zod").ZodOptional<import("zod").ZodString>;
730
+ security_class: import("zod").ZodOptional<import("zod").ZodString>;
731
+ cusips: import("zod").ZodArray<import("zod").ZodString>;
732
+ purpose_of_transaction: import("zod").ZodOptional<import("zod").ZodString>;
733
+ purpose_truncated: import("zod").ZodBoolean;
734
+ reporting_persons: import("zod").ZodArray<import("zod").ZodObject<{
735
+ name: import("zod").ZodString;
736
+ cik: import("zod").ZodOptional<import("zod").ZodString>;
737
+ citizenship: import("zod").ZodOptional<import("zod").ZodString>;
738
+ percent_of_class: import("zod").ZodOptional<import("zod").ZodNumber>;
739
+ aggregate_amount_owned: import("zod").ZodOptional<import("zod").ZodNumber>;
740
+ sole_voting_power: import("zod").ZodOptional<import("zod").ZodNumber>;
741
+ shared_voting_power: import("zod").ZodOptional<import("zod").ZodNumber>;
742
+ sole_dispositive_power: import("zod").ZodOptional<import("zod").ZodNumber>;
743
+ shared_dispositive_power: import("zod").ZodOptional<import("zod").ZodNumber>;
744
+ person_types: import("zod").ZodArray<import("zod").ZodString>;
745
+ excludes_certain_shares: import("zod").ZodOptional<import("zod").ZodBoolean>;
746
+ notes: import("zod").ZodOptional<import("zod").ZodString>;
747
+ }, import("zod/v4/core").$strip>>;
748
+ }, import("zod/v4/core").$strip>>;
749
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
750
+ name: import("zod").ZodString;
751
+ row_count: import("zod").ZodNumber;
752
+ expires_at: import("zod").ZodString;
753
+ truncated: import("zod").ZodBoolean;
754
+ }, import("zod/v4/core").$strip>>;
755
+ }, import("zod/v4/core").$strip>, readonly [{
756
+ readonly reason: "issuer_not_found";
757
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
758
+ readonly when: "The issuer input does not resolve to a known EDGAR company";
759
+ readonly recovery: "Use secedgar_company_search to find the issuer ticker or 10-digit CIK.";
760
+ }, {
761
+ readonly reason: "ambiguous_issuer";
762
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
763
+ readonly when: "The issuer name matches several EDGAR companies";
764
+ readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
765
+ }, {
766
+ readonly reason: "no_filings_found";
767
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
768
+ readonly when: "The issuer has no structured SCHEDULE 13D/13G filings matching the requested form kind";
769
+ readonly recovery: "Use secedgar_search_filings with forms [\"SC 13D\",\"SC 13G\"] to reach the pre-2024-12-18 text filings, then read them with secedgar_get_filing.";
770
+ }], {
771
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
772
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
773
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
774
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
775
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
776
+ concept: import("zod").ZodString;
777
+ period: import("zod").ZodString;
778
+ unit: import("zod").ZodDefault<import("zod").ZodEnum<{
779
+ USD: "USD";
780
+ "USD-per-shares": "USD-per-shares";
781
+ "USD/shares": "USD/shares";
782
+ pure: "pure";
783
+ shares: "shares";
784
+ }>>;
785
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
786
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
787
+ sort: import("zod").ZodDefault<import("zod").ZodEnum<{
788
+ asc: "asc";
789
+ desc: "desc";
790
+ }>>;
791
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
792
+ concept: import("zod").ZodString;
793
+ period: import("zod").ZodString;
794
+ unit: import("zod").ZodString;
795
+ label: import("zod").ZodString;
796
+ total_companies: import("zod").ZodNumber;
797
+ offset: import("zod").ZodNumber;
798
+ next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
799
+ data: import("zod").ZodArray<import("zod").ZodObject<{
800
+ rank: import("zod").ZodNumber;
801
+ company_name: import("zod").ZodString;
802
+ cik: import("zod").ZodString;
803
+ ticker: import("zod").ZodOptional<import("zod").ZodString>;
804
+ value: import("zod").ZodNumber;
805
+ location: import("zod").ZodOptional<import("zod").ZodString>;
806
+ period_end: import("zod").ZodString;
807
+ accession_number: import("zod").ZodString;
808
+ }, import("zod/v4/core").$strip>>;
809
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
810
+ name: import("zod").ZodString;
811
+ row_count: import("zod").ZodNumber;
812
+ expires_at: import("zod").ZodString;
813
+ }, import("zod/v4/core").$strip>>;
814
+ unqueried_tags: import("zod").ZodArray<import("zod").ZodString>;
815
+ related_tags: import("zod").ZodArray<import("zod").ZodObject<{
816
+ tag: import("zod").ZodString;
817
+ note: import("zod").ZodString;
818
+ }, import("zod/v4/core").$strip>>;
819
+ value_distribution: import("zod").ZodObject<{
820
+ median: import("zod").ZodNumber;
821
+ p95: import("zod").ZodNumber;
822
+ max: import("zod").ZodNumber;
823
+ max_to_p95_ratio: import("zod").ZodNumber;
824
+ }, import("zod/v4/core").$strip>;
825
+ period_end_range: import("zod").ZodObject<{
826
+ min: import("zod").ZodString;
827
+ max: import("zod").ZodString;
828
+ }, import("zod/v4/core").$strip>;
829
+ caveats: import("zod").ZodArray<import("zod").ZodString>;
830
+ }, import("zod/v4/core").$strip>, readonly [{
831
+ readonly reason: "unknown_concept";
832
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
833
+ readonly when: "The concept input does not match a friendly name and SEC frames returned no data";
834
+ readonly recovery: "Use a friendly name from secedgar_search_concepts or a valid raw XBRL tag.";
835
+ }, {
836
+ readonly reason: "no_data";
837
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
838
+ readonly when: "Concept resolves but no companies report this metric for the requested period and unit";
839
+ readonly recovery: "Check duration vs instant period, unit, and that the period exists post-CY2009.";
840
+ }], {
841
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
842
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
843
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
844
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
845
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
846
+ companies: import("zod").ZodArray<import("zod").ZodString>;
847
+ concepts: import("zod").ZodArray<import("zod").ZodString>;
848
+ taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
849
+ "ifrs-full": "ifrs-full";
850
+ "us-gaap": "us-gaap";
851
+ }>>;
852
+ period_type: import("zod").ZodDefault<import("zod").ZodEnum<{
853
+ annual: "annual";
854
+ quarterly: "quarterly";
855
+ }>>;
856
+ periods: import("zod").ZodDefault<import("zod").ZodNumber>;
857
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
858
+ period_type: import("zod").ZodString;
859
+ taxonomy: import("zod").ZodString;
860
+ periods: import("zod").ZodArray<import("zod").ZodString>;
861
+ companies: import("zod").ZodArray<import("zod").ZodObject<{
862
+ input: import("zod").ZodString;
863
+ cik: import("zod").ZodString;
864
+ name: import("zod").ZodString;
865
+ ticker: import("zod").ZodOptional<import("zod").ZodString>;
866
+ }, import("zod/v4/core").$strip>>;
867
+ failed_companies: import("zod").ZodArray<import("zod").ZodObject<{
868
+ input: import("zod").ZodString;
869
+ reason: import("zod").ZodEnum<{
870
+ ambiguous: "ambiguous";
871
+ no_company_facts: "no_company_facts";
872
+ not_found: "not_found";
873
+ }>;
874
+ message: import("zod").ZodString;
875
+ }, import("zod/v4/core").$strip>>;
876
+ concepts: import("zod").ZodArray<import("zod").ZodObject<{
877
+ concept: import("zod").ZodString;
878
+ label: import("zod").ZodString;
879
+ units: import("zod").ZodArray<import("zod").ZodString>;
880
+ }, import("zod/v4/core").$strip>>;
881
+ cells: import("zod").ZodArray<import("zod").ZodObject<{
882
+ cik: import("zod").ZodString;
883
+ company: import("zod").ZodString;
884
+ concept: import("zod").ZodString;
885
+ period: import("zod").ZodString;
886
+ value: import("zod").ZodNumber;
887
+ unit: import("zod").ZodString;
888
+ taxonomy: import("zod").ZodString;
889
+ tag: import("zod").ZodString;
890
+ frame: import("zod").ZodString;
891
+ period_end: import("zod").ZodString;
892
+ form: import("zod").ZodString;
893
+ accession_number: import("zod").ZodString;
894
+ }, import("zod/v4/core").$strip>>;
895
+ gaps: import("zod").ZodArray<import("zod").ZodObject<{
896
+ cik: import("zod").ZodString;
897
+ company: import("zod").ZodString;
898
+ concept: import("zod").ZodString;
899
+ tags_tried: import("zod").ZodArray<import("zod").ZodString>;
900
+ }, import("zod/v4/core").$strip>>;
901
+ caveats: import("zod").ZodArray<import("zod").ZodString>;
902
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
903
+ name: import("zod").ZodString;
904
+ row_count: import("zod").ZodNumber;
905
+ expires_at: import("zod").ZodString;
906
+ }, import("zod/v4/core").$strip>>;
907
+ }, import("zod/v4/core").$strip>, readonly [{
908
+ readonly reason: "no_companies_resolved";
909
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
910
+ readonly when: "None of the supplied company inputs resolved to a CIK";
911
+ readonly recovery: "Use ticker symbols or 10-digit CIK numbers for exact matches.";
912
+ }, {
913
+ readonly reason: "no_comparable_data";
914
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
915
+ readonly when: "Companies resolved but not one of them reports any of the requested concepts for the requested period type";
916
+ readonly recovery: "Switch period_type, or discover reported concept names with secedgar_search_concepts.";
917
+ }], {
918
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
919
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
920
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
921
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
922
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
923
+ search: import("zod").ZodOptional<import("zod").ZodString>;
924
+ group: import("zod").ZodOptional<import("zod").ZodEnum<{
925
+ balance_sheet: "balance_sheet";
926
+ cash_flow: "cash_flow";
927
+ entity_info: "entity_info";
928
+ income_statement: "income_statement";
929
+ per_share: "per_share";
930
+ }>>;
931
+ taxonomy: import("zod").ZodOptional<import("zod").ZodEnum<{
932
+ dei: "dei";
933
+ "ifrs-full": "ifrs-full";
934
+ "us-gaap": "us-gaap";
935
+ }>>;
936
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
937
+ total: import("zod").ZodNumber;
938
+ concepts: import("zod").ZodArray<import("zod").ZodObject<{
939
+ name: import("zod").ZodString;
940
+ label: import("zod").ZodString;
941
+ tags: import("zod").ZodArray<import("zod").ZodString>;
942
+ ifrs_tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
943
+ related_tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
944
+ tag: import("zod").ZodString;
945
+ note: import("zod").ZodString;
946
+ }, import("zod/v4/core").$strip>>>;
947
+ taxonomy: import("zod").ZodEnum<{
948
+ dei: "dei";
949
+ "ifrs-full": "ifrs-full";
950
+ "us-gaap": "us-gaap";
951
+ }>;
952
+ unit: import("zod").ZodString;
953
+ group: import("zod").ZodEnum<{
954
+ balance_sheet: "balance_sheet";
955
+ cash_flow: "cash_flow";
956
+ entity_info: "entity_info";
957
+ income_statement: "income_statement";
958
+ per_share: "per_share";
959
+ }>;
960
+ }, import("zod/v4/core").$strip>>;
961
+ }, import("zod/v4/core").$strip>, undefined, {
962
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
963
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
964
+ name: import("zod").ZodOptional<import("zod").ZodString>;
965
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
966
+ dataframes: import("zod").ZodArray<import("zod").ZodObject<{
967
+ name: import("zod").ZodString;
968
+ source_tool: import("zod").ZodString;
969
+ query_params: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
970
+ created_at: import("zod").ZodString;
971
+ expires_at: import("zod").ZodString;
972
+ row_count: import("zod").ZodNumber;
973
+ truncated: import("zod").ZodBoolean;
974
+ max_rows: import("zod").ZodOptional<import("zod").ZodNumber>;
975
+ column_schema: import("zod").ZodArray<import("zod").ZodObject<{
976
+ name: import("zod").ZodString;
977
+ type: import("zod").ZodString;
978
+ nullable: import("zod").ZodBoolean;
979
+ }, import("zod/v4/core").$strip>>;
980
+ }, import("zod/v4/core").$strip>>;
981
+ }, import("zod/v4/core").$strip>, readonly [{
982
+ readonly reason: "canvas_unavailable";
983
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
984
+ readonly when: "The DataCanvas service is not configured for this deployment";
985
+ readonly recovery: "Set CANVAS_PROVIDER_TYPE=duckdb in the server environment to enable dataframes.";
986
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
987
+ sql: import("zod").ZodString;
988
+ register_as: import("zod").ZodOptional<import("zod").ZodString>;
989
+ preview: import("zod").ZodOptional<import("zod").ZodNumber>;
990
+ row_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
991
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
992
+ columns: import("zod").ZodArray<import("zod").ZodString>;
993
+ row_count: import("zod").ZodNumber;
994
+ row_count_capped: import("zod").ZodBoolean;
995
+ rows: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
996
+ registered_as: import("zod").ZodOptional<import("zod").ZodString>;
997
+ expires_at: import("zod").ZodOptional<import("zod").ZodString>;
998
+ }, import("zod/v4/core").$strip>, readonly [{
999
+ readonly reason: "canvas_unavailable";
1000
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
1001
+ readonly when: "The DataCanvas service is not configured for this deployment";
1002
+ readonly recovery: "Set CANVAS_PROVIDER_TYPE=duckdb in the server environment to enable dataframes.";
1003
+ }, {
1004
+ readonly reason: "system_catalog_access";
1005
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1006
+ readonly when: "The SQL query references a denied DuckDB system catalog (information_schema, pg_catalog, sqlite_master, duckdb_*)";
1007
+ readonly recovery: "Query only df_<id> tables. Use secedgar_dataframe_describe to list available dataframes.";
1008
+ }, {
1009
+ readonly reason: "missing_table";
1010
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1011
+ readonly when: "The SQL query references a df_<id> table that does not exist or has expired";
1012
+ readonly recovery: "Use secedgar_dataframe_describe to list available dataframes and verify the table name.";
1013
+ }, {
1014
+ readonly reason: "invalid_sql";
1015
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1016
+ readonly when: "The SQL statement contains a syntax or execution error not covered by a more specific reason";
1017
+ readonly recovery: "Check SQL syntax, column names, and table references against secedgar_dataframe_describe.";
1018
+ }, {
1019
+ readonly reason: "register_as_clash";
1020
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1021
+ readonly when: "The register_as target name already exists on the canvas";
1022
+ readonly recovery: "Drop the existing dataframe with secedgar_dataframe_drop (when enabled), choose a different df_XXXXX_XXXXX name, or omit register_as.";
1023
+ }, {
1024
+ readonly reason: "non_select_statement";
1025
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1026
+ readonly when: "The SQL is a non-SELECT statement (DROP, INSERT, UPDATE, DDL, etc.) — only read-only SELECTs run against dataframes";
1027
+ readonly recovery: "Query only SELECT statements against df_<id> tables. Use secedgar_dataframe_describe to inspect available dataframes.";
1028
+ }], {
1029
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
1030
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
1031
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
1032
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
1033
+ }>)[];
1034
+ //# sourceMappingURL=index.d.ts.map