@cyanheads/secedgar-mcp-server 0.7.0 → 0.7.2

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 (39) hide show
  1. package/README.md +4 -0
  2. package/dist/config/server-config.d.ts +4 -0
  3. package/dist/config/server-config.d.ts.map +1 -1
  4. package/dist/config/server-config.js +22 -0
  5. package/dist/config/server-config.js.map +1 -1
  6. package/dist/index.js +37 -1
  7. package/dist/index.js.map +1 -1
  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 +2 -0
  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.map +1 -1
  12. package/dist/mcp-server/tools/definitions/get-financials.tool.js +2 -0
  13. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  14. package/dist/services/edgar/edgar-api-service.d.ts +27 -2
  15. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  16. package/dist/services/edgar/edgar-api-service.js +62 -10
  17. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  18. package/dist/services/edgar/mirror/companyfacts-sync.d.ts +34 -0
  19. package/dist/services/edgar/mirror/companyfacts-sync.d.ts.map +1 -0
  20. package/dist/services/edgar/mirror/companyfacts-sync.js +157 -0
  21. package/dist/services/edgar/mirror/companyfacts-sync.js.map +1 -0
  22. package/dist/services/edgar/mirror/edgar-mirror.d.ts +71 -0
  23. package/dist/services/edgar/mirror/edgar-mirror.d.ts.map +1 -0
  24. package/dist/services/edgar/mirror/edgar-mirror.js +190 -0
  25. package/dist/services/edgar/mirror/edgar-mirror.js.map +1 -0
  26. package/dist/services/edgar/mirror/index.d.ts +15 -0
  27. package/dist/services/edgar/mirror/index.d.ts.map +1 -0
  28. package/dist/services/edgar/mirror/index.js +21 -0
  29. package/dist/services/edgar/mirror/index.js.map +1 -0
  30. package/dist/services/edgar/mirror/tickers-sync.d.ts +17 -0
  31. package/dist/services/edgar/mirror/tickers-sync.d.ts.map +1 -0
  32. package/dist/services/edgar/mirror/tickers-sync.js +43 -0
  33. package/dist/services/edgar/mirror/tickers-sync.js.map +1 -0
  34. package/dist/services/edgar/mirror/types.d.ts +56 -0
  35. package/dist/services/edgar/mirror/types.d.ts.map +1 -0
  36. package/dist/services/edgar/mirror/types.js +30 -0
  37. package/dist/services/edgar/mirror/types.js.map +1 -0
  38. package/package.json +9 -3
  39. package/server.json +3 -3
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @fileoverview Constants and row shapes for the EDGAR local mirror — the two
3
+ * bounded SEC reference layers (ticker/CIK resolution and XBRL company-facts)
4
+ * mirrored into embedded SQLite via the framework `MirrorService`.
5
+ * @module services/edgar/mirror/types
6
+ */
7
+ /** SEC ticker→CIK directory (small direct-download JSON, ~200 KB). */
8
+ export const TICKERS_URL = 'https://www.sec.gov/files/company_tickers.json';
9
+ /** SEC bulk XBRL company-facts archive, recompiled nightly (~1.3 GB). */
10
+ export const COMPANY_FACTS_ZIP_URL = 'https://www.sec.gov/Archives/edgar/daily-index/xbrl/companyfacts.zip';
11
+ /** Primary table for the ticker/CIK layer. */
12
+ export const TICKERS_TABLE = 'tickers';
13
+ /** Primary table for the XBRL company-facts layer (one row per cik×taxonomy×tag). */
14
+ export const COMPANY_CONCEPTS_TABLE = 'company_concepts';
15
+ /** SQLite filenames inside the mirror directory (`EDGAR_MIRROR_PATH`). */
16
+ export const TICKERS_DB_FILE = 'tickers.sqlite';
17
+ export const COMPANY_FACTS_DB_FILE = 'companyfacts.sqlite';
18
+ /**
19
+ * Convert an HTTP `Last-Modified` value to a lexicographically-monotonic ISO 8601
20
+ * checkpoint string, falling back to the current timestamp when absent or unparseable.
21
+ */
22
+ export function lastModifiedToIso(httpDate) {
23
+ if (httpDate) {
24
+ const t = Date.parse(httpDate);
25
+ if (!Number.isNaN(t))
26
+ return new Date(t).toISOString();
27
+ }
28
+ return new Date().toISOString();
29
+ }
30
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/edgar/mirror/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,gDAAgD,CAAC;AAE5E,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAChC,sEAAsE,CAAC;AAEzE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,qFAAqF;AACrF,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE3D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAmC;IACnE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/secedgar-mcp-server",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
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",
@@ -29,6 +29,10 @@
29
29
  "bundle": "bun run build && bunx -y @anthropic-ai/mcpb pack . dist/secedgar-mcp-server.mcpb",
30
30
  "audit:refresh": "rm -f bun.lock && bun install && bun audit",
31
31
  "test": "vitest run",
32
+ "mirror:init": "bun scripts/edgar-mirror-init.ts",
33
+ "mirror:refresh": "bun scripts/edgar-mirror-refresh.ts",
34
+ "mirror:verify": "bun scripts/edgar-mirror-verify.ts",
35
+ "release:github": "bun scripts/release-github.ts",
32
36
  "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
33
37
  "start": "node dist/index.js",
34
38
  "start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
@@ -78,10 +82,12 @@
78
82
  "access": "public"
79
83
  },
80
84
  "dependencies": {
81
- "@cyanheads/mcp-ts-core": "^0.9.16",
82
- "@duckdb/node-api": "^1.5.3-r.2",
85
+ "@cyanheads/mcp-ts-core": "^0.9.19",
86
+ "@duckdb/node-api": "^1.5.3-r.3",
87
+ "better-sqlite3": "^12.10.0",
83
88
  "domhandler": "^6.0.1",
84
89
  "domutils": "^4.0.2",
90
+ "fflate": "^0.8.2",
85
91
  "html-to-text": "^10.0.0",
86
92
  "htmlparser2": "^12.0.0",
87
93
  "pino-pretty": "^13.1.3",
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.7.0",
9
+ "version": "0.7.2",
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.7.0",
22
+ "version": "0.7.2",
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.7.0",
47
+ "version": "0.7.2",
48
48
  "environmentVariables": [
49
49
  {
50
50
  "name": "EDGAR_USER_AGENT",