@cyanheads/secedgar-mcp-server 0.4.1 → 0.4.3
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/dist/mcp-server/prompts/definitions/company-analysis.prompt.js +2 -2
- package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js.map +1 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.js +1 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.js.map +1 -1
- package/dist/mcp-server/resources/definitions/filing-types.resource.js +1 -1
- package/dist/mcp-server/resources/definitions/filing-types.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/company-search.tool.js +5 -2
- package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/compare-metric.tool.d.ts +1 -0
- package/dist/mcp-server/tools/definitions/compare-metric.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/compare-metric.tool.js +17 -9
- package/dist/mcp-server/tools/definitions/compare-metric.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +27 -5
- package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-filing.tool.js +195 -65
- package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-financials.tool.js +16 -7
- package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.js +7 -3
- package/dist/mcp-server/tools/definitions/search-concepts.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +5 -0
- package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-filings.tool.js +59 -20
- package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
- package/dist/services/edgar/edgar-api-service.d.ts +8 -0
- package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
- package/dist/services/edgar/edgar-api-service.js +13 -0
- package/dist/services/edgar/edgar-api-service.js.map +1 -1
- package/dist/services/edgar/filing-headers.d.ts +20 -0
- package/dist/services/edgar/filing-headers.d.ts.map +1 -0
- package/dist/services/edgar/filing-headers.js +35 -0
- package/dist/services/edgar/filing-headers.js.map +1 -0
- package/package.json +6 -4
- package/server.json +3 -3
|
@@ -95,25 +95,50 @@ export const searchFilingsTool = tool('secedgar_search_filings', {
|
|
|
95
95
|
.min(0)
|
|
96
96
|
.max(9999)
|
|
97
97
|
.default(0)
|
|
98
|
-
.describe('Pagination offset. Increment by limit for the next page. EDGAR caps total accessible results at 10,000 — offsets past this return nothing.'),
|
|
98
|
+
.describe('Pagination offset. Increment by limit for the next page. EDGAR caps total accessible results at 10,000 — offsets past this return nothing. Under date sort, pagination is bounded to the first 100 hits.'),
|
|
99
|
+
sort: z
|
|
100
|
+
.enum(['filing_date_desc', 'filing_date_asc', 'relevance'])
|
|
101
|
+
.default('filing_date_desc')
|
|
102
|
+
.describe('Result ordering. "filing_date_desc" (default) returns most recent first. "filing_date_asc" returns oldest first. "relevance" returns SEC\'s native search-score order, which weights term match strength over recency. Date sorts re-order the top 100 EFTS relevance hits — for broad queries with more than 100 matches and no entity targeting, date-newest filings may sit outside that window. Add ticker:/cik: targeting or tighten the query to keep matches under 100 if absolute recency matters.'),
|
|
99
103
|
}),
|
|
100
104
|
output: z.object({
|
|
101
|
-
total: z
|
|
102
|
-
|
|
105
|
+
total: z
|
|
106
|
+
.number()
|
|
107
|
+
.describe('Total matching filings (capped at 10,000). Under entity targeting (ticker:/cik:), this becomes the count of entity-matching hits within the EFTS sample window — a lower bound when more EFTS matches exist beyond the window.'),
|
|
108
|
+
total_is_exact: z
|
|
109
|
+
.boolean()
|
|
110
|
+
.describe('False when total hits the 10,000 cap, or when entity targeting filtered a sample that did not cover the full EFTS match set.'),
|
|
103
111
|
results: z
|
|
104
112
|
.array(z
|
|
105
113
|
.object({
|
|
106
114
|
accession_number: z
|
|
107
115
|
.string()
|
|
108
|
-
.describe('
|
|
109
|
-
form: z
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
.describe('Filing accession number. Pass to secedgar_get_filing to retrieve the document text.'),
|
|
117
|
+
form: z
|
|
118
|
+
.string()
|
|
119
|
+
.optional()
|
|
120
|
+
.describe('Form type (e.g. "10-K"). Absent for hits where the index lacks a form tag.'),
|
|
121
|
+
filing_date: z.string().describe('Date the filing was submitted (YYYY-MM-DD).'),
|
|
122
|
+
period_ending: z
|
|
123
|
+
.string()
|
|
124
|
+
.optional()
|
|
125
|
+
.describe('Period the filing reports on (YYYY-MM-DD). Absent for filings without a reporting period (e.g., proxy statements, ownership reports).'),
|
|
126
|
+
company_name: z
|
|
127
|
+
.string()
|
|
128
|
+
.describe('Filing entity, with ticker/CIK parentheticals stripped.'),
|
|
129
|
+
cik: z.string().describe('Filing entity CIK, zero-padded to 10 digits.'),
|
|
130
|
+
file_description: z
|
|
131
|
+
.string()
|
|
132
|
+
.optional()
|
|
133
|
+
.describe('SEC-provided description of the matching document (e.g., "EX-99.1"). Absent when SEC published none.'),
|
|
134
|
+
sic: z
|
|
135
|
+
.string()
|
|
136
|
+
.optional()
|
|
137
|
+
.describe('SIC industry code for the filer. Absent for filers without a classification.'),
|
|
138
|
+
location: z
|
|
139
|
+
.string()
|
|
140
|
+
.optional()
|
|
141
|
+
.describe('Business location (state or country code). Absent when SEC has no location for this filer.'),
|
|
117
142
|
})
|
|
118
143
|
.describe('One matching filing hit from the full-text search index.'))
|
|
119
144
|
.describe('Matching filings.'),
|
|
@@ -129,29 +154,43 @@ export const searchFilingsTool = tool('secedgar_search_filings', {
|
|
|
129
154
|
}
|
|
130
155
|
// Resolve ticker:/cik: entity targeting → company name in query + CIK for filtering
|
|
131
156
|
const { query, entityCik } = await resolveEntityTargeting(input.query);
|
|
132
|
-
//
|
|
133
|
-
|
|
157
|
+
// EFTS scores by relevance and exposes no sort param. When the caller wants
|
|
158
|
+
// a date sort (the default) or entity filtering, we over-fetch the EFTS
|
|
159
|
+
// window and reorder/slice client-side. Pure relevance mode keeps the
|
|
160
|
+
// existing pass-through behavior so callers paying for relevance get it.
|
|
161
|
+
const wideFetch = entityCik !== undefined || input.sort !== 'relevance';
|
|
162
|
+
const fetchFrom = wideFetch ? 0 : input.offset;
|
|
163
|
+
const fetchSize = wideFetch ? 100 : input.limit;
|
|
134
164
|
const api = getEdgarApiService();
|
|
135
165
|
const response = await api.searchFilings({
|
|
136
166
|
query,
|
|
137
167
|
forms: input.forms,
|
|
138
168
|
startDate: input.start_date,
|
|
139
169
|
endDate: input.end_date,
|
|
140
|
-
from:
|
|
170
|
+
from: fetchFrom,
|
|
141
171
|
size: fetchSize,
|
|
142
172
|
});
|
|
143
173
|
let total = response.hits.total.value;
|
|
144
174
|
let totalIsExact = response.hits.total.relation === 'eq';
|
|
145
|
-
// search-index endpoint ignores size/from params (always returns up to 100),
|
|
146
|
-
// so apply client-side slicing to respect the requested limit
|
|
147
175
|
let hits = response.hits.hits;
|
|
148
|
-
// Post-filter by entity CIK when entity targeting was used
|
|
176
|
+
// Post-filter by entity CIK when entity targeting was used. We can only claim
|
|
177
|
+
// an exact total when the EFTS sample window already contained the full match
|
|
178
|
+
// set; if EFTS reported more matches than fit in our sample, additional
|
|
179
|
+
// entity hits may exist beyond the window and `total` is a lower bound.
|
|
149
180
|
if (entityCik) {
|
|
181
|
+
const sampleCoversAll = total <= hits.length;
|
|
150
182
|
hits = hits.filter((h) => h._source.ciks?.includes(entityCik));
|
|
151
183
|
total = hits.length;
|
|
152
|
-
totalIsExact =
|
|
184
|
+
totalIsExact = sampleCoversAll;
|
|
185
|
+
}
|
|
186
|
+
if (input.sort === 'filing_date_desc') {
|
|
187
|
+
hits = [...hits].sort((a, b) => b._source.file_date.localeCompare(a._source.file_date));
|
|
188
|
+
}
|
|
189
|
+
else if (input.sort === 'filing_date_asc') {
|
|
190
|
+
hits = [...hits].sort((a, b) => a._source.file_date.localeCompare(b._source.file_date));
|
|
153
191
|
}
|
|
154
|
-
const
|
|
192
|
+
const startIdx = wideFetch ? input.offset : 0;
|
|
193
|
+
const sliced = hits.slice(startIdx, startIdx + input.limit);
|
|
155
194
|
const results = sliced.map((hit) => {
|
|
156
195
|
const accessionNumber = hit._source.adsh || hit._id.split(':')[0] || hit._id;
|
|
157
196
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-filings.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-filings.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"search-filings.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-filings.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* and ticker/entity caching.
|
|
5
5
|
* @module services/edgar/edgar-api-service
|
|
6
6
|
*/
|
|
7
|
+
import { type FilingDocumentHeader } from './filing-headers.js';
|
|
7
8
|
import type { CikMatch, CompanyConceptResponse, EftsResponse, FilingIndex, FramesResponse, SubmissionsResponse } from './types.js';
|
|
8
9
|
declare class EdgarApiService {
|
|
9
10
|
private lastRequestAt;
|
|
@@ -44,6 +45,13 @@ declare class EdgarApiService {
|
|
|
44
45
|
findFilingCiks(accessionNumber: string): Promise<string[]>;
|
|
45
46
|
/** Fetch a filing's document index. Returns `null` if the filing does not exist. */
|
|
46
47
|
tryGetFilingIndex(cik: string, accessionNumber: string): Promise<FilingIndex | null>;
|
|
48
|
+
/**
|
|
49
|
+
* Fetch the SEC submission header (`<accession>-index-headers.html`) and parse
|
|
50
|
+
* it into a `filename → metadata` map. Returns `null` if the file is absent.
|
|
51
|
+
* The header page exposes canonical SEC document TYPE values (e.g. "EX-21.1")
|
|
52
|
+
* that the directory listing JSON does not.
|
|
53
|
+
*/
|
|
54
|
+
tryGetFilingHeaders(cik: string, accessionNumber: string): Promise<Map<string, FilingDocumentHeader> | null>;
|
|
47
55
|
getFilingDocument(cik: string, accessionNumber: string, document: string): Promise<string>;
|
|
48
56
|
/**
|
|
49
57
|
* Fetch a filing document, returning `null` when the archive path exists but this document does not.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgar-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,QAAQ,EACR,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAcpB,cAAM,eAAe;IACnB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,aAAa,CAAoC;;IAOzD,0DAA0D;IACpD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ3C,kFAAkF;IAC5E,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKrD,sDAAsD;IAChD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7C,sFAAsF;IAChF,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOvD;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAiD/D,2CAA2C;IACrC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO3D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOzD,aAAa,CAAC,MAAM,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,GAAG,OAAO,CAAC,YAAY,CAAC;IAezB;;;OAGG;IACG,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBhE,oFAAoF;IACpF,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAQpF,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1F;;OAEG;IACH,oBAAoB,CAClB,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQzB,6FAA6F;IAC7F,oBAAoB,CAClB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAOzC,8FAA8F;IAC9F,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQjC;;;OAGG;YACW,QAAQ;IA4BtB;;;OAGG;IACH,OAAO,CAAC,QAAQ;YAcF,cAAc;CA8B7B;AASD,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAIpD"}
|
|
1
|
+
{"version":3,"file":"edgar-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { notFound, serviceUnavailable } from '@cyanheads/mcp-ts-core/errors';
|
|
8
8
|
import { httpErrorFromResponse } from '@cyanheads/mcp-ts-core/utils';
|
|
9
9
|
import { getServerConfig } from '../../config/server-config.js';
|
|
10
|
+
import { parseFilingHeaders } from './filing-headers.js';
|
|
10
11
|
const MAX_RETRIES = 3;
|
|
11
12
|
const BASE_BACKOFF_MS = 1000;
|
|
12
13
|
const RETRYABLE_STATUSES = new Set([429, 500, 502, 503, 504]);
|
|
@@ -147,6 +148,18 @@ class EdgarApiService {
|
|
|
147
148
|
const noDashes = accessionNumber.replace(/-/g, '');
|
|
148
149
|
return this.tryFetchJson(`https://www.sec.gov/Archives/edgar/data/${padded}/${noDashes}/index.json`);
|
|
149
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Fetch the SEC submission header (`<accession>-index-headers.html`) and parse
|
|
153
|
+
* it into a `filename → metadata` map. Returns `null` if the file is absent.
|
|
154
|
+
* The header page exposes canonical SEC document TYPE values (e.g. "EX-21.1")
|
|
155
|
+
* that the directory listing JSON does not.
|
|
156
|
+
*/
|
|
157
|
+
async tryGetFilingHeaders(cik, accessionNumber) {
|
|
158
|
+
const padded = cik.padStart(10, '0');
|
|
159
|
+
const noDashes = accessionNumber.replace(/-/g, '');
|
|
160
|
+
const text = await this.tryFetchText(`https://www.sec.gov/Archives/edgar/data/${padded}/${noDashes}/${accessionNumber}-index-headers.html`);
|
|
161
|
+
return text ? parseFilingHeaders(text) : null;
|
|
162
|
+
}
|
|
150
163
|
getFilingDocument(cik, accessionNumber, document) {
|
|
151
164
|
const padded = cik.padStart(10, '0');
|
|
152
165
|
const noDashes = accessionNumber.replace(/-/g, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgar-api-service.js","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"edgar-api-service.js","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Parser for SEC filing `<accession>-index-headers.html`. Each
|
|
3
|
+
* filing archive ships an HTML page that re-encodes the original SGML submission
|
|
4
|
+
* header inside a `<PRE>` block. The header lists every document with its
|
|
5
|
+
* canonical SEC TYPE (e.g. "10-K", "EX-21.1", "EX-101.INS", "GRAPHIC") — data
|
|
6
|
+
* the directory listing at `index.json` does not provide (it returns icon hints
|
|
7
|
+
* like "text.gif").
|
|
8
|
+
* @module services/edgar/filing-headers
|
|
9
|
+
*/
|
|
10
|
+
export interface FilingDocumentHeader {
|
|
11
|
+
description?: string | undefined;
|
|
12
|
+
sequence?: string | undefined;
|
|
13
|
+
type?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Parse `index-headers.html` into a `filename → header metadata` map.
|
|
17
|
+
* Each `<DOCUMENT>` block is HTML-encoded inside `<PRE>` (`<DOCUMENT>…</DOCUMENT>`).
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseFilingHeaders(text: string): Map<string, FilingDocumentHeader>;
|
|
20
|
+
//# sourceMappingURL=filing-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filing-headers.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/filing-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAkBlF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Parser for SEC filing `<accession>-index-headers.html`. Each
|
|
3
|
+
* filing archive ships an HTML page that re-encodes the original SGML submission
|
|
4
|
+
* header inside a `<PRE>` block. The header lists every document with its
|
|
5
|
+
* canonical SEC TYPE (e.g. "10-K", "EX-21.1", "EX-101.INS", "GRAPHIC") — data
|
|
6
|
+
* the directory listing at `index.json` does not provide (it returns icon hints
|
|
7
|
+
* like "text.gif").
|
|
8
|
+
* @module services/edgar/filing-headers
|
|
9
|
+
*/
|
|
10
|
+
const TAGS = ['TYPE', 'SEQUENCE', 'FILENAME', 'DESCRIPTION'];
|
|
11
|
+
/**
|
|
12
|
+
* Parse `index-headers.html` into a `filename → header metadata` map.
|
|
13
|
+
* Each `<DOCUMENT>` block is HTML-encoded inside `<PRE>` (`<DOCUMENT>…</DOCUMENT>`).
|
|
14
|
+
*/
|
|
15
|
+
export function parseFilingHeaders(text) {
|
|
16
|
+
const map = new Map();
|
|
17
|
+
for (const match of text.matchAll(/<DOCUMENT>([\s\S]*?)<\/DOCUMENT>/g)) {
|
|
18
|
+
const block = match[1] ?? '';
|
|
19
|
+
const fields = {};
|
|
20
|
+
for (const tag of TAGS) {
|
|
21
|
+
const m = block.match(new RegExp(`<${tag}>\\s*([^\\r\\n]+)`));
|
|
22
|
+
if (m?.[1])
|
|
23
|
+
fields[tag] = m[1].trim();
|
|
24
|
+
}
|
|
25
|
+
if (fields.FILENAME) {
|
|
26
|
+
map.set(fields.FILENAME, {
|
|
27
|
+
type: fields.TYPE,
|
|
28
|
+
sequence: fields.SEQUENCE,
|
|
29
|
+
description: fields.DESCRIPTION,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return map;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=filing-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filing-headers.js","sourceRoot":"","sources":["../../../src/services/edgar/filing-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,+CAA+C,CAAC,EAAE,CAAC;QACnF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAmD,EAAE,CAAC;QAClE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/secedgar-mcp-server",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.",
|
|
5
5
|
"mcpName": "io.github.cyanheads/secedgar-mcp-server",
|
|
6
6
|
"type": "module",
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
"tree": "bun scripts/tree.ts",
|
|
22
22
|
"format": "biome check --write --unsafe .",
|
|
23
23
|
"lint:mcp": "bun scripts/lint-mcp.ts",
|
|
24
|
+
"changelog:build": "bun scripts/build-changelog.ts",
|
|
25
|
+
"changelog:check": "bun scripts/build-changelog.ts --check",
|
|
24
26
|
"test": "vitest run",
|
|
25
27
|
"publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
|
|
26
28
|
"start": "node dist/index.js",
|
|
@@ -68,17 +70,17 @@
|
|
|
68
70
|
"access": "public"
|
|
69
71
|
},
|
|
70
72
|
"dependencies": {
|
|
71
|
-
"@cyanheads/mcp-ts-core": "^0.8.
|
|
73
|
+
"@cyanheads/mcp-ts-core": "^0.8.13",
|
|
72
74
|
"html-to-text": "^10.0.0",
|
|
73
75
|
"pino-pretty": "^13.1.3"
|
|
74
76
|
},
|
|
75
77
|
"devDependencies": {
|
|
76
|
-
"@biomejs/biome": "^2.4.
|
|
78
|
+
"@biomejs/biome": "^2.4.14",
|
|
77
79
|
"@types/html-to-text": "^9.0.4",
|
|
78
80
|
"@types/node": "^25.6.0",
|
|
79
81
|
"depcheck": "^1.4.7",
|
|
80
82
|
"ignore": "^7.0.5",
|
|
81
|
-
"tsc-alias": "^1.8.
|
|
83
|
+
"tsc-alias": "^1.8.17",
|
|
82
84
|
"typescript": "^6.0.3",
|
|
83
85
|
"vitest": "^4.1.5"
|
|
84
86
|
}
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/secedgar-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.4.
|
|
9
|
+
"version": "0.4.3",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/secedgar-mcp-server",
|
|
21
21
|
"runtimeHint": "bun",
|
|
22
|
-
"version": "0.4.
|
|
22
|
+
"version": "0.4.3",
|
|
23
23
|
"environmentVariables": [
|
|
24
24
|
{
|
|
25
25
|
"name": "EDGAR_USER_AGENT",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
45
45
|
"identifier": "@cyanheads/secedgar-mcp-server",
|
|
46
46
|
"runtimeHint": "bun",
|
|
47
|
-
"version": "0.4.
|
|
47
|
+
"version": "0.4.3",
|
|
48
48
|
"environmentVariables": [
|
|
49
49
|
{
|
|
50
50
|
"name": "EDGAR_USER_AGENT",
|