@cyanheads/secedgar-mcp-server 0.12.3 → 0.12.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +1 -1
- package/LICENSE +1 -1
- package/README.md +10 -7
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js +1 -1
- package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +7 -3
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +36 -5
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-filing.tool.js +87 -11
- package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-financials.tool.js +10 -2
- package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +19 -2
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +6 -3
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +33 -5
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts +8 -8
- package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +29 -2
- package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-filings.tool.js +356 -28
- package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
- package/dist/services/edgar/edgar-api-service.d.ts +34 -1
- package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
- package/dist/services/edgar/edgar-api-service.js +79 -0
- package/dist/services/edgar/edgar-api-service.js.map +1 -1
- package/dist/services/edgar/mirror/edgar-mirror.d.ts.map +1 -1
- package/dist/services/edgar/types.d.ts +24 -0
- package/dist/services/edgar/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/server.json +3 -3
package/Dockerfile
CHANGED
|
@@ -62,7 +62,7 @@ COPY --from=build /usr/src/app/node_modules ./node_modules
|
|
|
62
62
|
ARG OTEL_ENABLED=true
|
|
63
63
|
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
64
64
|
if [ "$OTEL_ENABLED" = "true" ]; then \
|
|
65
|
-
bun add @hono/otel \
|
|
65
|
+
bun add --omit=dev --ignore-scripts @hono/otel \
|
|
66
66
|
@opentelemetry/instrumentation-http \
|
|
67
67
|
@opentelemetry/exporter-metrics-otlp-http \
|
|
68
68
|
@opentelemetry/exporter-trace-otlp-http \
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](https://www.npmjs.com/package/@cyanheads/secedgar-mcp-server) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/secedgar-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/secedgar-mcp-server) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/secedgar-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -34,10 +34,10 @@ Eight tools for querying SEC EDGAR data, plus three for SQL analytics over the D
|
|
|
34
34
|
| Tool | Description |
|
|
35
35
|
|:---|:---|
|
|
36
36
|
| `secedgar_company_search` | Find companies and retrieve entity info with optional recent filings |
|
|
37
|
-
| `secedgar_search_filings` |
|
|
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_insider_transactions` | Form
|
|
40
|
+
| `secedgar_get_insider_transactions` | Form 4 / 4-A insider transactions (buys, sells, grants, exercises) parsed from ownership XML |
|
|
41
41
|
| `secedgar_get_institutional_holdings` | 13F-HR quarterly institutional holdings parsed from the information table |
|
|
42
42
|
| `secedgar_fetch_frames` | Fetch SEC XBRL frames for one concept × one period across all reporting companies |
|
|
43
43
|
| `secedgar_search_concepts` | Discover supported XBRL concept names or reverse-lookup a raw tag |
|
|
@@ -61,11 +61,12 @@ Entry point for most EDGAR workflows — resolve tickers, names, or CIKs to enti
|
|
|
61
61
|
|
|
62
62
|
### `secedgar_search_filings`
|
|
63
63
|
|
|
64
|
-
Full-text search
|
|
64
|
+
Search EDGAR filings since 1993. Full-text search covers 2001-present (the EFTS index floor); pre-2001 date ranges are served from the archives — pre-2001 full-text matching requires entity scope.
|
|
65
65
|
|
|
66
66
|
- Exact phrases (`"material weakness"`), boolean operators (`revenue OR income`), wildcards (`account*`)
|
|
67
67
|
- Entity targeting within query string (`cik:320193` or `ticker:AAPL`) — scoped server-side by CIK, so filings made under a former company name (same CIK) are included
|
|
68
68
|
- Browse mode: omit `query` to list filings by form type (`forms=["S-1"]`) and/or entity (`ticker:`/`cik:`), optionally narrowed by date — a bare date range is not a valid search and must be paired with forms or entity targeting
|
|
69
|
+
- Pre-2001 date ranges (back to 1993) route to the archives: an entity-scoped range reads the filer's full submissions history; an unscoped forms/date range browses the quarterly full-index. A range straddling 2001-01-01 is rejected with a split instruction, and pre-2001 full-text (no entity scope) is unsupported. Each row carries a `source` field (`efts` / `submissions` / `full-index`), preserved into the `df_<id>` dataframe
|
|
69
70
|
- Date range filtering, form type filtering, pagination up to 10,000 results
|
|
70
71
|
- Returns form distribution for narrowing follow-up searches
|
|
71
72
|
- When the entity-scoped window exceeds the inline limit, the already-fetched EFTS window is materialized as a `df_<id>` dataframe — query it with `secedgar_dataframe_query`
|
|
@@ -101,7 +102,7 @@ Get historical XBRL financial data for a company with friendly concept name reso
|
|
|
101
102
|
|
|
102
103
|
### `secedgar_get_insider_transactions`
|
|
103
104
|
|
|
104
|
-
Surface Form
|
|
105
|
+
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`.
|
|
105
106
|
|
|
106
107
|
- Reporting person, relationship to issuer (director, officer + title, 10% owner), and transaction date
|
|
107
108
|
- Transaction code mapped to a readable type (purchase, sale, gift, award, exercise, …); shares signed by acquired/disposed
|
|
@@ -120,7 +121,8 @@ Surface 13F-HR quarterly institutional holdings by parsing the information table
|
|
|
120
121
|
- Sub-lines for the same security (one per manager/account) are consolidated into distinct positions sorted by value by default — pass `consolidate: false` for raw filing rows
|
|
121
122
|
- Resolves the filing-manager name and reporting quarter from the cover page; target a specific quarter with `quarter` (e.g. `"2025-Q4"`)
|
|
122
123
|
- `total_holdings_in_filing` counts raw info-table rows; `total_positions` counts distinct positions after consolidation (both before `limit`)
|
|
123
|
-
-
|
|
124
|
+
- Page through a large information table with `offset` — the response echoes the effective `offset` and returns `next_offset` while rows remain, so every position stays reachable even when the canvas is disabled
|
|
125
|
+
- The full parsed holdings set is materialized as a `df_<id>` dataframe (the inline list is one page of `limit` rows) — query it with `secedgar_dataframe_query` for full-filing aggregation or cross-quarter joins on `cusip` + `reporting_period`
|
|
124
126
|
|
|
125
127
|
---
|
|
126
128
|
|
|
@@ -130,7 +132,8 @@ Fetch SEC XBRL frames for one concept × one period across all reporting compani
|
|
|
130
132
|
|
|
131
133
|
- Same friendly concept names as `secedgar_get_financials`
|
|
132
134
|
- Supports annual (`CY2023`), quarterly (`CY2024Q2`), and instant (`CY2023Q4I`) periods
|
|
133
|
-
- Inline response returns
|
|
135
|
+
- Inline response returns one page of the ranked companies (sort + limit), with ticker enrichment
|
|
136
|
+
- Walk further down the ranking with `offset` — the response echoes the effective `offset` and returns `next_offset` while companies remain, so ranks past the first page stay reachable even when the canvas is disabled
|
|
134
137
|
- The full frames response (all reporters, typically 2k–10k rows) is materialized as a `df_<id>` dataframe — query it with `secedgar_dataframe_query`
|
|
135
138
|
- `related_tags` flags alternate-definition tags some filers use as their primary line (e.g. `cash` → restricted-cash-inclusive total, `equity` → NCI-inclusive total), so a whole-universe screen on the base tag isn't silently under-inclusive — query those separately
|
|
136
139
|
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,7 @@ await createApp({
|
|
|
50
50
|
],
|
|
51
51
|
resources: [conceptsResource, filingTypesResource],
|
|
52
52
|
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
|
|
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.',
|
|
54
54
|
async setup(core) {
|
|
55
55
|
initEdgarApiService();
|
|
56
56
|
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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"}
|
|
@@ -27,7 +27,7 @@ export const companyAnalysisPrompt = prompt('secedgar_company_analysis', {
|
|
|
27
27
|
'**Material Events** — Use `secedgar_search_filings` (or call `secedgar_company_search` with `form_types: ["8-K"]`) to surface recent material events (M&A, leadership changes, earnings surprises).',
|
|
28
28
|
];
|
|
29
29
|
if (wantsInsider) {
|
|
30
|
-
steps.push('**Insider Activity** — Use `secedgar_get_insider_transactions` to review Form
|
|
30
|
+
steps.push('**Insider Activity** — Use `secedgar_get_insider_transactions` to review Form 4 / 4-A transactions by officers, directors, and 10% owners (buys, sells, grants, exercises). It does not cover Form 3 initial statements or Form 5 annual statements — reach those with `secedgar_search_filings` (`forms: ["3", "5"]`) plus `secedgar_get_filing`.');
|
|
31
31
|
}
|
|
32
32
|
if (wantsInstitutional) {
|
|
33
33
|
steps.push("**Institutional Ownership** — Use `secedgar_get_institutional_holdings` for a 13F filer's reported positions (pass the institutional manager, not the issuer — EDGAR has no issuer-to-holder index).");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company-analysis.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/company-analysis.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,2BAA2B,EAAE;IACvE,WAAW,EAAE,mKAAmK;IAEhL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACtF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8HAA8H,CAC/H;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,+EAA+E;QAC/E,mFAAmF;QACnF,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,0CAA0C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAa;YACtB,8GAA8G;YAC9G,6LAA6L;YAC7L,8JAA8J;YAC9J,qMAAqM;SACtM,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CACR,
|
|
1
|
+
{"version":3,"file":"company-analysis.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/company-analysis.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,2BAA2B,EAAE;IACvE,WAAW,EAAE,mKAAmK;IAEhL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACtF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8HAA8H,CAC/H;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,+EAA+E;QAC/E,mFAAmF;QACnF,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,0CAA0C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAa;YACtB,8GAA8G;YAC9G,6LAA6L;YAC7L,8JAA8J;YAC9J,qMAAqM;SACtM,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CACR,oVAAoV,CACrV,CAAC;QACJ,CAAC;QACD,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACR,sMAAsM,CACvM,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,0FAA0F,CAC3F,CAAC;QAEF,MAAM,QAAQ,GAAa;YACzB,gEAAgE;YAChE,yDAAyD;YACzD,yDAAyD;YACzD,kEAAkE;SACnE,CAAC;QACF,IAAI,YAAY,IAAI,kBAAkB,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CACX,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAElF,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,iCAAiC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;wBACpH,EAAE;wBACF,kCAAkC;wBAClC,EAAE;wBACF,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC9C,EAAE;wBACF,sBAAsB;wBACtB,GAAG,QAAQ;qBACZ,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -14,15 +14,16 @@ export declare const fetchFramesTool: import("@cyanheads/mcp-ts-core").ToolDefin
|
|
|
14
14
|
period: z.ZodString;
|
|
15
15
|
unit: z.ZodDefault<z.ZodEnum<{
|
|
16
16
|
USD: "USD";
|
|
17
|
-
"USD/shares": "USD/shares";
|
|
18
|
-
shares: "shares";
|
|
19
17
|
"USD-per-shares": "USD-per-shares";
|
|
18
|
+
"USD/shares": "USD/shares";
|
|
20
19
|
pure: "pure";
|
|
20
|
+
shares: "shares";
|
|
21
21
|
}>>;
|
|
22
22
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
23
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
23
24
|
sort: z.ZodDefault<z.ZodEnum<{
|
|
24
|
-
desc: "desc";
|
|
25
25
|
asc: "asc";
|
|
26
|
+
desc: "desc";
|
|
26
27
|
}>>;
|
|
27
28
|
}, z.core.$strip>, z.ZodObject<{
|
|
28
29
|
concept: z.ZodString;
|
|
@@ -30,6 +31,8 @@ export declare const fetchFramesTool: import("@cyanheads/mcp-ts-core").ToolDefin
|
|
|
30
31
|
unit: z.ZodString;
|
|
31
32
|
label: z.ZodString;
|
|
32
33
|
total_companies: z.ZodNumber;
|
|
34
|
+
offset: z.ZodNumber;
|
|
35
|
+
next_offset: z.ZodOptional<z.ZodNumber>;
|
|
33
36
|
data: z.ZodArray<z.ZodObject<{
|
|
34
37
|
rank: z.ZodNumber;
|
|
35
38
|
company_name: z.ZodString;
|
|
@@ -72,6 +75,7 @@ export declare const fetchFramesTool: import("@cyanheads/mcp-ts-core").ToolDefin
|
|
|
72
75
|
readonly when: "Concept resolves but no companies report this metric for the requested period and unit";
|
|
73
76
|
readonly recovery: "Check duration vs instant period, unit, and that the period exists post-CY2009.";
|
|
74
77
|
}], {
|
|
78
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
75
79
|
readonly truncated: z.ZodOptional<z.ZodBoolean>;
|
|
76
80
|
readonly shown: z.ZodOptional<z.ZodNumber>;
|
|
77
81
|
readonly cap: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-frames.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6BjE,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"fetch-frames.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6BjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4X1B,CAAC"}
|
|
@@ -37,9 +37,13 @@ function fiscalQ4Caveats(period) {
|
|
|
37
37
|
];
|
|
38
38
|
}
|
|
39
39
|
export const fetchFramesTool = tool('secedgar_fetch_frames', {
|
|
40
|
-
description: 'Fetch SEC XBRL frames for one concept × one period across all reporting companies. Inline response returns the top
|
|
40
|
+
description: 'Fetch SEC XBRL frames for one concept × one period across all reporting companies. Inline response returns a page of the ranked companies — start at the top or pass offset/next_offset to walk further down the ranking; the full frames response (all reporters) is materialized as df_<id> when a canvas is available, queryable via secedgar_dataframe_query. Accepts friendly names like "revenue" or "assets" (discover via secedgar_search_concepts) or raw XBRL tags. One call hits one XBRL tag — when a friendly name maps to multiple same-meaning tags, the response\'s `unqueried_tags` lists the others; call again per tag and UNION/COALESCE in SQL with an analysis-specific priority (e.g. SalesRevenueGoodsNet is goods-only). The response\'s `related_tags` separately flags alternate-DEFINITION tags a meaningful share of filers use as their primary line (e.g. cash incl. restricted cash, equity incl. noncontrolling interest) — a whole-universe screen on the base tag silently omits those filers; query them separately, but do not blindly union (the semantics differ). Response includes `value_distribution` and `period_end_range` to flag XBRL scale-factor anomalies and fiscal-year mixing.',
|
|
41
41
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
42
42
|
enrichment: {
|
|
43
|
+
notice: z
|
|
44
|
+
.string()
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('Guidance when the requested offset lands past the end of the ranked list.'),
|
|
43
47
|
truncated: z.boolean().optional().describe('True when the inline data[] was capped by limit.'),
|
|
44
48
|
shown: z.number().optional().describe('Number of companies shown inline.'),
|
|
45
49
|
cap: z.number().optional().describe('The limit cap applied.'),
|
|
@@ -73,6 +77,12 @@ export const fetchFramesTool = tool('secedgar_fetch_frames', {
|
|
|
73
77
|
.default('USD')
|
|
74
78
|
.describe('Unit of measure. Use "USD-per-shares" (or equivalently "USD/shares") for EPS, "shares" for share counts, "pure" for ratios. Ignored when concept resolves to a friendly name with a known unit.'),
|
|
75
79
|
limit: z.number().int().min(1).max(100).default(25).describe('Number of companies to return.'),
|
|
80
|
+
offset: z
|
|
81
|
+
.number()
|
|
82
|
+
.int()
|
|
83
|
+
.min(0)
|
|
84
|
+
.default(0)
|
|
85
|
+
.describe('Rank to start the page at, 0-based, over the sorted frame. Pass the next_offset from the previous response to read the next page — the ranked list is fetched whole and sliced, so paging is stable and gap-free. An offset at or past total_companies returns an empty page.'),
|
|
76
86
|
sort: z
|
|
77
87
|
.enum(['desc', 'asc'])
|
|
78
88
|
.default('desc')
|
|
@@ -88,6 +98,13 @@ export const fetchFramesTool = tool('secedgar_fetch_frames', {
|
|
|
88
98
|
.describe('Unit of measure used for the lookup (always normalized to dashed form, e.g. "USD-per-shares").'),
|
|
89
99
|
label: z.string().describe('Human-readable concept label.'),
|
|
90
100
|
total_companies: z.number().describe('Total companies reporting this metric for this period.'),
|
|
101
|
+
offset: z
|
|
102
|
+
.number()
|
|
103
|
+
.describe('Rank the returned page starts at, 0-based — the effective offset applied.'),
|
|
104
|
+
next_offset: z
|
|
105
|
+
.number()
|
|
106
|
+
.optional()
|
|
107
|
+
.describe('Offset to pass on the next call to continue down the ranking. Absent on the last page (no companies remain past this one).'),
|
|
91
108
|
data: z
|
|
92
109
|
.array(z
|
|
93
110
|
.object({
|
|
@@ -186,12 +203,20 @@ export const fetchFramesTool = tool('secedgar_fetch_frames', {
|
|
|
186
203
|
return { entry, cik, ticker };
|
|
187
204
|
}));
|
|
188
205
|
const sorted = [...enriched].sort((a, b) => input.sort === 'desc' ? b.entry.val - a.entry.val : a.entry.val - b.entry.val);
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
206
|
+
// Offset paging over the whole sorted frame — the retrieval path for ranks past
|
|
207
|
+
// `limit` when no canvas is available to hold the full set (#89). The frame is
|
|
208
|
+
// fetched whole, so slicing it is contiguous and stable across pages.
|
|
209
|
+
const pageEnd = input.offset + input.limit;
|
|
210
|
+
const sliced = sorted.slice(input.offset, pageEnd);
|
|
211
|
+
const nextOffset = pageEnd < sorted.length ? pageEnd : undefined;
|
|
212
|
+
if (sliced.length === 0 && input.offset > 0) {
|
|
213
|
+
ctx.enrich.notice(`Offset (${input.offset}) is at or past the ${sorted.length} companies reporting this concept for this period. Lower the offset to page back into the ranking.`);
|
|
214
|
+
}
|
|
215
|
+
else if (nextOffset !== undefined) {
|
|
216
|
+
ctx.enrich.truncated({ shown: sliced.length, cap: input.limit });
|
|
192
217
|
}
|
|
193
218
|
const data = sliced.map(({ entry, cik, ticker }, i) => ({
|
|
194
|
-
rank: i + 1,
|
|
219
|
+
rank: input.offset + i + 1,
|
|
195
220
|
company_name: entry.entityName,
|
|
196
221
|
cik,
|
|
197
222
|
ticker: ticker || undefined,
|
|
@@ -269,6 +294,8 @@ export const fetchFramesTool = tool('secedgar_fetch_frames', {
|
|
|
269
294
|
unit,
|
|
270
295
|
label: framesResponse.label || label,
|
|
271
296
|
total_companies: framesResponse.pts,
|
|
297
|
+
offset: input.offset,
|
|
298
|
+
next_offset: nextOffset,
|
|
272
299
|
data,
|
|
273
300
|
dataset,
|
|
274
301
|
unqueried_tags: unqueriedTags,
|
|
@@ -282,6 +309,10 @@ export const fetchFramesTool = tool('secedgar_fetch_frames', {
|
|
|
282
309
|
const lines = [
|
|
283
310
|
`**${result.label}** [XBRL: ${result.concept}] — ${result.period} (${result.unit}, ${result.total_companies} companies)`,
|
|
284
311
|
];
|
|
312
|
+
lines.push(`Page offset: ${result.offset} (${result.data.length} shown)`);
|
|
313
|
+
if (result.next_offset !== undefined) {
|
|
314
|
+
lines.push(`Next offset: ${result.next_offset} — pass as offset to read the next page.`);
|
|
315
|
+
}
|
|
285
316
|
for (const d of result.data) {
|
|
286
317
|
const ticker = d.ticker ? ` (${d.ticker})` : '';
|
|
287
318
|
const formatted = result.unit === 'USD'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-frames.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch-frames.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,12 +60,12 @@ export declare const getFilingTool: import("@cyanheads/mcp-ts-core").ToolDefinit
|
|
|
60
60
|
readonly reason: "document_not_found";
|
|
61
61
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
62
62
|
readonly when: "A specific document was requested but not present in the filing archive";
|
|
63
|
-
readonly recovery: "Pick a filename from
|
|
63
|
+
readonly recovery: "Pick a filename from the categorized document list in the error message.";
|
|
64
64
|
}, {
|
|
65
65
|
readonly reason: "no_documents";
|
|
66
66
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
67
67
|
readonly when: "Filing index lists items but no fetchable primary document was found";
|
|
68
|
-
readonly recovery: "
|
|
68
|
+
readonly recovery: "Set document to one of the filenames listed in the error message.";
|
|
69
69
|
}, {
|
|
70
70
|
readonly reason: "filing_not_found";
|
|
71
71
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-filing.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-filing.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-filing.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-filing.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA8FjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2axB,CAAC"}
|
|
@@ -7,6 +7,14 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
|
7
7
|
import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
|
|
8
8
|
import { detectHeadings, filingToExtract, getExtractCache, setExtractCache, windowText, } from '../../../services/edgar/filing-to-text.js';
|
|
9
9
|
const MAX_DOCUMENTS_IN_FORMAT = 10;
|
|
10
|
+
/**
|
|
11
|
+
* Per-category cap on the catalog rendered into an error message. Distinct from
|
|
12
|
+
* {@link MAX_DOCUMENTS_IN_FORMAT}: the success path renders every filename (see
|
|
13
|
+
* {@link formatDocList}), while an error stays a short, actionable sample plus
|
|
14
|
+
* the true per-category total. Ten holds a real filing's error message under
|
|
15
|
+
* ~1 KB against ~15.7 KB for the same filing rendered in full.
|
|
16
|
+
*/
|
|
17
|
+
const MAX_DOCUMENTS_IN_ERROR = 10;
|
|
10
18
|
/**
|
|
11
19
|
* Sentinel lines framing upstream filing text in format() output, so document
|
|
12
20
|
* content is not confused with tool/client instructions. Sentinel lines (not a
|
|
@@ -38,13 +46,13 @@ export const getFilingTool = tool('secedgar_get_filing', {
|
|
|
38
46
|
reason: 'document_not_found',
|
|
39
47
|
code: JsonRpcErrorCode.NotFound,
|
|
40
48
|
when: 'A specific document was requested but not present in the filing archive',
|
|
41
|
-
recovery: 'Pick a filename from
|
|
49
|
+
recovery: 'Pick a filename from the categorized document list in the error message.',
|
|
42
50
|
},
|
|
43
51
|
{
|
|
44
52
|
reason: 'no_documents',
|
|
45
53
|
code: JsonRpcErrorCode.NotFound,
|
|
46
54
|
when: 'Filing index lists items but no fetchable primary document was found',
|
|
47
|
-
recovery: '
|
|
55
|
+
recovery: 'Set document to one of the filenames listed in the error message.',
|
|
48
56
|
},
|
|
49
57
|
{
|
|
50
58
|
reason: 'filing_not_found',
|
|
@@ -181,22 +189,40 @@ export const getFilingTool = tool('secedgar_get_filing', {
|
|
|
181
189
|
const resolved = await resolveFilingArchive(api, accn, input.cik, input.document);
|
|
182
190
|
if (!resolved.ok) {
|
|
183
191
|
if (resolved.kind === 'document_not_found') {
|
|
192
|
+
// Render candidates into the message itself — clients reliably see only
|
|
193
|
+
// message + recovery hint, not error data (#88), so a content-only client
|
|
194
|
+
// otherwise cannot discover any filename but the primary. Same shape
|
|
195
|
+
// section_not_found already uses for its outline, bounded per category.
|
|
196
|
+
const catalogBlock = renderDocumentCatalog(resolved.documents);
|
|
184
197
|
const primaryName = resolved.documents.primary[0]?.name;
|
|
198
|
+
// A non-empty primary bucket is exactly the condition under which the
|
|
199
|
+
// no-document call succeeds — the loop only reaches this branch past
|
|
200
|
+
// findPrimaryDocument. Without one, that call fails the same way, so
|
|
201
|
+
// don't advertise a route that dead-ends.
|
|
185
202
|
const hint = primaryName
|
|
186
|
-
? `Use document="${primaryName}" (the primary) or pick from
|
|
187
|
-
:
|
|
188
|
-
|
|
203
|
+
? `Use document="${primaryName}" (the primary), or pick another filename from the list above. Call secedgar_get_filing again with the same accession_number and no document argument for the complete catalog.`
|
|
204
|
+
: catalogBlock
|
|
205
|
+
? 'Pick a filename from the list above.'
|
|
206
|
+
: 'Pick a filename from documents.primary or exhibits in error data.';
|
|
207
|
+
throw ctx.fail('document_not_found', `Document '${resolved.requestedDocument}' not found in this filing.${catalogBlock}`, {
|
|
189
208
|
requested_document: resolved.requestedDocument,
|
|
190
209
|
documents: resolved.documents,
|
|
191
210
|
recovery: { hint },
|
|
192
211
|
});
|
|
193
212
|
}
|
|
194
213
|
if (resolved.kind === 'no_documents') {
|
|
195
|
-
|
|
214
|
+
const catalogBlock = renderDocumentCatalog(resolved.documents);
|
|
215
|
+
throw ctx.fail('no_documents', `No primary document found in filing ${accn}.${catalogBlock}`, {
|
|
196
216
|
accession_number: accn,
|
|
197
217
|
documents: resolved.documents,
|
|
198
218
|
recovery: {
|
|
199
|
-
|
|
219
|
+
// No `document` was requested here — that is what this branch means —
|
|
220
|
+
// so omitting it is the call that just failed and is not a route out.
|
|
221
|
+
// Naming a fetchable document is, and a successful response carries
|
|
222
|
+
// the complete catalog.
|
|
223
|
+
hint: catalogBlock
|
|
224
|
+
? 'Set the document input to one of the filenames listed above; a successful response lists the complete document catalog.'
|
|
225
|
+
: 'Specify the document input using a filename from documents.primary in error data.',
|
|
200
226
|
},
|
|
201
227
|
});
|
|
202
228
|
}
|
|
@@ -347,6 +373,36 @@ export const getFilingTool = tool('secedgar_get_filing', {
|
|
|
347
373
|
function renderOutline(outline) {
|
|
348
374
|
return outline.map((h) => ` [${h.offset}] ${h.heading}`).join('\n');
|
|
349
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* Render the categorized document catalog as a labeled block for an error message,
|
|
378
|
+
* capped at {@link MAX_DOCUMENTS_IN_ERROR} per category. Shared by the
|
|
379
|
+
* `document_not_found` and `no_documents` paths so the recoverable filenames read
|
|
380
|
+
* identically on both. Each line carries the category's true total and how many
|
|
381
|
+
* entries were withheld, so a sample never reads as the complete catalog; the
|
|
382
|
+
* complete catalog is what the success path renders through
|
|
383
|
+
* {@link formatDocumentSection}, and the recovery hints point there. Empty string
|
|
384
|
+
* when the filing index yielded no entries at all.
|
|
385
|
+
*/
|
|
386
|
+
function renderDocumentCatalog(documents) {
|
|
387
|
+
const sections = [];
|
|
388
|
+
const addCategory = (label, entries) => {
|
|
389
|
+
if (entries.length === 0)
|
|
390
|
+
return;
|
|
391
|
+
const shown = entries.slice(0, MAX_DOCUMENTS_IN_ERROR);
|
|
392
|
+
const names = shown.map((d) => `${d.name} [${d.type}]`).join(', ');
|
|
393
|
+
const omitted = entries.length - shown.length;
|
|
394
|
+
const tail = omitted > 0 ? ` (+${omitted} more)` : '';
|
|
395
|
+
sections.push(`${label} (${entries.length} total): ${names}${tail}`);
|
|
396
|
+
};
|
|
397
|
+
addCategory('Primary', documents.primary);
|
|
398
|
+
addCategory('Exhibits', documents.exhibits);
|
|
399
|
+
addCategory('Auxiliary', documents.auxiliary);
|
|
400
|
+
if (documents.xbrl)
|
|
401
|
+
addCategory('XBRL', documents.xbrl);
|
|
402
|
+
if (sections.length === 0)
|
|
403
|
+
return '';
|
|
404
|
+
return `\n\nAvailable documents (up to ${MAX_DOCUMENTS_IN_ERROR} shown per category):\n${sections.join('\n')}`;
|
|
405
|
+
}
|
|
350
406
|
/**
|
|
351
407
|
* Normalize a schema-validated accession number to dash format (0000320193-23-000106).
|
|
352
408
|
* Input shape is guaranteed by the input schema regex: dash format or 18-digit no-dash.
|
|
@@ -549,10 +605,28 @@ function formatDocumentSection(docs) {
|
|
|
549
605
|
}
|
|
550
606
|
return sections.length ? `\n${sections.join('\n')}` : '';
|
|
551
607
|
}
|
|
608
|
+
/**
|
|
609
|
+
* Render one document category: the first {@link MAX_DOCUMENTS_IN_FORMAT} entries
|
|
610
|
+
* with type/size/description, then every remaining filename bare. Filenames are the
|
|
611
|
+
* selectable keys for the `document` input, so all of them must reach `content[]` —
|
|
612
|
+
* `structuredContent.documents` is uncapped and the two surfaces have to carry the
|
|
613
|
+
* same catalog (#88). The tail drops metadata to hold that cost down but is
|
|
614
|
+
* deliberately unbounded, and a filing index can be large: State Street's FY2024
|
|
615
|
+
* 10-K (0000093751-25-000111) indexes 624 entries — 451 auxiliary, 448 of them
|
|
616
|
+
* per-page `.jpg` scans of signed exhibits — and renders a 15.8 KB catalog by
|
|
617
|
+
* default (17.8 KB with `include_xbrl=true`) against 1.2 KB / 1.7 KB for the same
|
|
618
|
+
* filing under a metadata-capped list. The overflow is scan images at least as
|
|
619
|
+
* often as it is XBRL viewer fragments, and `include_xbrl` gates only the `xbrl`
|
|
620
|
+
* bucket, so the auxiliary bulk lands on every plain call. That cost is
|
|
621
|
+
* proportionate here: `structuredContent.documents` already ships the same entries
|
|
622
|
+
* with full metadata, so this render is the smaller half of a response that
|
|
623
|
+
* carries the catalog either way. Error messages take the opposite tradeoff —
|
|
624
|
+
* see {@link renderDocumentCatalog}.
|
|
625
|
+
*/
|
|
552
626
|
function formatDocList(entries) {
|
|
553
|
-
const
|
|
554
|
-
const
|
|
555
|
-
const list =
|
|
627
|
+
const detailed = entries.slice(0, MAX_DOCUMENTS_IN_FORMAT);
|
|
628
|
+
const rest = entries.slice(MAX_DOCUMENTS_IN_FORMAT);
|
|
629
|
+
const list = detailed
|
|
556
630
|
.map((d) => {
|
|
557
631
|
const tail = [
|
|
558
632
|
d.type,
|
|
@@ -564,6 +638,8 @@ function formatDocList(entries) {
|
|
|
564
638
|
return `${d.name} [${tail}]`;
|
|
565
639
|
})
|
|
566
640
|
.join(', ');
|
|
567
|
-
|
|
641
|
+
if (rest.length === 0)
|
|
642
|
+
return list;
|
|
643
|
+
return `${list}, +${rest.length} more: ${rest.map((d) => d.name).join(', ')}`;
|
|
568
644
|
}
|
|
569
645
|
//# sourceMappingURL=get-filing.tool.js.map
|