@cyanheads/secedgar-mcp-server 0.15.6 → 0.15.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/AGENTS.md +35 -23
  2. package/CLAUDE.md +35 -23
  3. package/README.md +112 -159
  4. package/changelog/0.15.x/0.15.7.md +36 -0
  5. package/changelog/0.15.x/0.15.8.md +29 -0
  6. package/changelog/template.md +7 -7
  7. package/dist/config/server-config.d.ts +1 -0
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +8 -1
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +5 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/resources/definitions/filing-types.resource.js +2 -2
  14. package/dist/mcp-server/resources/definitions/filing-types.resource.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts +8 -1
  16. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/company-search.tool.js +39 -34
  18. package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +7 -0
  20. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +8 -0
  22. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts +31 -2
  24. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js +53 -5
  26. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +7 -0
  28. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +8 -0
  30. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +7 -0
  32. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/find-holders.tool.js +9 -1
  34. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts +7 -0
  36. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js +9 -1
  38. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +7 -0
  40. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/definitions/get-filing.tool.js +24 -11
  42. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  43. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +7 -0
  44. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  45. package/dist/mcp-server/tools/definitions/get-financials.tool.js +10 -0
  46. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  47. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts +8 -1
  48. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts.map +1 -1
  49. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js +9 -1
  50. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js.map +1 -1
  51. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts +14 -4
  52. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
  53. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +167 -34
  54. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
  55. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +11 -4
  56. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  57. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +113 -55
  58. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  59. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +7 -0
  60. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -1
  61. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +47 -33
  62. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -1
  63. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +7 -0
  64. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  65. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +10 -0
  66. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  67. package/dist/mcp-server/tools/definitions/index.d.ts +141 -15
  68. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  69. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +14 -4
  70. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  71. package/dist/mcp-server/tools/definitions/search-filings.tool.js +49 -38
  72. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  73. package/dist/services/canvas-bridge/canvas-bridge.d.ts +4 -1
  74. package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
  75. package/dist/services/canvas-bridge/canvas-bridge.js +4 -1
  76. package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
  77. package/dist/services/edgar/edgar-api-service.d.ts +82 -51
  78. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  79. package/dist/services/edgar/edgar-api-service.js +332 -167
  80. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  81. package/dist/services/edgar/filing-headers.d.ts +37 -9
  82. package/dist/services/edgar/filing-headers.d.ts.map +1 -1
  83. package/dist/services/edgar/filing-headers.js +40 -11
  84. package/dist/services/edgar/filing-headers.js.map +1 -1
  85. package/dist/services/edgar/filing-to-text.d.ts.map +1 -1
  86. package/dist/services/edgar/filing-to-text.js +24 -2
  87. package/dist/services/edgar/filing-to-text.js.map +1 -1
  88. package/dist/services/edgar/mirror/tickers-sync.d.ts +4 -2
  89. package/dist/services/edgar/mirror/tickers-sync.d.ts.map +1 -1
  90. package/dist/services/edgar/mirror/tickers-sync.js +4 -2
  91. package/dist/services/edgar/mirror/tickers-sync.js.map +1 -1
  92. package/dist/services/edgar/mirror/types.d.ts +6 -2
  93. package/dist/services/edgar/mirror/types.d.ts.map +1 -1
  94. package/dist/services/edgar/ownership-parser.d.ts +16 -0
  95. package/dist/services/edgar/ownership-parser.d.ts.map +1 -1
  96. package/dist/services/edgar/ownership-parser.js +19 -0
  97. package/dist/services/edgar/ownership-parser.js.map +1 -1
  98. package/dist/services/edgar/submissions-archive.d.ts +78 -0
  99. package/dist/services/edgar/submissions-archive.d.ts.map +1 -0
  100. package/dist/services/edgar/submissions-archive.js +87 -0
  101. package/dist/services/edgar/submissions-archive.js.map +1 -0
  102. package/package.json +7 -7
  103. package/server.json +17 -3
@@ -8,6 +8,7 @@ import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
8
8
  import { dataframeGuidance, getCanvasBridge, toDatasetField, } from '../../../services/canvas-bridge/canvas-bridge.js';
9
9
  import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
10
10
  import { parseForm4Xml, } from '../../../services/edgar/ownership-parser.js';
11
+ import { SubmissionsArchiveWalk } from '../../../services/edgar/submissions-archive.js';
11
12
  /** Transaction type filter → SEC transaction codes. */
12
13
  const PURCHASE_CODES = new Set(['P']);
13
14
  const SALE_CODES = new Set(['S']);
@@ -19,6 +20,36 @@ const SALE_CODES = new Set(['S']);
19
20
  * is met — no extra latency.
20
21
  */
21
22
  const INSIDER_CANVAS_FILING_SCAN = 40;
23
+ /** Most Form 4 filings one call parses — one rate-limited document request each. */
24
+ const INSIDER_FILING_SCAN_CAP = 100;
25
+ /** Structured Form 4 XML became mandatory for filings on and after this date. */
26
+ const STRUCTURED_FORM4_START = '2003-06-30';
27
+ /**
28
+ * The Form 4 / 4-A rows of a submissions block filed inside the window, in block order
29
+ * (newest first). Only rows whose primary document is ownership XML — EDGAR's
30
+ * structured Form 4 began in mid-2003, and an earlier HTML or text filing has nothing
31
+ * this tool can parse, so fetching it would spend a request on an empty result.
32
+ */
33
+ function windowForm4Rows(block, inWindow) {
34
+ const rows = [];
35
+ for (let i = 0; i < block.form.length; i++) {
36
+ const form = block.form[i];
37
+ const filingDate = block.filingDate[i] ?? '';
38
+ const primaryDocument = block.primaryDocument[i] ?? '';
39
+ if ((form !== '4' && form !== '4/A') || !inWindow(filingDate))
40
+ continue;
41
+ if (!/\.xml$/i.test(primaryDocument))
42
+ continue;
43
+ rows.push({ accessionNumber: block.accessionNumber[i] ?? '', filingDate, primaryDocument });
44
+ }
45
+ return rows;
46
+ }
47
+ /** "between A and B" / "on or after A" / "on or before B" for notices. */
48
+ function describeWindow(filedAfter, filedBefore) {
49
+ if (filedAfter && filedBefore)
50
+ return `between ${filedAfter} and ${filedBefore}`;
51
+ return filedAfter ? `on or after ${filedAfter}` : `on or before ${filedBefore}`;
52
+ }
22
53
  function matchesFilter(tx, filter) {
23
54
  if (filter === 'all')
24
55
  return true;
@@ -44,27 +75,35 @@ function ownerRelationship(owner) {
44
75
  }
45
76
  export const getInsiderTransactionsTool = tool('secedgar_get_insider_transactions', {
46
77
  title: 'Get Insider Transactions',
47
- description: 'Fetch Form 4 insider transactions (purchases, sales, grants, exercises) for a company by parsing SEC EDGAR ownership XML. Returns the reporting person, their relationship to the issuer, transaction date, type, shares traded (absolute magnitude), direction (acquire/dispose), price per share, and shares owned after the transaction. Covers nonDerivative transactions (open-market buys/sells, gifts) and derivative transactions (option exercises, RSU vests). When a canvas is available, the full set of transactions parsed from the scanned recent filings is materialized as df_<id> (the inline list is a preview capped at limit) — inspect it with secedgar_dataframe_describe, then query it with secedgar_dataframe_query to aggregate net buy/sell by insider: SUM(CASE WHEN direction=\'dispose\' THEN -shares_traded ELSE shares_traded END). Use secedgar_search_filings with forms=["4"] for broader date-range queries or to search across all companies.',
78
+ description: 'Fetch Form 4 insider transactions (purchases, sales, grants, exercises) for a company by parsing SEC EDGAR ownership XML. Returns the reporting person, their relationship to the issuer, transaction date, type, shares traded (absolute magnitude), direction (acquire/dispose), price per share, and shares owned after the transaction. Covers nonDerivative transactions (open-market buys/sells, gifts) and derivative transactions (option exercises, RSU vests). Without a date window it reads the newest Form 4 filings; filed_after / filed_before read any period since mid-2003, reaching past the recent submissions window into the archive (e.g. insider trades in the quarter before an earnings miss). When a canvas is available, the full set of transactions parsed from the scanned filings is materialized as df_<id> (the inline list is a preview capped at limit) — inspect it with secedgar_dataframe_describe, then query it with secedgar_dataframe_query to aggregate net buy/sell by insider: SUM(CASE WHEN direction=\'dispose\' THEN -shares_traded ELSE shares_traded END). Use secedgar_search_filings with forms=["4"] to search Form 4 filings across all companies.',
48
79
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
49
80
  errors: [
50
81
  {
51
82
  reason: 'company_not_found',
52
83
  code: JsonRpcErrorCode.NotFound,
53
- when: 'The ticker or CIK does not resolve to a known company',
84
+ when: 'The company input does not resolve to a known company',
54
85
  recovery: 'Use secedgar_company_search to find the correct ticker or CIK.',
55
86
  },
56
87
  {
57
88
  reason: 'no_filings_found',
58
89
  code: JsonRpcErrorCode.NotFound,
59
- when: 'No Form 4 filings exist for this company in the recent submissions window',
60
- recovery: 'Use secedgar_search_filings with forms=["4"] for broader historical coverage.',
90
+ when: 'A call without a date window finds no Form 4 filings in the recent submissions window',
91
+ recovery: 'Pass filed_after / filed_before to read an older period, or use secedgar_search_filings with forms=["4"] to find the filings.',
92
+ },
93
+ {
94
+ reason: 'rate_limited',
95
+ code: JsonRpcErrorCode.RateLimited,
96
+ when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs",
97
+ recovery: 'Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.',
98
+ retryable: true,
99
+ thrownBy: 'service',
61
100
  },
62
101
  ],
63
102
  input: z.object({
64
- ticker_or_cik: z
103
+ company: z
65
104
  .string()
66
105
  .min(1)
67
- .describe('Company ticker symbol (e.g., "AAPL") or 10-digit CIK number (e.g., "0000320193"). The issuer, not the reporting person.'),
106
+ .describe('The issuer whose Form 4 filings to read — the company, not the reporting person. A ticker symbol (e.g., "AAPL"), a CIK with or without zero-padding (e.g., "320193" or "0000320193"), or a company name (current or former). A name matching several companies resolves to the top-ranked one — exact name first, then prefix, then substring — so pass a ticker or CIK when the issuer must be exact.'),
68
107
  transaction_type: z
69
108
  .enum(['purchase', 'sale', 'all'])
70
109
  .default('all')
@@ -76,7 +115,38 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
76
115
  .max(100)
77
116
  .default(20)
78
117
  .describe('Maximum number of transactions to return across all Form 4 filings fetched. Filings are scanned newest-first. Default 20.'),
118
+ filed_after: z
119
+ .union([
120
+ z.literal(''),
121
+ z
122
+ .string()
123
+ .regex(/^\d{4}-\d{2}-\d{2}$/, 'Expected YYYY-MM-DD')
124
+ .describe('YYYY-MM-DD'),
125
+ ])
126
+ .optional()
127
+ .describe('Only read Form 4 filings filed on or after this date (YYYY-MM-DD). A date window reaches filings older than the recent submissions window by paging into the archive, and with a canvas every Form 4 filed inside it is parsed, up to 100. Structured Form 4 XML begins in mid-2003, so an earlier window finds nothing.'),
128
+ filed_before: z
129
+ .union([
130
+ z.literal(''),
131
+ z
132
+ .string()
133
+ .regex(/^\d{4}-\d{2}-\d{2}$/, 'Expected YYYY-MM-DD')
134
+ .describe('YYYY-MM-DD'),
135
+ ])
136
+ .optional()
137
+ .describe('Only read Form 4 filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after. Without either bound the tool reads the newest Form 4 filings.'),
79
138
  }),
139
+ // Other tools' spellings of the company and filing-date parameters, and this tool's
140
+ // former company name (#115).
141
+ inputAliases: {
142
+ ticker: 'company',
143
+ cik: 'company',
144
+ ticker_or_cik: 'company',
145
+ start_date: 'filed_after',
146
+ date_from: 'filed_after',
147
+ end_date: 'filed_before',
148
+ date_to: 'filed_before',
149
+ },
80
150
  output: z.object({
81
151
  issuer_name: z.string().describe('Issuer entity name (SEC-conformed).'),
82
152
  issuer_cik: z.string().describe('Issuer CIK, zero-padded to 10 digits.'),
@@ -138,6 +208,10 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
138
208
  .describe('One insider transaction parsed from a Form 4 filing.'))
139
209
  .describe('Insider transactions, newest filing first. Preview capped at `limit` — the full scanned set lives on the canvas dataframe (see `dataset`).'),
140
210
  filings_scanned: z.number().describe('Number of Form 4 filings scanned to produce the result.'),
211
+ history_scanned_through: z
212
+ .string()
213
+ .optional()
214
+ .describe('Filing date of the oldest Form 4 parsed (YYYY-MM-DD). Present only when a date window was given; absent when the window held no Form 4 filing.'),
141
215
  dataset: z
142
216
  .object({
143
217
  name: z
@@ -147,7 +221,7 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
147
221
  expires_at: z.string().describe('ISO 8601 expiry timestamp.'),
148
222
  truncated: z
149
223
  .boolean()
150
- .describe('True when more recent Form 4 filings exist beyond the scanned window — the dataframe is a recent sample, not the issuer\'s full Form 4 history. Use secedgar_search_filings with forms=["4"] for exhaustive coverage.'),
224
+ .describe('True when Form 4 filings exist beyond those parsed — past the newest-filings sample, or, with a date window, inside the window beyond the 100-filing cap or past the 10 archive pages read. Narrow the window to reach the rest.'),
151
225
  })
152
226
  .optional()
153
227
  .describe('Canvas dataframe holding the full parsed transaction set from the scanned filings (the inline transactions[] is a preview capped at limit). Each row carries the issuer (issuer_cik, issuer_ticker) plus the transaction fields, so it aggregates net buy/sell by insider and joins across issuers. Query with secedgar_dataframe_query. Absent when canvas is unavailable or no transactions were parsed.'),
@@ -167,25 +241,32 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
167
241
  async handler(input, ctx) {
168
242
  const api = getEdgarApiService();
169
243
  // Resolve company to CIK
170
- const resolved = await api.resolveCik(input.ticker_or_cik);
244
+ const resolved = await api.resolveCik(input.company);
171
245
  const match = Array.isArray(resolved) ? resolved[0] : resolved;
172
246
  if (!match || (Array.isArray(resolved) && resolved.length === 0)) {
173
- throw ctx.fail('company_not_found', `Company '${input.ticker_or_cik}' not found.`, {
247
+ throw ctx.fail('company_not_found', `Company '${input.company}' not found.`, {
174
248
  ...ctx.recoveryFor('company_not_found'),
175
249
  });
176
250
  }
251
+ const filedAfter = input.filed_after || undefined;
252
+ const filedBefore = input.filed_before || undefined;
253
+ const dateWindow = filedAfter || filedBefore ? { filedAfter, filedBefore } : undefined;
177
254
  // With a canvas available, scan deeper than the inline `limit` so the dataframe
178
255
  // holds a useful window for aggregation; without one, stop as soon as the inline
179
- // limit is met (preserves the fast, low-fetch path).
256
+ // limit is met (preserves the fast, low-fetch path). A date window already bounds
257
+ // the set, so with a canvas every filing inside it is parsed, up to the cap (#127).
180
258
  const bridge = getCanvasBridge();
181
- const scanFloor = bridge ? INSIDER_CANVAS_FILING_SCAN : 0;
182
- // Fetch recent Form 4 filing metadata from the submissions API. Over-fetch by 5x
183
- // to account for multi-transaction filings and filter losses; with a canvas, also
184
- // fetch at least the scan floor so a small inline `limit` doesn't under-scan the
185
- // dataframe window (#63). Capped at 100; the +1 sentinel row (metadata only, one
186
- // submissions fetch regardless) detects Form 4 filings beyond the scan window so
259
+ const scanFloor = bridge
260
+ ? dateWindow
261
+ ? INSIDER_FILING_SCAN_CAP
262
+ : INSIDER_CANVAS_FILING_SCAN
263
+ : 0;
264
+ // Over-fetch Form 4 metadata by 5x to account for multi-transaction filings and
265
+ // filter losses; with a canvas, also fetch at least the scan floor so a small inline
266
+ // `limit` doesn't under-scan the dataframe window (#63). Capped at 100; the +1
267
+ // sentinel row (metadata only) detects Form 4 filings beyond the scan window so
187
268
  // `dataset.truncated` is truthful.
188
- const scanCap = Math.min(bridge ? Math.max(input.limit * 5, scanFloor) : input.limit * 5, 100);
269
+ const scanCap = Math.min(bridge ? Math.max(input.limit * 5, scanFloor) : input.limit * 5, INSIDER_FILING_SCAN_CAP);
189
270
  // Bare-CIK fallback: a numeric CIK absent from the ticker cache resolves to { cik }
190
271
  // with no name/ticker. The submissions feed 404s for such a CIK — it's a
191
272
  // filer/transmitter (e.g. an accession-number prefix), not a registrant. Convert
@@ -193,26 +274,58 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
193
274
  // A cache-hit or ticker-resolved match that 404s signals an EDGAR-side problem,
194
275
  // not a bad query — propagate unchanged, same reasoning as #55 and #76.
195
276
  const isBareCikFallback = !match.name && !match.ticker;
277
+ const readSubmissionsFeed = async (read) => {
278
+ try {
279
+ return await read;
280
+ }
281
+ catch (err) {
282
+ if (isBareCikFallback &&
283
+ err instanceof McpError &&
284
+ err.code === JsonRpcErrorCode.NotFound) {
285
+ ctx.log.debug('CIK has no submissions feed', { cik: match.cik });
286
+ throw ctx.fail('company_not_found', `No issuer found for CIK ${match.cik}. If this looks like an accession-number prefix, it's the filing agent, not the issuer — use secedgar_company_search to find the company.`, { ...ctx.recoveryFor('company_not_found') });
287
+ }
288
+ throw err;
289
+ }
290
+ };
196
291
  let filingBatch;
197
- try {
198
- filingBatch = await api.getRecentFilingsByForm(match.cik, ['4', '4/A'], scanCap + 1);
199
- }
200
- catch (err) {
201
- if (isBareCikFallback && err instanceof McpError && err.code === JsonRpcErrorCode.NotFound) {
202
- ctx.log.debug('CIK has no submissions feed', { cik: match.cik });
203
- throw ctx.fail('company_not_found', `No issuer found for CIK ${match.cik}. If this looks like an accession-number prefix, it's the filing agent, not the issuer — use secedgar_company_search to find the company.`, { ...ctx.recoveryFor('company_not_found') });
292
+ let walk;
293
+ if (dateWindow) {
294
+ // In-window Form 4 rows, newest first: the recent window, then the archive pages
295
+ // overlapping the window, read until the scan budget plus one sentinel row is in
296
+ // hand or the shared page cap ends the walk.
297
+ const submissions = await readSubmissionsFeed(api.getSubmissions(match.cik));
298
+ const inWindow = (date) => (!filedAfter || date >= filedAfter) && (!filedBefore || date <= filedBefore);
299
+ filingBatch = windowForm4Rows(submissions.filings.recent, inWindow);
300
+ walk = new SubmissionsArchiveWalk(api, submissions, {
301
+ filedAfter,
302
+ filedBefore,
303
+ order: 'newest-first',
304
+ });
305
+ if (filingBatch.length <= scanCap) {
306
+ for await (const { block } of walk) {
307
+ filingBatch.push(...windowForm4Rows(block, inWindow));
308
+ if (filingBatch.length > scanCap)
309
+ break;
310
+ }
204
311
  }
205
- throw err;
206
312
  }
207
- const moreBeyondWindow = filingBatch.length > scanCap;
208
- const filingsToScan = moreBeyondWindow ? filingBatch.slice(0, scanCap) : filingBatch;
209
- if (filingBatch.length === 0) {
210
- throw ctx.fail('no_filings_found', `No Form 4 filings found for '${input.ticker_or_cik}'.`, {
313
+ else {
314
+ filingBatch = await readSubmissionsFeed(api.getRecentFilingsByForm(match.cik, ['4', '4/A'], scanCap + 1));
315
+ }
316
+ // Form 4 filings exist past the scan: the sentinel row turned up, or — in a date
317
+ // window — archive pages overlapping it went unread.
318
+ const moreBeyondWindow = filingBatch.length > scanCap || Boolean(walk?.truncated);
319
+ const filingsToScan = filingBatch.slice(0, scanCap);
320
+ if (filingBatch.length === 0 && !dateWindow) {
321
+ throw ctx.fail('no_filings_found', `No Form 4 filings found for '${input.company}'.`, {
211
322
  ...ctx.recoveryFor('no_filings_found'),
212
323
  });
213
324
  }
214
325
  const transactions = [];
215
326
  let filingsScanned = 0;
327
+ /** Filing date of the last filing parsed — the oldest, since filings run newest first. */
328
+ let oldestParsed;
216
329
  let scannedWholeWindow = true;
217
330
  for (const filing of filingsToScan) {
218
331
  if (transactions.length >= input.limit && filingsScanned >= scanFloor) {
@@ -225,6 +338,7 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
225
338
  if (!xmlText)
226
339
  continue;
227
340
  filingsScanned++;
341
+ oldestParsed = filing.filingDate;
228
342
  let parsed;
229
343
  try {
230
344
  parsed = parseForm4Xml(xmlText);
@@ -269,11 +383,24 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
269
383
  });
270
384
  }
271
385
  }
272
- if (transactions.length === 0) {
386
+ const windowText = dateWindow && describeWindow(filedAfter, filedBefore);
387
+ if (windowText && filingBatch.length === 0) {
388
+ const walkNote = walk?.truncated
389
+ ? ` The archive scan stopped after ${walk.pagesRead} pages, at filings from ${walk.scannedThrough}; narrow the window to reach older ones.`
390
+ : '';
391
+ const eraNote = filedBefore && filedBefore < STRUCTURED_FORM4_START
392
+ ? ' Structured Form 4 filings begin in mid-2003, so an earlier window finds none.'
393
+ : '';
394
+ ctx.enrich.notice(`No Form 4 filings filed ${windowText} for '${input.company}'.${walkNote}${eraNote}`);
395
+ }
396
+ else if (transactions.length === 0) {
273
397
  const filterNote = input.transaction_type !== 'all'
274
398
  ? ` with transaction_type="${input.transaction_type}"`
275
399
  : '';
276
- ctx.enrich.notice(`No insider transactions found for '${input.ticker_or_cik}'${filterNote} in the ${filingsScanned} most recent Form 4 filings. ` +
400
+ const scope = windowText
401
+ ? `the ${filingsScanned} Form 4 filings filed ${windowText}`
402
+ : `the ${filingsScanned} most recent Form 4 filings`;
403
+ ctx.enrich.notice(`No insider transactions found for '${input.company}'${filterNote} in ${scope}. ` +
277
404
  `Try transaction_type="all" or use secedgar_search_filings with forms=["4"] for broader coverage.`);
278
405
  }
279
406
  // Use issuer data from the resolved entity (the submissions API may not always
@@ -311,9 +438,11 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
311
438
  })),
312
439
  sourceTool: 'secedgar_get_insider_transactions',
313
440
  queryParams: {
314
- ticker_or_cik: input.ticker_or_cik,
441
+ company: input.company,
315
442
  cik: match.cik,
316
443
  transaction_type: input.transaction_type,
444
+ filed_after: filedAfter,
445
+ filed_before: filedBefore,
317
446
  },
318
447
  truncated,
319
448
  });
@@ -340,11 +469,12 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
340
469
  datasetName: dataset?.name,
341
470
  });
342
471
  return {
343
- issuer_name: match.name ?? input.ticker_or_cik,
472
+ issuer_name: match.name ?? input.company,
344
473
  issuer_cik: match.cik,
345
474
  issuer_ticker: issuerTicker,
346
475
  transactions: inlineTransactions,
347
476
  filings_scanned: filingsScanned,
477
+ ...(dateWindow && { history_scanned_through: oldestParsed }),
348
478
  dataset,
349
479
  };
350
480
  },
@@ -382,9 +512,12 @@ export const getInsiderTransactionsTool = tool('secedgar_get_insider_transaction
382
512
  lines.push(`${txDate} | ${tx.security_title} | ${sharesStr} ${priceStr}${ownedStr}${ownershipStr}${periodStr}`);
383
513
  lines.push(`Code: ${tx.transaction_code} | Filed: ${tx.filing_date} [${tx.accession_number}]`);
384
514
  }
515
+ if (result.history_scanned_through) {
516
+ lines.push(`\nHistory scanned through: ${result.history_scanned_through}`);
517
+ }
385
518
  if (result.dataset) {
386
519
  const truncatedNote = result.dataset.truncated
387
- ? ' (truncated — more recent Form 4 filings exist beyond the scanned window)'
520
+ ? ' (truncated — more Form 4 filings exist beyond those scanned)'
388
521
  : '';
389
522
  lines.push(`\nDataset: ${result.dataset.name} (${result.dataset.row_count} rows, expires ${result.dataset.expires_at})${truncatedNote} — query with secedgar_dataframe_query.`);
390
523
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-insider-transactions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-insider-transactions.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-insider-transactions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-insider-transactions.tool.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @fileoverview Fetch 13F-HR quarterly institutional holdings by parsing the SEC EDGAR
3
- * information table XML. Institution lookup only — `ticker_or_cik` is the 13F filer.
3
+ * information table XML. Institution lookup only — `company` is the 13F filer.
4
4
  * The reverse direction (which institutions hold an issuer) is secedgar_find_holders,
5
5
  * which searches the information tables by CUSIP and returns filer CIKs to feed back
6
6
  * into this tool (#81).
@@ -9,7 +9,7 @@
9
9
  import { z } from '@cyanheads/mcp-ts-core';
10
10
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
11
11
  export declare const getInstitutionalHoldingsTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
12
- ticker_or_cik: z.ZodString;
12
+ company: z.ZodString;
13
13
  quarter: z.ZodOptional<z.ZodString>;
14
14
  limit: z.ZodDefault<z.ZodNumber>;
15
15
  offset: z.ZodDefault<z.ZodNumber>;
@@ -52,7 +52,7 @@ export declare const getInstitutionalHoldingsTool: import("@cyanheads/mcp-ts-cor
52
52
  }, z.core.$strip>, readonly [{
53
53
  readonly reason: "company_not_found";
54
54
  readonly code: JsonRpcErrorCode.NotFound;
55
- readonly when: "The ticker or CIK does not resolve to a known company or institution";
55
+ readonly when: "The company input does not resolve to a known company or institution";
56
56
  readonly recovery: "Use secedgar_company_search to find the correct CIK or full entity name.";
57
57
  }, {
58
58
  readonly reason: "ambiguous_entity";
@@ -62,13 +62,20 @@ export declare const getInstitutionalHoldingsTool: import("@cyanheads/mcp-ts-cor
62
62
  }, {
63
63
  readonly reason: "no_filings_found";
64
64
  readonly code: JsonRpcErrorCode.NotFound;
65
- readonly when: "No 13F-HR filings found for this entity in the recent submissions window";
65
+ readonly when: "No 13F-HR matches — the entity files none, none exists for the requested quarter in the recent submissions window or the archive pages searched, or the manager filed a 13F-NT notice instead (for the requested quarter, or as its only recent 13F filing when no quarter is given)";
66
66
  readonly recovery: "Use secedgar_search_filings with forms=[\"13F-HR\"] for broader search, or check that the entity is an institutional investment manager.";
67
67
  }, {
68
68
  readonly reason: "no_info_table";
69
69
  readonly code: JsonRpcErrorCode.NotFound;
70
70
  readonly when: "The 13F-HR filing was found but the information table XML document could not be located";
71
71
  readonly recovery: "Use secedgar_get_filing with the accession number to inspect the filing documents directly.";
72
+ }, {
73
+ readonly reason: "rate_limited";
74
+ readonly code: JsonRpcErrorCode.RateLimited;
75
+ readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
76
+ readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
77
+ readonly retryable: true;
78
+ readonly thrownBy: "service";
72
79
  }], {
73
80
  readonly notice: z.ZodOptional<z.ZodString>;
74
81
  readonly truncated: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"get-institutional-holdings.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-institutional-holdings.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,+BAA+B,CAAC;AAyI5F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8iBvC,CAAC"}
1
+ {"version":3,"file":"get-institutional-holdings.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-institutional-holdings.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,+BAA+B,CAAC;AAoJ5F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+lBvC,CAAC"}