@cyanheads/secedgar-mcp-server 0.12.5 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -5
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.js +6 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +89 -0
- package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/compare-companies.tool.js +451 -0
- package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +1 -24
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +9 -0
- package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-filing.tool.js +91 -6
- package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +1 -0
- package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-financials.tool.js +44 -56
- package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +81 -0
- package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +262 -0
- package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts +1 -0
- package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.js +9 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.js.map +1 -1
- package/dist/services/edgar/concept-map.d.ts +21 -1
- package/dist/services/edgar/concept-map.d.ts.map +1 -1
- package/dist/services/edgar/concept-map.js +143 -1
- package/dist/services/edgar/concept-map.js.map +1 -1
- package/dist/services/edgar/concept-series.d.ts +80 -0
- package/dist/services/edgar/concept-series.d.ts.map +1 -0
- package/dist/services/edgar/concept-series.js +120 -0
- package/dist/services/edgar/concept-series.js.map +1 -0
- package/dist/services/edgar/edgar-api-service.d.ts +8 -6
- package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
- package/dist/services/edgar/edgar-api-service.js +7 -3
- package/dist/services/edgar/edgar-api-service.js.map +1 -1
- package/dist/services/edgar/fiscal-periods.d.ts +42 -0
- package/dist/services/edgar/fiscal-periods.d.ts.map +1 -0
- package/dist/services/edgar/fiscal-periods.js +129 -0
- package/dist/services/edgar/fiscal-periods.js.map +1 -0
- package/dist/services/edgar/mirror/companyfacts-sync.d.ts +7 -10
- package/dist/services/edgar/mirror/companyfacts-sync.d.ts.map +1 -1
- package/dist/services/edgar/mirror/companyfacts-sync.js.map +1 -1
- package/dist/services/edgar/mirror/edgar-mirror.d.ts +10 -1
- package/dist/services/edgar/mirror/edgar-mirror.d.ts.map +1 -1
- package/dist/services/edgar/mirror/edgar-mirror.js +35 -1
- package/dist/services/edgar/mirror/edgar-mirror.js.map +1 -1
- package/dist/services/edgar/types.d.ts +20 -0
- package/dist/services/edgar/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/server.json +3 -3
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<h1>@cyanheads/secedgar-mcp-server</h1>
|
|
3
3
|
<p><b>Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.</b>
|
|
4
|
-
<div>
|
|
4
|
+
<div>12 Tools (+1 opt-in) • 2 Resources • 1 Prompt</div>
|
|
5
5
|
</p>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
## Tools
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Ten tools for querying SEC EDGAR data, plus three for SQL analytics over the DuckDB-backed canvas dataframes those tools materialize:
|
|
33
33
|
|
|
34
34
|
| Tool | Description |
|
|
35
35
|
|:---|:---|
|
|
@@ -37,9 +37,11 @@ Eight tools for querying SEC EDGAR data, plus three for SQL analytics over the D
|
|
|
37
37
|
| `secedgar_search_filings` | Search EDGAR filings since 1993 — full-text (2001+) plus archive-backed browse for pre-2001 ranges |
|
|
38
38
|
| `secedgar_get_filing` | Fetch a specific filing's metadata and document content |
|
|
39
39
|
| `secedgar_get_financials` | Get historical XBRL financial data for a company |
|
|
40
|
+
| `secedgar_get_snapshot` | One-call financial profile — the latest value of every supported concept, grouped by statement |
|
|
40
41
|
| `secedgar_get_insider_transactions` | Form 4 / 4-A insider transactions (buys, sells, grants, exercises) parsed from ownership XML |
|
|
41
42
|
| `secedgar_get_institutional_holdings` | 13F-HR quarterly institutional holdings parsed from the information table |
|
|
42
43
|
| `secedgar_fetch_frames` | Fetch SEC XBRL frames for one concept × one period across all reporting companies |
|
|
44
|
+
| `secedgar_compare_companies` | Compare named companies across several concepts, aligned on calendar periods |
|
|
43
45
|
| `secedgar_search_concepts` | Discover supported XBRL concept names or reverse-lookup a raw tag |
|
|
44
46
|
| `secedgar_dataframe_describe` | List canvas dataframes with provenance, TTL, and schema |
|
|
45
47
|
| `secedgar_dataframe_query` | Run a single-statement SELECT across dataframes |
|
|
@@ -81,6 +83,7 @@ Fetch a specific filing's metadata and document content by accession number.
|
|
|
81
83
|
- Converts HTML filings to readable plain text
|
|
82
84
|
- Configurable content limit (1K–200K characters, default 50K)
|
|
83
85
|
- Can fetch specific exhibits by document name
|
|
86
|
+
- Binary entries — scanned pages, PDF exhibits, packaged archives and spreadsheets — are marked `binary` in the document catalog and rejected with a `binary_document` error instead of being returned as decoded bytes
|
|
84
87
|
- **Offset paging** for large documents (10-K, S-1/A can exceed 1M chars): pass `next_offset` from a truncated response as `offset` on the next call to continue reading; first-page truncated responses include a detected `outline` (headings with offsets) for targeted navigation
|
|
85
88
|
- **Section targeting** via the `section` param: jumps directly to a named heading by case-insensitive substring match (e.g. `"risk factors"`, `"item 7"`, `"certain relationships"`); on a miss, the error carries the detected outline so you can pick the correct heading
|
|
86
89
|
- Extracted text is cached per `accession + document` (bounded LRU, 8 entries), making subsequent paged calls cheap
|
|
@@ -96,10 +99,25 @@ Get historical XBRL financial data for a company with friendly concept name reso
|
|
|
96
99
|
- Automatic deduplication to one value per standard calendar period
|
|
97
100
|
- Filter by annual, quarterly, or all periods
|
|
98
101
|
- Optional `limit` caps the inline series to the most-recent N periods; the full series stays queryable via the `df_<id>` dataframe
|
|
102
|
+
- Quarterly results carry a `caveats` entry naming every calendar quarter absent from the frame-tagged series — SEC reports fiscal Q4 as the 10-K residual, so the calendar quarter that fiscal Q4 spans has no discrete quarterly value (calendar-year filers included), and a filer whose other fiscal quarters span non-calendar durations loses a second quarter the same way
|
|
103
|
+
- A further `caveats` entry when the concept resolved to an XBRL tag SEC has retired from the taxonomy — that only happens when no current tag reports for the filer, and the series can stop years short
|
|
99
104
|
- See `secedgar://concepts` resource for the full mapping
|
|
100
105
|
|
|
101
106
|
---
|
|
102
107
|
|
|
108
|
+
### `secedgar_get_snapshot`
|
|
109
|
+
|
|
110
|
+
Build a company financial profile in one call instead of a run of `secedgar_get_financials` calls.
|
|
111
|
+
|
|
112
|
+
- Reads the filer's complete companyfacts payload once, then resolves every supported concept against it
|
|
113
|
+
- Same frame dedup and tag priority as `secedgar_get_financials`, so the two agree for any concept they both cover
|
|
114
|
+
- 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
|
|
115
|
+
- Concepts the filer does not report are listed under `gaps` with the XBRL tags that were tried — never zero-filled or interpolated
|
|
116
|
+
- IFRS filers resolve through the mapped IFRS tag variants via `taxonomy: "ifrs-full"`, which covers the income statement, balance sheet, cash flow, and per-share concepts; each line reports the taxonomy its value came from
|
|
117
|
+
- Compact single-record profile — no dataframe; reach for `secedgar_get_financials` when you need a time series
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
103
121
|
### `secedgar_get_insider_transactions`
|
|
104
122
|
|
|
105
123
|
Surface Form 4 / 4-A insider activity for a company by parsing ownership XML. Form 3 initial statements and Form 5 annual statements are not covered — reach those with `secedgar_search_filings` (`forms: ["3", "5"]`) plus `secedgar_get_filing`.
|
|
@@ -139,6 +157,19 @@ Fetch SEC XBRL frames for one concept × one period across all reporting compani
|
|
|
139
157
|
|
|
140
158
|
---
|
|
141
159
|
|
|
160
|
+
### `secedgar_compare_companies`
|
|
161
|
+
|
|
162
|
+
Compare 2-10 named companies across 1-8 concepts, aligned on calendar periods — the middle shape between `secedgar_get_financials` (one company over time) and `secedgar_fetch_frames` (one period across the market).
|
|
163
|
+
|
|
164
|
+
- One companyfacts read per company, resolved through the same frame dedup and tag priority as `secedgar_get_financials`
|
|
165
|
+
- Balance-sheet and entity-info concepts align on the calendar year or quarter their point-in-time snapshot falls in, so they sit in the same matrix as income-statement lines; each cell keeps its underlying XBRL frame
|
|
166
|
+
- `periods` bounds the inline matrix (1-12, default 4) and the window shrinks further when companies x concepts x periods is too large to return in one response; the full aligned series is always materialized as a `df_<id>` dataframe for growth rates and spreads via `secedgar_dataframe_query`
|
|
167
|
+
- A company that fails to resolve is reported in `failed_companies` with a machine-readable reason and the comparison proceeds with the rest
|
|
168
|
+
- A company that does not report a concept is reported in `gaps` with the tags that were tried — never interpolated
|
|
169
|
+
- `caveats` surface a filer missing one or two calendar quarters, a concept that resolved to a retired XBRL tag for one company, period ends that differ inside one aligned period, and concepts whose unit differs across companies
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
142
173
|
### `secedgar_search_concepts`
|
|
143
174
|
|
|
144
175
|
Discover supported XBRL concept names before querying financials or cross-company comparisons.
|
|
@@ -147,13 +178,14 @@ Discover supported XBRL concept names before querying financials or cross-compan
|
|
|
147
178
|
- Filter by statement group (`income_statement`, `balance_sheet`, `cash_flow`, `per_share`, `entity_info`) or taxonomy
|
|
148
179
|
- Reverse-lookup raw tags like `NetIncomeLoss` to the supported friendly names
|
|
149
180
|
- Surfaces `related_tags` for concepts with a high-coverage alternate-definition tag (e.g. restricted-cash-inclusive cash) so callers can discover them before screening
|
|
181
|
+
- Filtering by `taxonomy: "ifrs-full"` narrows the catalog to concepts with an IFRS tag confirmed against live 20-F filings; a concept with no IFRS equivalent is left out rather than mapped to a guess
|
|
150
182
|
- Returns the same catalog used by `secedgar_get_financials`, `secedgar_fetch_frames`, and `secedgar://concepts`
|
|
151
183
|
|
|
152
184
|
---
|
|
153
185
|
|
|
154
186
|
### `secedgar_dataframe_describe` / `secedgar_dataframe_query` / `secedgar_dataframe_drop`
|
|
155
187
|
|
|
156
|
-
In-conversation SQL analytics over the dataframes that `secedgar_fetch_frames`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_insider_transactions`, and `secedgar_get_institutional_holdings` materialize on a shared DuckDB-backed canvas. Each data-returning call adds a `dataset` field with a `df_XXXXX_XXXXX` handle; pass that handle to `secedgar_dataframe_query` for joins, aggregates, window functions, percentiles — standard DuckDB SQL.
|
|
188
|
+
In-conversation SQL analytics over the dataframes that `secedgar_fetch_frames`, `secedgar_compare_companies`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_insider_transactions`, and `secedgar_get_institutional_holdings` materialize on a shared DuckDB-backed canvas. Each data-returning call adds a `dataset` field with a `df_XXXXX_XXXXX` handle; pass that handle to `secedgar_dataframe_query` for joins, aggregates, window functions, percentiles — standard DuckDB SQL.
|
|
157
189
|
|
|
158
190
|
- **Read-only by default.** Writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected by the framework SQL gate. System catalogs (`information_schema`, `pg_catalog`, `sqlite_master`, `duckdb_*`) are denied at the bridge layer so callers can't enumerate dataframes they don't already hold a handle for. `secedgar_dataframe_drop` is the only destructive tool and is opt-in (`EDGAR_DATAFRAME_DROP_ENABLED=true`); TTL handles cleanup otherwise.
|
|
159
191
|
- **Per-table TTL.** Each dataframe ages on its own clock (default 24h, override with `EDGAR_DATASET_TTL_SECONDS`). The canvas itself uses the framework's sliding TTL.
|
|
@@ -190,7 +222,7 @@ SEC EDGAR–specific:
|
|
|
190
222
|
- Friendly XBRL concept name mapping with historical tag change handling
|
|
191
223
|
- Searchable concept catalog with statement-group metadata and reverse XBRL tag lookup
|
|
192
224
|
- HTML-to-text conversion for filing documents via `html-to-text`
|
|
193
|
-
- In-conversation SQL analytics: `secedgar_fetch_frames`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_insider_transactions`, and `secedgar_get_institutional_holdings` materialize their full result as a DuckDB-backed canvas dataframe queryable via `secedgar_dataframe_query`
|
|
225
|
+
- In-conversation SQL analytics: `secedgar_fetch_frames`, `secedgar_compare_companies`, `secedgar_search_filings`, `secedgar_get_financials`, `secedgar_get_insider_transactions`, and `secedgar_get_institutional_holdings` materialize their full result as a DuckDB-backed canvas dataframe queryable via `secedgar_dataframe_query`
|
|
194
226
|
- No API keys required — SEC EDGAR is a free, public API
|
|
195
227
|
|
|
196
228
|
## Getting started
|
|
@@ -343,7 +375,7 @@ docker exec <container> bun run mirror:refresh # re-ingest when the archive ha
|
|
|
343
375
|
|
|
344
376
|
| Directory | Purpose |
|
|
345
377
|
|:---|:---|
|
|
346
|
-
| `src/mcp-server/tools/definitions/` | Tool definitions (`*.tool.ts`).
|
|
378
|
+
| `src/mcp-server/tools/definitions/` | Tool definitions (`*.tool.ts`). Ten SEC EDGAR tools plus three `dataframe_*` tools for SQL analytics. |
|
|
347
379
|
| `src/mcp-server/resources/definitions/` | Resource definitions. XBRL concepts and filing types. |
|
|
348
380
|
| `src/mcp-server/prompts/definitions/` | Prompt definitions. Company analysis prompt. |
|
|
349
381
|
| `src/services/edgar/` | SEC EDGAR API client, XBRL concept mapping, HTML-to-text conversion. |
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { companyAnalysisPrompt } from './mcp-server/prompts/definitions/company-
|
|
|
10
10
|
import { conceptsResource } from './mcp-server/resources/definitions/concepts.resource.js';
|
|
11
11
|
import { filingTypesResource } from './mcp-server/resources/definitions/filing-types.resource.js';
|
|
12
12
|
import { companySearchTool } from './mcp-server/tools/definitions/company-search.tool.js';
|
|
13
|
+
import { compareCompaniesTool } from './mcp-server/tools/definitions/compare-companies.tool.js';
|
|
13
14
|
import { dataframeDescribeTool } from './mcp-server/tools/definitions/dataframe-describe.tool.js';
|
|
14
15
|
import { dataframeDropTool } from './mcp-server/tools/definitions/dataframe-drop.tool.js';
|
|
15
16
|
import { dataframeQueryTool } from './mcp-server/tools/definitions/dataframe-query.tool.js';
|
|
@@ -18,6 +19,7 @@ import { getFilingTool } from './mcp-server/tools/definitions/get-filing.tool.js
|
|
|
18
19
|
import { getFinancialsTool } from './mcp-server/tools/definitions/get-financials.tool.js';
|
|
19
20
|
import { getInsiderTransactionsTool } from './mcp-server/tools/definitions/get-insider-transactions.tool.js';
|
|
20
21
|
import { getInstitutionalHoldingsTool } from './mcp-server/tools/definitions/get-institutional-holdings.tool.js';
|
|
22
|
+
import { getSnapshotTool } from './mcp-server/tools/definitions/get-snapshot.tool.js';
|
|
21
23
|
import { searchConceptsTool } from './mcp-server/tools/definitions/search-concepts.tool.js';
|
|
22
24
|
import { searchFilingsTool } from './mcp-server/tools/definitions/search-filings.tool.js';
|
|
23
25
|
import { initCanvasBridge } from './services/canvas-bridge/canvas-bridge.js';
|
|
@@ -40,9 +42,11 @@ await createApp({
|
|
|
40
42
|
searchFilingsTool,
|
|
41
43
|
getFilingTool,
|
|
42
44
|
getFinancialsTool,
|
|
45
|
+
getSnapshotTool,
|
|
43
46
|
getInsiderTransactionsTool,
|
|
44
47
|
getInstitutionalHoldingsTool,
|
|
45
48
|
fetchFramesTool,
|
|
49
|
+
compareCompaniesTool,
|
|
46
50
|
searchConceptsTool,
|
|
47
51
|
dataframeDescribeTool,
|
|
48
52
|
dataframeQueryTool,
|
|
@@ -50,7 +54,7 @@ await createApp({
|
|
|
50
54
|
],
|
|
51
55
|
resources: [conceptsResource, filingTypesResource],
|
|
52
56
|
prompts: [companyAnalysisPrompt],
|
|
53
|
-
instructions: 'Use the secedgar_* tools to query SEC EDGAR — US public-company filings since 1993 plus historical XBRL financials. Resolve companies with secedgar_company_search (accepts ticker, name, or CIK), fetch document text with secedgar_get_filing by accession number, and search filings with secedgar_search_filings (full-text covers 2001-present; pre-2001 date ranges browse the archives by form and entity/date, so pre-2001 full-text matching requires ticker:/cik: entity scope; supports boolean operators and inline ticker:AAPL / cik:320193 targeting). For financials, secedgar_get_financials and secedgar_fetch_frames accept friendly names like "revenue" or "eps_diluted" (discover them with secedgar_search_concepts) or raw XBRL tags. Data-returning tools also materialize their full upstream response as a df_<id> handle for downstream SQL via secedgar_dataframe_query — list dataframes with secedgar_dataframe_describe.',
|
|
57
|
+
instructions: 'Use the secedgar_* tools to query SEC EDGAR — US public-company filings since 1993 plus historical XBRL financials. Resolve companies with secedgar_company_search (accepts ticker, name, or CIK), fetch document text with secedgar_get_filing by accession number, and search filings with secedgar_search_filings (full-text covers 2001-present; pre-2001 date ranges browse the archives by form and entity/date, so pre-2001 full-text matching requires ticker:/cik: entity scope; supports boolean operators and inline ticker:AAPL / cik:320193 targeting). For financials, secedgar_get_financials and secedgar_fetch_frames accept friendly names like "revenue" or "eps_diluted" (discover them with secedgar_search_concepts) or raw XBRL tags; secedgar_get_snapshot profiles one company across every supported concept in a single call, and secedgar_compare_companies puts 2-10 named companies side by side on aligned calendar periods. Data-returning tools also materialize their full upstream response as a df_<id> handle for downstream SQL via secedgar_dataframe_query — list dataframes with secedgar_dataframe_describe.',
|
|
54
58
|
async setup(core) {
|
|
55
59
|
initEdgarApiService();
|
|
56
60
|
initCanvasBridge(core.canvas);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yDAAyD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,iEAAiE,CAAC;AAC7G,OAAO,EAAE,4BAA4B,EAAE,MAAM,mEAAmE,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,oEAAoE;AACpE,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,QAAQ,CAAC;AAE9C,6EAA6E;AAC7E,8EAA8E;AAC9E,gBAAgB;AAChB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC,oBAAoB,CAAC;AAE3D,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE;QACL,iBAAiB;QACjB,iBAAiB;QACjB,aAAa;QACb,iBAAiB;QACjB,0BAA0B;QAC1B,4BAA4B;QAC5B,eAAe;QACf,kBAAkB;QAClB,qBAAqB;QACrB,kBAAkB;QAClB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C;IACD,SAAS,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IAClD,OAAO,EAAE,CAAC,qBAAqB,CAAC;IAChC,YAAY,EACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concepts.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,eAAO,MAAM,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"concepts.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,eAAO,MAAM,gBAAgB;;wDA6D3B,CAAC"}
|
|
@@ -34,12 +34,17 @@ export const conceptsResource = resource('secedgar://concepts', {
|
|
|
34
34
|
lines.push('|:------|:------|:----------|:---------|:-----|');
|
|
35
35
|
for (const item of items) {
|
|
36
36
|
const tagCell = item.tags.map((t) => `\`${t}\``).join(', ');
|
|
37
|
+
// A concept resolves to a different element set under ifrs-full, so a
|
|
38
|
+
// menu listing only the us-gaap tags reads as the whole story.
|
|
39
|
+
const ifrsCell = item.ifrsTags?.length
|
|
40
|
+
? `<br>_ifrs-full:_ ${item.ifrsTags.map((t) => `\`${t}\``).join(', ')}`
|
|
41
|
+
: '';
|
|
37
42
|
const altCell = item.relatedTags?.length
|
|
38
43
|
? `<br>_alt (different definition, query separately):_ ${item.relatedTags
|
|
39
44
|
.map((r) => `\`${r.tag}\` (${r.note})`)
|
|
40
45
|
.join('; ')}`
|
|
41
46
|
: '';
|
|
42
|
-
lines.push(`| \`${item.name}\` | ${item.label} | ${tagCell}${altCell} | ${item.taxonomy} | ${item.unit} |`);
|
|
47
|
+
lines.push(`| \`${item.name}\` | ${item.label} | ${tagCell}${ifrsCell}${altCell} | ${item.taxonomy} | ${item.unit} |`);
|
|
43
48
|
}
|
|
44
49
|
lines.push('');
|
|
45
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concepts.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,MAAM,YAAY,GAAiC;IACjD,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,qBAAqB,EAAE;IAC9D,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,2LAA2L;IAC7L,QAAQ,EAAE,eAAe;IAEzB,OAAO,CAAC,OAAO,EAAE,IAAI;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CACR,sFAAsF,EACtF,EAAE,CACH,CAAC;QACF,KAAK,CAAC,IAAI,CACR,kFAAkF,EAClF,EAAE,CACH,CAAC;QAEF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM;oBACtC,CAAC,CAAC,uDAAuD,IAAI,CAAC,WAAW;yBACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC;yBACtC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjB,CAAC,CAAC,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CACR,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,MAAM,OAAO,GAAG,OAAO,MAAM,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"concepts.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/concepts.resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Period-aligned comparison of several named companies across
|
|
3
|
+
* several XBRL concepts. Sits between `secedgar_get_financials` (one company ×
|
|
4
|
+
* one concept over time) and `secedgar_fetch_frames` (one concept × one period
|
|
5
|
+
* across the whole market). Reads one companyfacts payload per company and
|
|
6
|
+
* resolves values through the shared frame dedup, so numbers match
|
|
7
|
+
* `secedgar_get_financials` for the same concept.
|
|
8
|
+
* @module mcp-server/tools/definitions/compare-companies
|
|
9
|
+
*/
|
|
10
|
+
import { z } from '@cyanheads/mcp-ts-core';
|
|
11
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
12
|
+
export declare const compareCompaniesTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
13
|
+
companies: z.ZodArray<z.ZodString>;
|
|
14
|
+
concepts: z.ZodArray<z.ZodString>;
|
|
15
|
+
taxonomy: z.ZodDefault<z.ZodEnum<{
|
|
16
|
+
"ifrs-full": "ifrs-full";
|
|
17
|
+
"us-gaap": "us-gaap";
|
|
18
|
+
}>>;
|
|
19
|
+
period_type: z.ZodDefault<z.ZodEnum<{
|
|
20
|
+
annual: "annual";
|
|
21
|
+
quarterly: "quarterly";
|
|
22
|
+
}>>;
|
|
23
|
+
periods: z.ZodDefault<z.ZodNumber>;
|
|
24
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
25
|
+
period_type: z.ZodString;
|
|
26
|
+
taxonomy: z.ZodString;
|
|
27
|
+
periods: z.ZodArray<z.ZodString>;
|
|
28
|
+
companies: z.ZodArray<z.ZodObject<{
|
|
29
|
+
input: z.ZodString;
|
|
30
|
+
cik: z.ZodString;
|
|
31
|
+
name: z.ZodString;
|
|
32
|
+
ticker: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
failed_companies: z.ZodArray<z.ZodObject<{
|
|
35
|
+
input: z.ZodString;
|
|
36
|
+
reason: z.ZodEnum<{
|
|
37
|
+
ambiguous: "ambiguous";
|
|
38
|
+
no_company_facts: "no_company_facts";
|
|
39
|
+
not_found: "not_found";
|
|
40
|
+
}>;
|
|
41
|
+
message: z.ZodString;
|
|
42
|
+
}, z.core.$strip>>;
|
|
43
|
+
concepts: z.ZodArray<z.ZodObject<{
|
|
44
|
+
concept: z.ZodString;
|
|
45
|
+
label: z.ZodString;
|
|
46
|
+
units: z.ZodArray<z.ZodString>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
cells: z.ZodArray<z.ZodObject<{
|
|
49
|
+
cik: z.ZodString;
|
|
50
|
+
company: z.ZodString;
|
|
51
|
+
concept: z.ZodString;
|
|
52
|
+
period: z.ZodString;
|
|
53
|
+
value: z.ZodNumber;
|
|
54
|
+
unit: z.ZodString;
|
|
55
|
+
taxonomy: z.ZodString;
|
|
56
|
+
tag: z.ZodString;
|
|
57
|
+
frame: z.ZodString;
|
|
58
|
+
period_end: z.ZodString;
|
|
59
|
+
form: z.ZodString;
|
|
60
|
+
accession_number: z.ZodString;
|
|
61
|
+
}, z.core.$strip>>;
|
|
62
|
+
gaps: z.ZodArray<z.ZodObject<{
|
|
63
|
+
cik: z.ZodString;
|
|
64
|
+
company: z.ZodString;
|
|
65
|
+
concept: z.ZodString;
|
|
66
|
+
tags_tried: z.ZodArray<z.ZodString>;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
caveats: z.ZodArray<z.ZodString>;
|
|
69
|
+
dataset: z.ZodOptional<z.ZodObject<{
|
|
70
|
+
name: z.ZodString;
|
|
71
|
+
row_count: z.ZodNumber;
|
|
72
|
+
expires_at: z.ZodString;
|
|
73
|
+
}, z.core.$strip>>;
|
|
74
|
+
}, z.core.$strip>, readonly [{
|
|
75
|
+
readonly reason: "no_companies_resolved";
|
|
76
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
77
|
+
readonly when: "None of the supplied company inputs resolved to a CIK";
|
|
78
|
+
readonly recovery: "Use ticker symbols or 10-digit CIK numbers for exact matches.";
|
|
79
|
+
}, {
|
|
80
|
+
readonly reason: "no_comparable_data";
|
|
81
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
82
|
+
readonly when: "Companies resolved but not one of them reports any of the requested concepts for the requested period type";
|
|
83
|
+
readonly recovery: "Switch period_type, or discover reported concept names with secedgar_search_concepts.";
|
|
84
|
+
}], {
|
|
85
|
+
readonly truncated: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
readonly shown: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
readonly cap: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
}>;
|
|
89
|
+
//# sourceMappingURL=compare-companies.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-companies.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/compare-companies.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA+DjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAse/B,CAAC"}
|