@cyanheads/secedgar-mcp-server 0.12.5 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +34 -5
  2. package/dist/index.js +5 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +89 -0
  5. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -0
  6. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +442 -0
  7. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -0
  8. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +1 -24
  10. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  11. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +1 -0
  12. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/get-financials.tool.js +36 -56
  14. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +81 -0
  16. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -0
  17. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +254 -0
  18. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -0
  19. package/dist/services/edgar/concept-map.d.ts +21 -1
  20. package/dist/services/edgar/concept-map.d.ts.map +1 -1
  21. package/dist/services/edgar/concept-map.js +16 -0
  22. package/dist/services/edgar/concept-map.js.map +1 -1
  23. package/dist/services/edgar/concept-series.d.ts +65 -0
  24. package/dist/services/edgar/concept-series.d.ts.map +1 -0
  25. package/dist/services/edgar/concept-series.js +91 -0
  26. package/dist/services/edgar/concept-series.js.map +1 -0
  27. package/dist/services/edgar/edgar-api-service.d.ts +8 -6
  28. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  29. package/dist/services/edgar/edgar-api-service.js +7 -3
  30. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  31. package/dist/services/edgar/fiscal-periods.d.ts +37 -0
  32. package/dist/services/edgar/fiscal-periods.d.ts.map +1 -0
  33. package/dist/services/edgar/fiscal-periods.js +106 -0
  34. package/dist/services/edgar/fiscal-periods.js.map +1 -0
  35. package/dist/services/edgar/mirror/companyfacts-sync.d.ts +7 -10
  36. package/dist/services/edgar/mirror/companyfacts-sync.d.ts.map +1 -1
  37. package/dist/services/edgar/mirror/companyfacts-sync.js.map +1 -1
  38. package/dist/services/edgar/mirror/edgar-mirror.d.ts +10 -1
  39. package/dist/services/edgar/mirror/edgar-mirror.d.ts.map +1 -1
  40. package/dist/services/edgar/mirror/edgar-mirror.js +35 -1
  41. package/dist/services/edgar/mirror/edgar-mirror.js.map +1 -1
  42. package/dist/services/edgar/types.d.ts +20 -0
  43. package/dist/services/edgar/types.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/server.json +3 -3
@@ -6,8 +6,10 @@
6
6
  import { tool, z } from '@cyanheads/mcp-ts-core';
7
7
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
8
8
  import { getCanvasBridge, toDatasetField } from '../../../services/canvas-bridge/canvas-bridge.js';
9
- import { resolveConcept } from '../../../services/edgar/concept-map.js';
9
+ import { resolveConceptTarget } from '../../../services/edgar/concept-map.js';
10
+ import { matchesPeriodType, resolveFrameSeries, } from '../../../services/edgar/concept-series.js';
10
11
  import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
12
+ import { missingQuarterCaveats } from '../../../services/edgar/fiscal-periods.js';
11
13
  export const getFinancialsTool = tool('secedgar_get_financials', {
12
14
  description: 'Get historical XBRL financial data for a company. Accepts friendly concept names (e.g., "revenue", "net_income", "assets") or raw XBRL tags. Discover available friendly names with secedgar_search_concepts. Handles historical tag changes and deduplicates data automatically.',
13
15
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
@@ -123,6 +125,10 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
123
125
  })
124
126
  .optional()
125
127
  .describe('Canvas dataframe handle holding the same time series. Use for cross-company JOINs via secedgar_dataframe_query. The source-filing fiscal keys are materialized as source_filing_fy/source_filing_fp — order, group, and window by period_end, not by those columns. Absent when canvas is unavailable.'),
128
+ caveats: z
129
+ .array(z.string())
130
+ .optional()
131
+ .describe("Data-completeness warnings about the returned series. Populated on quarterly results when one calendar quarter is absent from every recent fully-reported year — SEC reports a filer's fiscal Q4 as the 10-K residual rather than a discrete quarterly fact, so the calendar quarter that fiscal Q4 spans has no frame-tagged value. Applies to calendar-year filers (no discrete Q4) as much as to off-calendar ones. Absent when the series has nothing to flag."),
126
132
  }),
127
133
  async handler(input, ctx) {
128
134
  const api = getEdgarApiService();
@@ -157,22 +163,10 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
157
163
  ...ctx.recoveryFor('company_not_found'),
158
164
  });
159
165
  }
160
- // Resolve concept to XBRL tag(s)
161
- const mapping = resolveConcept(input.concept);
162
- // When the user overrides the default taxonomy, honor their choice;
163
- // otherwise fall back to the mapping's preferred taxonomy (e.g. `dei` for shares_outstanding).
164
- let taxonomy = input.taxonomy;
165
- if (mapping && input.taxonomy === 'us-gaap') {
166
- taxonomy = mapping.taxonomy;
167
- }
168
- // Use IFRS-specific tags when the effective taxonomy is ifrs-full and the mapping
169
- // has confirmed IFRS variants; fall back to the standard tags otherwise.
170
- const tags = mapping
171
- ? taxonomy === 'ifrs-full' && mapping.ifrsTags?.length
172
- ? mapping.ifrsTags
173
- : mapping.tags
174
- : [input.concept];
175
- const label = mapping?.label ?? input.concept;
166
+ // Resolve concept to taxonomy + XBRL tag(s). The mapping's own taxonomy wins
167
+ // over the `us-gaap` default (e.g. `dei` for shares_outstanding); ifrs-full
168
+ // uses the confirmed IFRS variants when the mapping has them.
169
+ const { label, tags, taxonomy, unit: mappedUnit, } = resolveConceptTarget(input.concept, input.taxonomy);
176
170
  // Default to "annual" for unset period_type; post-fetch fallback handles instant concepts (#48).
177
171
  const effectivePeriodType = input.period_type ?? 'annual';
178
172
  // Try each tag until we get data. `tryGetCompanyConcept` returns null for 404
@@ -184,7 +178,7 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
184
178
  * resolve collisions by tag priority (#44). Index 0 = preferred total.
185
179
  */
186
180
  const allUnits = [];
187
- for (const [tagIdx, tag] of tags.entries()) {
181
+ for (const [tagIndex, tag] of tags.entries()) {
188
182
  tagsTried.push(tag);
189
183
  const resp = await api.tryGetCompanyConcept(match.cik, taxonomy, tag);
190
184
  if (!resp)
@@ -199,7 +193,7 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
199
193
  }
200
194
  for (const units of Object.values(resp.units)) {
201
195
  for (const u of units) {
202
- allUnits.push({ ...u, _tagIdx: tagIdx });
196
+ allUnits.push({ ...u, tagIndex });
203
197
  }
204
198
  }
205
199
  }
@@ -239,50 +233,22 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
239
233
  available_namespaces: availableNamespaces.length > 0 ? availableNamespaces : undefined,
240
234
  });
241
235
  }
242
- // Deduplicate: keep only entries with frame field (one per standard calendar period)
243
- const deduped = allUnits.filter((u) => !!u.frame);
244
- // If deduplication removed everything, the concept exists but has no frame-aligned entries
245
- if (deduped.length === 0) {
236
+ /**
237
+ * Collapse to one value per standard calendar period — frame-bearing entries
238
+ * only, same-frame collisions resolved by tag priority then latest `filed`
239
+ * (#44). An empty map means the concept exists but has no frame-aligned entries.
240
+ */
241
+ const byFrameClean = resolveFrameSeries(allUnits);
242
+ if (byFrameClean.size === 0) {
246
243
  throw ctx.fail('no_frame_data', `'${conceptResponse.tag}' exists for this company but has no standard-period data.`, {
247
244
  ...ctx.recoveryFor('no_frame_data'),
248
245
  tag: conceptResponse.tag,
249
246
  });
250
247
  }
251
- /**
252
- * Remove duplicates by frame value using tag-priority-aware selection (#44).
253
- *
254
- * When two facts share a frame, the one with the lower `_tagIdx` wins
255
- * (index 0 = preferred total, e.g. IFRS `Revenue` > `RevenueFromContractsWithCustomers`).
256
- * Ties within the same tag index are broken by latest `filed` to preserve
257
- * restatement handling (amended filing replaces the original).
258
- */
259
- const byFrame = new Map();
260
- for (const unit of deduped) {
261
- const existing = byFrame.get(unit.frame);
262
- if (!existing) {
263
- byFrame.set(unit.frame, unit);
264
- }
265
- else if (unit._tagIdx < existing._tagIdx ||
266
- (unit._tagIdx === existing._tagIdx && unit.filed > existing.filed)) {
267
- byFrame.set(unit.frame, unit);
268
- }
269
- }
270
- // Strip the internal _tagIdx from results before further use
271
- const byFrameClean = new Map();
272
- for (const [k, v] of byFrame) {
273
- const { _tagIdx: _, ...rest } = v;
274
- byFrameClean.set(k, rest);
275
- }
276
248
  // Filter by period type using frame pattern (fp reflects the filing, not the data point)
277
249
  // resolvedPeriodType tracks the actual period type after the instant fallback (#48).
278
250
  let resolvedPeriodType = effectivePeriodType;
279
- let filtered = Array.from(byFrameClean.values());
280
- if (effectivePeriodType === 'annual') {
281
- filtered = filtered.filter((u) => /^CY\d{4}$/.test(u.frame));
282
- }
283
- else if (effectivePeriodType === 'quarterly') {
284
- filtered = filtered.filter((u) => /^CY\d{4}Q\d/.test(u.frame));
285
- }
251
+ let filtered = Array.from(byFrameClean.values()).filter((u) => matchesPeriodType(u.frame, effectivePeriodType));
286
252
  // If period_type filter removed everything, check for instant-concept fallback (#48)
287
253
  if (filtered.length === 0 && byFrameClean.size > 0) {
288
254
  const sample = byFrameClean.values().next().value;
@@ -312,8 +278,18 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
312
278
  }
313
279
  // Sort newest first
314
280
  filtered.sort((a, b) => b.end.localeCompare(a.end));
281
+ /**
282
+ * Off-calendar filers lose a whole calendar quarter from the frame-tagged
283
+ * series — SEC reports fiscal Q4 as the 10-K residual, never as a discrete
284
+ * quarterly fact — so a caller sees a gap with no way to tell "did not
285
+ * report" from "frame tagging does not expose it". `fetch_frames` already
286
+ * flags the same hazard from the period side; this names the specific
287
+ * quarter for this filer (#95). Detection reads the resolved frames, so it
288
+ * runs over the full deduped set rather than the period-filtered slice.
289
+ */
290
+ const caveats = resolvedPeriodType === 'annual' ? [] : missingQuarterCaveats(byFrameClean.keys());
315
291
  // Determine unit string
316
- const unitKey = Object.keys(conceptResponse.units)[0] ?? mapping?.unit ?? 'USD';
292
+ const unitKey = Object.keys(conceptResponse.units)[0] ?? mappedUnit ?? 'USD';
317
293
  const data = filtered.map((u) => ({
318
294
  period: u.frame,
319
295
  value: u.val,
@@ -383,6 +359,7 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
383
359
  data: inlineData,
384
360
  tags_tried: tagsTried.length > 1 ? tagsTried : undefined,
385
361
  dataset,
362
+ caveats: caveats.length > 0 ? caveats : undefined,
386
363
  };
387
364
  },
388
365
  format: (result) => {
@@ -415,6 +392,9 @@ export const getFinancialsTool = tool('secedgar_get_financials', {
415
392
  : '';
416
393
  lines.push(`\nDataset: ${result.dataset.name} (${result.dataset.row_count} rows, expires ${result.dataset.expires_at})${sliceNote} — query with secedgar_dataframe_query.`);
417
394
  }
395
+ for (const caveat of result.caveats ?? []) {
396
+ lines.push(`\nCaveat: ${caveat}`);
397
+ }
418
398
  return [{ type: 'text', text: lines.join('\n') }];
419
399
  },
420
400
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-financials.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-financials.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-financials.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-financials.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @fileoverview One-call financial profile for a company. Reads the filer's
3
+ * whole XBRL fact set once and resolves every mapped friendly concept against
4
+ * it, instead of one upstream request per concept. Values come from the same
5
+ * frame dedup and tag priority `secedgar_get_financials` uses, so the two agree
6
+ * for any concept they both report.
7
+ * @module mcp-server/tools/definitions/get-snapshot
8
+ */
9
+ import { z } from '@cyanheads/mcp-ts-core';
10
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
11
+ export declare const getSnapshotTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
12
+ company: z.ZodString;
13
+ taxonomy: z.ZodDefault<z.ZodEnum<{
14
+ "ifrs-full": "ifrs-full";
15
+ "us-gaap": "us-gaap";
16
+ }>>;
17
+ period_type: z.ZodDefault<z.ZodEnum<{
18
+ annual: "annual";
19
+ both: "both";
20
+ quarterly: "quarterly";
21
+ }>>;
22
+ }, z.core.$strip>, z.ZodObject<{
23
+ company: z.ZodString;
24
+ cik: z.ZodString;
25
+ taxonomy: z.ZodString;
26
+ period_type: z.ZodString;
27
+ concepts_resolved: z.ZodNumber;
28
+ concepts_total: z.ZodNumber;
29
+ lines: z.ZodArray<z.ZodObject<{
30
+ concept: z.ZodString;
31
+ label: z.ZodString;
32
+ group: z.ZodString;
33
+ taxonomy: z.ZodString;
34
+ tag: z.ZodString;
35
+ unit: z.ZodString;
36
+ annual: z.ZodOptional<z.ZodObject<{
37
+ period: z.ZodString;
38
+ value: z.ZodNumber;
39
+ period_end: z.ZodString;
40
+ form: z.ZodString;
41
+ accession_number: z.ZodString;
42
+ }, z.core.$strip>>;
43
+ quarterly: z.ZodOptional<z.ZodObject<{
44
+ period: z.ZodString;
45
+ value: z.ZodNumber;
46
+ period_end: z.ZodString;
47
+ form: z.ZodString;
48
+ accession_number: z.ZodString;
49
+ }, z.core.$strip>>;
50
+ instant: z.ZodOptional<z.ZodObject<{
51
+ period: z.ZodString;
52
+ value: z.ZodNumber;
53
+ period_end: z.ZodString;
54
+ form: z.ZodString;
55
+ accession_number: z.ZodString;
56
+ }, z.core.$strip>>;
57
+ }, z.core.$strip>>;
58
+ gaps: z.ZodArray<z.ZodObject<{
59
+ concept: z.ZodString;
60
+ label: z.ZodString;
61
+ group: z.ZodString;
62
+ tags_tried: z.ZodArray<z.ZodString>;
63
+ }, z.core.$strip>>;
64
+ caveats: z.ZodArray<z.ZodString>;
65
+ }, z.core.$strip>, readonly [{
66
+ readonly reason: "company_not_found";
67
+ readonly code: JsonRpcErrorCode.NotFound;
68
+ readonly when: "The company input does not resolve to a CIK";
69
+ readonly recovery: "Use a ticker symbol or 10-digit CIK number for an exact match.";
70
+ }, {
71
+ readonly reason: "ambiguous_company";
72
+ readonly code: JsonRpcErrorCode.ValidationError;
73
+ readonly when: "The company input resolves to multiple entities and the target is ambiguous";
74
+ readonly recovery: "Use a ticker symbol or 10-digit CIK from the matches list for an exact match.";
75
+ }, {
76
+ readonly reason: "no_company_facts";
77
+ readonly code: JsonRpcErrorCode.NotFound;
78
+ readonly when: "The filer has no XBRL facts at all — pre-XBRL, foreign private issuer, or a non-operating registrant";
79
+ readonly recovery: "Check the filer files XBRL financial statements, or read the filings directly with secedgar_search_filings.";
80
+ }], undefined>;
81
+ //# sourceMappingURL=get-snapshot.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-snapshot.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-snapshot.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwCjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuQ1B,CAAC"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * @fileoverview One-call financial profile for a company. Reads the filer's
3
+ * whole XBRL fact set once and resolves every mapped friendly concept against
4
+ * it, instead of one upstream request per concept. Values come from the same
5
+ * frame dedup and tag priority `secedgar_get_financials` uses, so the two agree
6
+ * for any concept they both report.
7
+ * @module mcp-server/tools/definitions/get-snapshot
8
+ */
9
+ import { tool, z } from '@cyanheads/mcp-ts-core';
10
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
11
+ import { listConcepts, resolveConceptTarget } from '../../../services/edgar/concept-map.js';
12
+ import { seriesFromCompanyFacts } from '../../../services/edgar/concept-series.js';
13
+ import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
14
+ import { missingQuarterCaveats } from '../../../services/edgar/fiscal-periods.js';
15
+ /** Full-year duration frame — `CY2024`. */
16
+ const ANNUAL = /^CY\d{4}$/;
17
+ /** Single-quarter duration frame — `CY2024Q2`. Excludes instants. */
18
+ const QUARTER = /^CY\d{4}Q[1-4]$/;
19
+ /** Point-in-time frame — `CY2024Q2I`. Balance-sheet and entity-info concepts. */
20
+ const INSTANT = /^CY\d{4}Q[1-4]I$/;
21
+ /** One reported value, trimmed to what a profile line needs. */
22
+ const pointSchema = z
23
+ .object({
24
+ period: z.string().describe('Calendar period label (e.g. "CY2024", "CY2025Q2", "CY2025Q2I").'),
25
+ value: z.number().describe("Reported value, in the line's unit."),
26
+ period_end: z.string().describe('Period end date (YYYY-MM-DD).'),
27
+ form: z.string().describe('Source filing type (10-K, 10-Q, 20-F).'),
28
+ accession_number: z
29
+ .string()
30
+ .describe('Source filing accession number — pass to secedgar_get_filing.'),
31
+ })
32
+ .describe('One reported value with its period and source filing.');
33
+ /** Most recent value whose frame matches `pattern`, or undefined when none does. */
34
+ function latest(series, pattern) {
35
+ const hit = series.find((u) => pattern.test(u.frame));
36
+ return hit
37
+ ? {
38
+ period: hit.frame,
39
+ value: hit.val,
40
+ period_end: hit.end,
41
+ form: hit.form,
42
+ accession_number: hit.accn,
43
+ }
44
+ : undefined;
45
+ }
46
+ export const getSnapshotTool = tool('secedgar_get_snapshot', {
47
+ description: 'Build a company financial profile in one call: the latest value of every supported XBRL concept, grouped by statement. Reads the filer\'s complete companyfacts payload once rather than one request per concept, so it replaces a run of secedgar_get_financials calls when the question is "what do this company\'s financials look like right now". Values use the same frame dedup and tag priority as secedgar_get_financials, so the two agree for any concept they both cover. Duration concepts (income statement, cash flow, per-share) report their latest full year and latest single quarter; balance-sheet and entity-info concepts report their latest point-in-time value, since that is the only form they are filed in. A concept the filer does not report is listed under gaps with the XBRL tags that were tried — never zero-filled or interpolated. Use secedgar_get_financials for a full time series of one concept, and secedgar_compare_companies to put several companies side by side.',
48
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
49
+ errors: [
50
+ {
51
+ reason: 'company_not_found',
52
+ code: JsonRpcErrorCode.NotFound,
53
+ when: 'The company input does not resolve to a CIK',
54
+ recovery: 'Use a ticker symbol or 10-digit CIK number for an exact match.',
55
+ },
56
+ {
57
+ reason: 'ambiguous_company',
58
+ code: JsonRpcErrorCode.ValidationError,
59
+ when: 'The company input resolves to multiple entities and the target is ambiguous',
60
+ recovery: 'Use a ticker symbol or 10-digit CIK from the matches list for an exact match.',
61
+ },
62
+ {
63
+ reason: 'no_company_facts',
64
+ code: JsonRpcErrorCode.NotFound,
65
+ when: 'The filer has no XBRL facts at all — pre-XBRL, foreign private issuer, or a non-operating registrant',
66
+ recovery: 'Check the filer files XBRL financial statements, or read the filings directly with secedgar_search_filings.',
67
+ },
68
+ ],
69
+ input: z.object({
70
+ company: z
71
+ .string()
72
+ .min(1)
73
+ .describe('Ticker symbol (e.g. "AAPL") or CIK number. Ticker is preferred.'),
74
+ taxonomy: z
75
+ .enum(['us-gaap', 'ifrs-full'])
76
+ .default('us-gaap')
77
+ .describe('XBRL taxonomy to resolve concepts under. Every concept is looked up in this one taxonomy, so ifrs-full covers only the concepts with confirmed IFRS tag variants and the rest — including the dei entity-info concepts — come back under gaps. Leave at us-gaap for domestic filers, where each concept uses its own preferred taxonomy.'),
78
+ period_type: z
79
+ .enum(['annual', 'quarterly', 'both'])
80
+ .default('both')
81
+ .describe('Which duration periods to report per concept: the latest full year, the latest single quarter, or both (default). Balance-sheet and entity-info concepts are point-in-time and always report their latest instant value regardless of this setting.'),
82
+ }),
83
+ output: z.object({
84
+ company: z.string().describe('Resolved entity name (SEC-conformed).'),
85
+ cik: z.string().describe('Resolved CIK, zero-padded to 10 digits.'),
86
+ taxonomy: z.string().describe('Taxonomy the concepts were resolved under, echoed from input.'),
87
+ period_type: z.string().describe('Duration periods reported, echoed from input.'),
88
+ concepts_resolved: z.number().describe('Concepts that produced at least one value.'),
89
+ concepts_total: z.number().describe('Concepts in the supported catalog that were attempted.'),
90
+ lines: z
91
+ .array(z
92
+ .object({
93
+ concept: z.string().describe('Friendly concept name (e.g. "revenue").'),
94
+ label: z.string().describe('Human-readable concept label.'),
95
+ group: z
96
+ .string()
97
+ .describe('Statement group: income_statement, balance_sheet, cash_flow, per_share, or entity_info.'),
98
+ taxonomy: z.string().describe('Taxonomy the value was read from.'),
99
+ tag: z.string().describe('XBRL tag that produced the value.'),
100
+ unit: z.string().describe('Unit of measure (e.g. "USD", "USD/shares", "shares").'),
101
+ annual: pointSchema
102
+ .optional()
103
+ .describe('Latest full-year (CY####) value. Absent for point-in-time concepts and when period_type excludes it.'),
104
+ quarterly: pointSchema
105
+ .optional()
106
+ .describe('Latest single-quarter (CY####Q#) value. Absent for point-in-time concepts and when period_type excludes it.'),
107
+ instant: pointSchema
108
+ .optional()
109
+ .describe('Latest point-in-time (CY####Q#I) value. Present for balance-sheet and entity-info concepts.'),
110
+ })
111
+ .describe('One resolved concept with its latest value per period kind.'))
112
+ .describe('Resolved concepts, ordered by statement group then concept name.'),
113
+ gaps: z
114
+ .array(z
115
+ .object({
116
+ concept: z.string().describe('Friendly concept name that produced no value.'),
117
+ label: z.string().describe('Human-readable concept label.'),
118
+ group: z.string().describe('Statement group the concept belongs to.'),
119
+ tags_tried: z
120
+ .array(z.string())
121
+ .describe('XBRL tags attempted, in priority order, before giving up.'),
122
+ })
123
+ .describe('One concept the filer does not report, with the tags that were tried.'))
124
+ .describe('Concepts with no value for this filer. Deliberately explicit — a missing concept is never zero-filled or interpolated.'),
125
+ caveats: z
126
+ .array(z.string())
127
+ .describe("Data-completeness warnings about the quarterly values. Populated when one calendar quarter is absent from every recent fully-reported year, because SEC reports a filer's fiscal Q4 as the 10-K residual rather than a discrete quarterly fact — this applies to calendar-year filers (no discrete Q4) as much as to off-calendar ones. Empty when nothing needs flagging."),
128
+ }),
129
+ async handler(input, ctx) {
130
+ const api = getEdgarApiService();
131
+ const resolved = await api.resolveCik(input.company);
132
+ if (Array.isArray(resolved) && resolved.length === 0) {
133
+ throw ctx.fail('company_not_found', `Company '${input.company}' not found.`, {
134
+ ...ctx.recoveryFor('company_not_found'),
135
+ });
136
+ }
137
+ if (Array.isArray(resolved) && resolved.length > 1) {
138
+ const shown = resolved.slice(0, 10);
139
+ const list = shown
140
+ .map((m) => `${m.cik} ${m.name ?? 'Unknown'}${m.ticker ? ` (${m.ticker})` : ''}`)
141
+ .join(', ');
142
+ throw ctx.fail('ambiguous_company', `'${input.company}' matches multiple companies: ${list}. Retry with one of these tickers or 10-digit CIKs.`, {
143
+ ...ctx.recoveryFor('ambiguous_company'),
144
+ matches: shown.map((m) => ({ cik: m.cik, name: m.name, ticker: m.ticker })),
145
+ });
146
+ }
147
+ const match = Array.isArray(resolved) ? resolved[0] : resolved;
148
+ if (!match) {
149
+ throw ctx.fail('company_not_found', `Company '${input.company}' not found.`, {
150
+ ...ctx.recoveryFor('company_not_found'),
151
+ });
152
+ }
153
+ const facts = await api.tryGetCompanyFacts(match.cik);
154
+ if (!facts || Object.keys(facts.facts).length === 0) {
155
+ throw ctx.fail('no_company_facts', `No XBRL facts on file for CIK ${match.cik}.`, {
156
+ ...ctx.recoveryFor('no_company_facts'),
157
+ cik: match.cik,
158
+ });
159
+ }
160
+ const wantAnnual = input.period_type !== 'quarterly';
161
+ const wantQuarterly = input.period_type !== 'annual';
162
+ const lines = [];
163
+ const gaps = [];
164
+ const quarterFrames = [];
165
+ for (const entry of listConcepts()) {
166
+ const target = resolveConceptTarget(entry.name, input.taxonomy);
167
+ const series = seriesFromCompanyFacts(facts, target.taxonomy, target.tags);
168
+ if (!series) {
169
+ gaps.push({
170
+ concept: entry.name,
171
+ label: target.label,
172
+ group: entry.group,
173
+ tags_tried: target.tags,
174
+ });
175
+ continue;
176
+ }
177
+ const annual = wantAnnual ? latest(series.series, ANNUAL) : undefined;
178
+ const quarterly = wantQuarterly ? latest(series.series, QUARTER) : undefined;
179
+ const instant = latest(series.series, INSTANT);
180
+ if (!annual && !quarterly && !instant) {
181
+ gaps.push({
182
+ concept: entry.name,
183
+ label: target.label,
184
+ group: entry.group,
185
+ tags_tried: series.tagsTried,
186
+ });
187
+ continue;
188
+ }
189
+ for (const unit of series.series) {
190
+ if (QUARTER.test(unit.frame))
191
+ quarterFrames.push(unit.frame);
192
+ }
193
+ lines.push({
194
+ concept: entry.name,
195
+ label: series.label || target.label,
196
+ group: entry.group,
197
+ taxonomy: series.taxonomy,
198
+ tag: series.tag,
199
+ unit: series.unit || target.unit || '',
200
+ ...(annual ? { annual } : {}),
201
+ ...(quarterly ? { quarterly } : {}),
202
+ ...(instant ? { instant } : {}),
203
+ });
204
+ }
205
+ const caveats = wantQuarterly ? missingQuarterCaveats(quarterFrames) : [];
206
+ ctx.log.info('Snapshot built', {
207
+ company: match.cik,
208
+ resolved: lines.length,
209
+ gaps: gaps.length,
210
+ });
211
+ return {
212
+ company: match.name || input.company,
213
+ cik: match.cik,
214
+ taxonomy: input.taxonomy,
215
+ period_type: input.period_type,
216
+ concepts_resolved: lines.length,
217
+ concepts_total: lines.length + gaps.length,
218
+ lines,
219
+ gaps,
220
+ caveats,
221
+ };
222
+ },
223
+ format: (result) => {
224
+ const out = [
225
+ `**Financial snapshot** — ${result.company} (CIK ${result.cik}, ${result.taxonomy}, periods: ${result.period_type})`,
226
+ `${result.concepts_resolved} of ${result.concepts_total} concepts resolved`,
227
+ ];
228
+ const point = (kind, p) => ` ${kind} ${p.period} = ${p.value} | ends ${p.period_end} | ${p.form} [${p.accession_number}]`;
229
+ let group = '';
230
+ for (const line of result.lines) {
231
+ if (line.group !== group) {
232
+ group = line.group;
233
+ out.push('', `### ${group}`);
234
+ }
235
+ out.push(`- ${line.label} [${line.concept} → ${line.taxonomy}:${line.tag}, ${line.unit}]`);
236
+ if (line.annual)
237
+ out.push(point('annual', line.annual));
238
+ if (line.quarterly)
239
+ out.push(point('quarterly', line.quarterly));
240
+ if (line.instant)
241
+ out.push(point('instant', line.instant));
242
+ }
243
+ if (result.gaps.length > 0) {
244
+ out.push('', `### Not reported (${result.gaps.length})`);
245
+ for (const gap of result.gaps) {
246
+ out.push(`- ${gap.label} [${gap.concept}, ${gap.group}] — tried: ${gap.tags_tried.join(', ')}`);
247
+ }
248
+ }
249
+ for (const caveat of result.caveats)
250
+ out.push('', `Caveat: ${caveat}`);
251
+ return [{ type: 'text', text: out.join('\n') }];
252
+ },
253
+ });
254
+ //# sourceMappingURL=get-snapshot.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-snapshot.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-snapshot.tool.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,32 @@
2
2
  * @fileoverview Static mapping of friendly financial concept names to XBRL tags.
3
3
  * @module services/edgar/concept-map
4
4
  */
5
- import type { ConceptMapping } from './types.js';
5
+ import type { ConceptMapping, ConceptTaxonomy } from './types.js';
6
6
  /**
7
7
  * Resolve a concept input to its mapping. Accepts friendly names or raw XBRL tags.
8
8
  * Returns undefined if the input is not a known friendly name (caller should treat it as a raw tag).
9
9
  */
10
10
  export declare function resolveConcept(input: string): ConceptMapping | undefined;
11
+ /** What a caller-supplied concept resolves to before any lookup runs. */
12
+ export interface ConceptTarget {
13
+ /** Human-readable label — the mapping's label, or the raw tag itself. */
14
+ label: string;
15
+ /** Tags to try in priority order. Index 0 is the preferred total. */
16
+ tags: string[];
17
+ /** Taxonomy to look the tags up under. */
18
+ taxonomy: ConceptTaxonomy;
19
+ /** Expected unit of measure. Absent for raw XBRL tags. */
20
+ unit?: string;
21
+ }
22
+ /**
23
+ * Resolve a concept input plus a requested taxonomy into the taxonomy and tag
24
+ * list to query. A friendly name that prefers its own taxonomy (`dei` for
25
+ * shares_outstanding) keeps it unless the caller asked for something other than
26
+ * the `us-gaap` default; `ifrs-full` uses the mapping's confirmed IFRS variants
27
+ * when it has them and falls back to the standard tags otherwise. Unknown input
28
+ * passes through as a raw XBRL tag under the requested taxonomy.
29
+ */
30
+ export declare function resolveConceptTarget(input: string, requestedTaxonomy: ConceptTaxonomy): ConceptTarget;
11
31
  /** Get all concept mappings for reference resource generation. */
12
32
  export declare function getAllConcepts(): Record<string, ConceptMapping>;
13
33
  /** Entry returned by search/list operations — friendly name paired with its mapping. */
@@ -1 +1 @@
1
- {"version":3,"file":"concept-map.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/concept-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8SjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGxE;AAED,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAE/D;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,YAAY,EAAE,CAI7C;AAUD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAqB/E"}
1
+ {"version":3,"file":"concept-map.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/concept-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8SlE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGxE;AAED,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,eAAe,GACjC,aAAa,CAQf;AAED,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAE/D;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,YAAY,EAAE,CAI7C;AAUD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAqB/E"}