tradeblocks-mcp 3.0.3 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +3 -12
  2. package/dist/{chunk-VDU25Z6X.js → chunk-DHHEGI3Q.js} +15 -8
  3. package/dist/chunk-DHHEGI3Q.js.map +1 -0
  4. package/dist/{chunk-C6LL746C.js → chunk-GD3STARM.js} +536 -45
  5. package/dist/chunk-GD3STARM.js.map +1 -0
  6. package/dist/{chunk-UBUC5A66.js → chunk-TMCRS75V.js} +2284 -334
  7. package/dist/chunk-TMCRS75V.js.map +1 -0
  8. package/dist/{chunk-AP7IHUUR.js → chunk-WNTYA7ER.js} +2 -2
  9. package/dist/{chunk-6S37CXUA.js → chunk-YZA4RS76.js} +14 -6
  10. package/dist/chunk-YZA4RS76.js.map +1 -0
  11. package/dist/{chunk-SEUZYQGQ.js → chunk-ZTJXC3LS.js} +2 -2
  12. package/dist/daily-log-processor-MZW2XBZY.js +9 -0
  13. package/dist/market/provenance/index.d.ts +617 -0
  14. package/dist/market/provenance/index.js +22410 -0
  15. package/dist/market/provenance/index.js.map +1 -0
  16. package/dist/market-provider-JJIJ7QMU.js +16 -0
  17. package/dist/{sync-EVLKB3ZJ.js → sync-4Y4BSU6S.js} +6 -6
  18. package/dist/test-exports.js +4458 -608
  19. package/dist/test-exports.js.map +1 -1
  20. package/dist/trade-processor-DKDCWGKD.js +9 -0
  21. package/package.json +9 -7
  22. package/server/{chunk-YUCOAJ4Z.js → chunk-536NSFED.js} +2 -2
  23. package/server/{chunk-BOPHW5M6.js → chunk-65OJTDFW.js} +689 -145
  24. package/server/chunk-65OJTDFW.js.map +1 -0
  25. package/server/{chunk-GH2552SE.js → chunk-A3UKD64A.js} +2 -2
  26. package/server/{chunk-4P7D7YZP.js → chunk-ALICPVPK.js} +2231 -369
  27. package/server/chunk-ALICPVPK.js.map +1 -0
  28. package/server/{chunk-ZBJCF4ZG.js → chunk-KP4NYKL5.js} +15 -8
  29. package/server/chunk-KP4NYKL5.js.map +1 -0
  30. package/server/{chunk-OBYKFW2B.js → chunk-SY6GDNVI.js} +14 -6
  31. package/server/chunk-SY6GDNVI.js.map +1 -0
  32. package/server/daily-log-processor-B2VPU2FQ.js +10 -0
  33. package/server/index.d.ts +37 -21
  34. package/server/index.js +4383 -845
  35. package/server/index.js.map +1 -1
  36. package/server/market-provider-DIPCCFJU.js +17 -0
  37. package/server/{sync-V25UQJA3.js → sync-357V232A.js} +6 -6
  38. package/server/trade-processor-3PI4LHZI.js +10 -0
  39. package/src/db/backtest-schemas.ts +26 -4
  40. package/src/db/connection.ts +142 -3
  41. package/src/db/data-root.ts +22 -0
  42. package/src/db/index.ts +1 -0
  43. package/src/db/market-datasets.ts +208 -24
  44. package/src/db/market-views.ts +28 -11
  45. package/src/db/parquet-writer.ts +234 -11
  46. package/src/market/ingestor/index.ts +1 -0
  47. package/src/market/ingestor/market-ingestor.ts +7 -0
  48. package/src/market/ingestor/types.ts +18 -0
  49. package/src/market/provenance/canonical-json.ts +119 -0
  50. package/src/market/provenance/canonical-market-resolver.ts +696 -0
  51. package/src/market/provenance/content-manifest.ts +1934 -0
  52. package/src/market/provenance/content-object-store.ts +179 -0
  53. package/src/market/provenance/dataset-registry.ts +144 -0
  54. package/src/market/provenance/index.ts +130 -0
  55. package/src/market/provenance/partition-commit-attempt.ts +89 -0
  56. package/src/market/provenance/partition-commit-store.ts +1760 -0
  57. package/src/market/provenance/rate-slices.ts +60 -0
  58. package/src/market/provenance/refresh-completion.ts +989 -0
  59. package/src/market/provenance/xnys-session-calendar.ts +170 -0
  60. package/src/market/stores/coverage.ts +48 -0
  61. package/src/market/stores/duckdb-enriched-store.ts +26 -5
  62. package/src/market/stores/duckdb-quote-store.ts +29 -18
  63. package/src/market/stores/enriched-legacy-migration.ts +297 -0
  64. package/src/market/stores/enriched-sql.ts +19 -3
  65. package/src/market/stores/enriched-store.ts +16 -2
  66. package/src/market/stores/index.ts +143 -14
  67. package/src/market/stores/parquet-chain-store.ts +4 -1
  68. package/src/market/stores/parquet-enriched-store.ts +162 -41
  69. package/src/market/stores/parquet-oi-daily-store.ts +3 -3
  70. package/src/market/stores/parquet-quote-store.ts +37 -24
  71. package/src/market/stores/parquet-spot-store.ts +14 -10
  72. package/src/market/stores/quote-store.ts +5 -0
  73. package/src/market/stores/rth-aggregation.ts +4 -2
  74. package/src/market/stores/spot-store.ts +75 -6
  75. package/src/market/stores/types.ts +27 -0
  76. package/src/test-exports.ts +165 -2
  77. package/src/tools/blocks/index.ts +2 -0
  78. package/src/tools/blocks/paired-comparison.ts +425 -0
  79. package/src/tools/imports.ts +2 -2
  80. package/src/tools/market-enrichment.ts +2 -4
  81. package/src/utils/block-loader.ts +1 -1
  82. package/src/utils/calibration-probe.ts +2 -2
  83. package/src/utils/market-enricher.ts +249 -66
  84. package/src/utils/option-quote-greeks.ts +20 -8
  85. package/src/utils/providers/thetadata/bulk-roots.ts +10 -0
  86. package/src/utils/providers/thetadata.ts +5 -17
  87. package/src/utils/quote-parquet-projection.ts +50 -1
  88. package/dist/chunk-6S37CXUA.js.map +0 -1
  89. package/dist/chunk-C6LL746C.js.map +0 -1
  90. package/dist/chunk-UBUC5A66.js.map +0 -1
  91. package/dist/chunk-VDU25Z6X.js.map +0 -1
  92. package/dist/daily-log-processor-BY3ISY6K.js +0 -9
  93. package/dist/market-provider-H3ARIVZ4.js +0 -16
  94. package/dist/trade-processor-EYA3I3XB.js +0 -9
  95. package/manifest.json +0 -133
  96. package/server/chunk-4P7D7YZP.js.map +0 -1
  97. package/server/chunk-BOPHW5M6.js.map +0 -1
  98. package/server/chunk-OBYKFW2B.js.map +0 -1
  99. package/server/chunk-ZBJCF4ZG.js.map +0 -1
  100. package/server/daily-log-processor-ENEUT22A.js +0 -10
  101. package/server/market-provider-B437HKLW.js +0 -17
  102. package/server/trade-processor-L3PIQ5TG.js +0 -10
  103. /package/dist/{chunk-AP7IHUUR.js.map → chunk-WNTYA7ER.js.map} +0 -0
  104. /package/dist/{chunk-SEUZYQGQ.js.map → chunk-ZTJXC3LS.js.map} +0 -0
  105. /package/dist/{daily-log-processor-BY3ISY6K.js.map → daily-log-processor-MZW2XBZY.js.map} +0 -0
  106. /package/dist/{market-provider-H3ARIVZ4.js.map → market-provider-JJIJ7QMU.js.map} +0 -0
  107. /package/dist/{sync-EVLKB3ZJ.js.map → sync-4Y4BSU6S.js.map} +0 -0
  108. /package/dist/{trade-processor-EYA3I3XB.js.map → trade-processor-DKDCWGKD.js.map} +0 -0
  109. /package/server/{chunk-YUCOAJ4Z.js.map → chunk-536NSFED.js.map} +0 -0
  110. /package/server/{chunk-GH2552SE.js.map → chunk-A3UKD64A.js.map} +0 -0
  111. /package/server/{daily-log-processor-ENEUT22A.js.map → daily-log-processor-B2VPU2FQ.js.map} +0 -0
  112. /package/server/{market-provider-B437HKLW.js.map → market-provider-DIPCCFJU.js.map} +0 -0
  113. /package/server/{sync-V25UQJA3.js.map → sync-357V232A.js.map} +0 -0
  114. /package/server/{trade-processor-L3PIQ5TG.js.map → trade-processor-3PI4LHZI.js.map} +0 -0
package/README.md CHANGED
@@ -14,13 +14,7 @@ Model Context Protocol (MCP) server for options trading analysis. Works with Cla
14
14
 
15
15
  ## Installation
16
16
 
17
- ### Option 1: MCPB Bundle (Claude Desktop - One Click)
18
-
19
- Download the latest `.mcpb` file from [Releases](https://github.com/tradeblocks-org/tradeblocks/releases) and double-click to install.
20
-
21
- The installer will prompt you to select your Trading Data Directory.
22
-
23
- ### Option 2: npx (All Platforms)
17
+ ### Option 1: npx (All Platforms)
24
18
 
25
19
  Run directly without installation:
26
20
 
@@ -32,9 +26,9 @@ npx tradeblocks-mcp ~/Trading/backtests
32
26
  npx tradeblocks-mcp --http ~/Trading/backtests
33
27
  ```
34
28
 
35
- See [Configuration by Platform](#configuration-by-platform) below for platform-specific setup.
29
+ For Claude Desktop, add the server to `claude_desktop_config.json` — see [Configuration by Platform](#configuration-by-platform) below for platform-specific setup.
36
30
 
37
- ### Option 3: From Source
31
+ ### Option 2: From Source
38
32
 
39
33
  ```bash
40
34
  git clone https://github.com/tradeblocks-org/tradeblocks
@@ -399,9 +393,6 @@ npm run build
399
393
 
400
394
  # Run tests
401
395
  npm test
402
-
403
- # Pack MCPB bundle
404
- npm run mcpb:pack
405
396
  ```
406
397
 
407
398
  ## Market Data (Optional)
@@ -1,6 +1,7 @@
1
1
  import {
2
+ ALL_GREEKS,
2
3
  getSofrRateByKey
3
- } from "./chunk-C6LL746C.js";
4
+ } from "./chunk-GD3STARM.js";
4
5
  import {
5
6
  loadMddsProtoRoot
6
7
  } from "./chunk-2E63THNI.js";
@@ -2390,8 +2391,11 @@ function memoizedSofrRate(dateKey) {
2390
2391
  sofrRateByDateKey.set(dateKey, rate);
2391
2392
  return rate;
2392
2393
  }
2393
- function hasQuoteGreeks(row) {
2394
- return isFiniteNumber2(row.delta ?? null) && isFiniteNumber2(row.gamma ?? null) && isFiniteNumber2(row.theta ?? null) && isFiniteNumber2(row.vega ?? null) && isFiniteNumber2(row.iv ?? null);
2394
+ function hasQuoteGreeks(row, needed = ALL_GREEKS) {
2395
+ for (const greek of needed) {
2396
+ if (!isFiniteNumber2(row[greek] ?? null)) return false;
2397
+ }
2398
+ return true;
2395
2399
  }
2396
2400
  function hasProviderFirstOrderGreeks(row) {
2397
2401
  return row.greeks_source === "thetadata" && isFiniteNumber2(row.delta ?? null) && (row.gamma == null || isFiniteNumber2(row.gamma)) && isFiniteNumber2(row.theta ?? null) && isFiniteNumber2(row.vega ?? null) && isFiniteNumber2(row.iv ?? null);
@@ -2769,6 +2773,12 @@ function computeThetaQuoteMidGreekRow(params) {
2769
2773
  };
2770
2774
  }
2771
2775
 
2776
+ // src/utils/providers/thetadata/bulk-roots.ts
2777
+ function bulkQuoteRootsForUnderlying(underlying) {
2778
+ const upper = underlying.toUpperCase();
2779
+ return upper === "SPX" ? ["SPX", "SPXW"] : [upper];
2780
+ }
2781
+
2772
2782
  // src/utils/providers/thetadata.ts
2773
2783
  var BULK_YIELD_CHUNK = 5e4;
2774
2784
  var BULK_GREEKS_STRIKE_RANGE = 20;
@@ -2844,10 +2854,6 @@ function stockOhlcRowToBar(ticker, row) {
2844
2854
  time: msOfDayToEtMinute(row.msOfDay)
2845
2855
  };
2846
2856
  }
2847
- function bulkQuoteRootsForUnderlying(underlying) {
2848
- const upper = underlying.toUpperCase();
2849
- return upper === "SPX" ? ["SPX", "SPXW"] : [upper];
2850
- }
2851
2857
  function inferExerciseStyle(symbol) {
2852
2858
  const europeanRoots = /* @__PURE__ */ new Set([
2853
2859
  "SPX",
@@ -3284,8 +3290,9 @@ export {
3284
3290
  OPTION_QUOTE_MID_GREEKS_REVISION,
3285
3291
  OPTION_QUOTE_MID_GREEKS_GAMMA_SOURCE,
3286
3292
  computeThetaQuoteMidGreekRow,
3293
+ bulkQuoteRootsForUnderlying,
3287
3294
  ThetaDataProvider,
3288
3295
  getProvider,
3289
3296
  _resetProvider
3290
3297
  };
3291
- //# sourceMappingURL=chunk-VDU25Z6X.js.map
3298
+ //# sourceMappingURL=chunk-DHHEGI3Q.js.map