lit-forge-mcp 0.13.0 → 0.14.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 CHANGED
@@ -4,15 +4,25 @@
4
4
  [![license](https://img.shields.io/npm/l/lit-forge-mcp.svg)](./LICENSE)
5
5
  [![node](https://img.shields.io/node/v/lit-forge-mcp.svg)](https://nodejs.org)
6
6
 
7
- **個人資産形成プランナー(つみたて NISA・iDeCo)と主要マクロ指標の取得**を Model Context Protocol(MCP)経由で AI から直接呼び出せるようにする stdio サーバーです。
7
+ **個人資産形成シミュレーション・主要市況スナップショット・経済指標発表予定・地政学イベント** を、AI から直接呼び出せる Model Context Protocol(MCP)の stdio サーバーです(**18 ツール**)。
8
8
 
9
9
  Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI クライアントで動作します。
10
10
 
11
- > **v0.2.0 で「金融・個人投資家特化」にピボット**、**v0.3.0 で「毎朝の市況チェック」系 3 ツールを追加**、**v0.4.0 で銘柄数 9 28 に拡大 + 5 つの分析ツール追加**、**v0.6.0 で配当履歴・アナリストコンセンサス・ファンダメンタル指標を追加**、**v0.7.0 で経済イベントに地政学カテゴリ(要人訪問・首脳会談)と複数日イベント(endDate)対応を追加**、**v0.8.0 で地政学イベント専用ツール `get_geopolitical_events` を新設**(首脳会談・国際サミット・主要国選挙・地政学リスクの 4 サブカテゴリを market implications 付きで返す + 一次ソース突合の verify インフラ整備)、**v0.9.0 で地政学ツールを 2 系統に分離・リアルタイム化**: 旧 `get_geopolitical_events` を `get_geopolitical_calendar` にリネーム(用途を確定スケジュール専用に明確化)、新ツール `get_geopolitical_pulse` を追加(BBC World / Al Jazeera / Google News の主要通信社 RSS を集約し、進行中の地政学リスク・突発イベントをリアルタイムで返す)しました。
11
+ > **最新版ハイライト(v0.14.0)**: ホワイトハウス OMB/OIRA **PFEI (Principal Federal Economic Indicators) Schedule** を統合し、BLS 三大指標(雇用統計・CPI・PPI)の **発表予定** が自動取得対応に。あわせて `get_us_macro_latest` 4 7 系列へ拡張(コア CPI / コア PPI / 平均時給を追加)。
12
12
 
13
- ## 提供ツール(17 種)
13
+ Claude / GPT / Cursor との対話のなかで、たとえば次のような問いを 1 ターンで返せます:
14
14
 
15
- ### 個人資産形成プランナー(純関数、外部 API 不要)
15
+ - 「老後資金、足りる?」「月いくら積み立てれば 2,000 万円届く?」
16
+ - 「今日の市況を 28 指標で要約して」「セクターでどこが強い?」
17
+ - 「**次の雇用統計はいつ?**」「**今月の FRB 発表予定をまとめて**」
18
+ - 「**直近の CPI と PPI の前年同月比は?**」「**コア CPI とコア PPI を比較して**」
19
+ - 「今月の G7 サミットは?」「**今のイラン情勢のヘッドラインは?**」
20
+
21
+ ## 提供ツール(18 種)
22
+
23
+ ### 個人資産形成プランナー(純関数、外部 API 不要) — 4 ツール
24
+
25
+ つみたて NISA / iDeCo / 退職プランニング向けの月次複利シミュレーション群。
16
26
 
17
27
  | ツール名 | 説明 |
18
28
  |---|---|
@@ -21,44 +31,56 @@ Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI
21
31
  | `calculate_required_monthly` | 目標金額・現在の貯蓄・年利・年数から、達成に必要な毎月の積立額を逆算 |
22
32
  | `calculate_compound_interest` | 元本(一括)と月次積立を月次複利で評価する汎用複利計算ツール |
23
33
 
24
- ### 市況・経済イベント(**HTTP 通信あり**)
34
+ ### 市況スナップショット & 個別銘柄 — 2 ツール
25
35
 
26
36
  | ツール名 | 説明 |
27
37
  |---|---|
28
38
  | `get_market_snapshot` | USD/JPY・EUR/JPY・GBP/JPY・AUD/JPY・EUR/USD・CHF/JPY・ドル指数・日経平均・TOPIX・NY ダウ・S&P 500・NASDAQ・VIX・NYSE FANG+・SOX・DAX・FTSE・上海総合・ハンセン・KOSPI・SENSEX・米10年/5年金利・金・原油・銅・ビットコイン・イーサリアム の主要 28 指標を一括取得 |
29
- | `get_economic_events_today` | 当日 or 今週の経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・中国 PMI 等のマクロ指標)を重要度付きで返す。`category` `macro` / `policy` に絞り込み可能。期間イベント(ジャクソンホール会議等)は `endDate` で複数日対応。半年分を手動キュレーション。※ v0.9.0 で地政学イベントは `get_geopolitical_calendar` / `get_geopolitical_pulse` に分離 |
30
- | `get_geopolitical_calendar` | **v0.9.0 で `get_geopolitical_events` からリネーム**。**確定済み公式スケジュール専用**: 本日・今週・今月の地政学イベントを 4 サブカテゴリ(summit / bilateral / election / risk)で返す。`marketImplications` / `participants` / `sourceUrl` 付き。半年に 1 回 PR で手動更新の静的データ。進行中の地政学リスクは `get_geopolitical_pulse` を使用 |
31
- | `get_geopolitical_pulse` | **v0.9.0 新規**。**リアルタイム速報**: BBC World・Al Jazeera・Google News(トピック検索)の RSS を並列取得し、進行中の地政学イベント(首脳会談・紛争・制裁・封鎖シナリオ等)を最新順で返す。`topic`: us-china / middle-east / ukraine / japan / global。記事メタデータ(タイトル・配信元・配信日時・URL)のみで、解釈は呼び出し側 LLM の責務 |
32
- | `get_quote` | 任意の Yahoo Finance ティッカー(株・為替・指数・コモディティ・暗号資産)の現在値・前日比を取得。例: `AAPL` / `^DJI` / `BTC-USD`。`includeFundamentals: true` で PER / PBR / 配当利回り / ベータ / 時価総額も取得(v0.6.0) |
39
+ | `get_quote` | 任意の Yahoo Finance ティッカー(株・為替・指数・コモディティ・暗号資産)の現在値・前日比を取得。例: `AAPL` / `^DJI` / `BTC-USD`。`includeFundamentals: true` PER / PBR / 配当利回り / ベータ / 時価総額も併せて取得 |
33
40
 
34
- ### 分析ツール(v0.4.0 新規)
41
+ ### 市況俯瞰 — 5 ツール
35
42
 
36
43
  | ツール名 | 説明 |
37
44
  |---|---|
38
45
  | `get_market_thermometer` | VIX・S&P 500・米10年金利・ドル指数を合成した 0-100 のリスクオン/オフ・スコア + 過去 30 営業日推移 |
39
46
  | `get_performance_ranking` | 28 銘柄を `1d`/`1w`/`1m` のパフォーマンスでソート、上位/下位 N 件を返す |
40
47
  | `get_yield_spread` | 米10年-5年イールドスプレッド(プラス=順イールド / マイナス=逆イールド) |
41
- | `get_market_sessions` | 主要 4 市場(東京・上海・ロンドン・NY)の現在の取引時間ステータス(open / pre-open / closed / **holiday**、v0.5.0 で祝日対応) |
48
+ | `get_market_sessions` | 主要 4 市場(東京・上海・ロンドン・NY)の現在の取引時間ステータス(open / pre-open / closed / holiday、祝日対応) |
42
49
  | `get_sector_heatmap` | 米株セクター ETF(SPDR、11 セクター)の前日比一覧 |
43
50
 
44
- ### 個別株の深掘りツール(v0.6.0 新規)
51
+ ### 個別株の深掘り — 2 ツール
45
52
 
46
53
  | ツール名 | 説明 |
47
54
  |---|---|
48
55
  | `get_dividend_history` | 個別株・ETF の過去 N 年の配当履歴と暦年合計を取得(`years`: 1/3/5/10、既定 5)。NISA 成長投資枠で配当銘柄を検討する一次情報として使用 |
49
56
  | `get_analyst_consensus` | 個別株のアナリスト推奨レーティング(強気買い〜強気売り)・目標株価(平均/高値/安値)・月別推奨内訳を取得。米国株は coverage が厚く、TSE 銘柄や ETF は欠損しやすい |
50
57
 
51
- ### 米マクロ最新値(v0.13.0 新規)
58
+ ### 経済イベント & マクロ最新値 — 3 ツール
59
+
60
+ 「**次にいつ発表されるか**」(カレンダー系 2 つ)と「**今の数字はいくつか**」(最新値 1 つ)を分担。
61
+
62
+ | ツール名 | 説明 |
63
+ |---|---|
64
+ | `get_economic_events_today` | 当日 or 今週の経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・中国 PMI 等)を重要度付きで返す。`category` で `macro` / `policy` に絞り込み可能。期間イベント(ジャクソンホール会議等)は `endDate` で複数日対応。半年分を手動キュレーション |
65
+ | `get_economic_release_pulse` | **6 公式機関の発表予定を実取得**: BEA / NY 連銀 / FRB / **BLS(PFEI 経由)** / 内閣府 / 日銀 のカレンダーを並列取得し、本日・今週・今月の経済指標リリース予定を統合して返す。BLS 三大指標の発表予定は v0.14.0 でホワイトハウス OMB/OIRA の PFEI Schedule 統合により対応 |
66
+ | `get_us_macro_latest` | **米マクロ 7 系列の最新発表値**: 雇用統計・失業率・CPI・コア CPI・PPI・コア PPI・平均時給 を BLS Public Data API v2 から 1 リクエストで取得。値 + 前月比 + 前年同月比を返す。API key 不要・無認証 1 日 25 リクエスト・6 時間キャッシュ |
67
+
68
+ ### 地政学 — 2 ツール
69
+
70
+ 確定スケジュール(カレンダー)とリアルタイム速報(パルス)の 2 系統。
52
71
 
53
72
  | ツール名 | 説明 |
54
73
  |---|---|
55
- | `get_us_macro_latest` | **米マクロ三大指標**(雇用統計・CPI・PPI)+ 失業率の最新発表値と前月比・前年同月比を BLS Public Data API v2 から取得(API key 不要・無認証)。`get_economic_release_pulse` が答える「次にいつ発表されるか」に対し、本ツールは「今の数字はいくつか」を答える |
74
+ | `get_geopolitical_calendar` | **確定済み公式スケジュール**: 本日・今週・今月の地政学イベントを 4 サブカテゴリ(summit / bilateral / election / risk)で返す。`marketImplications` / `participants` / `sourceUrl` 付き。半年に 1 回 PR で手動更新の静的データ |
75
+ | `get_geopolitical_pulse` | **リアルタイム速報**: BBC World・Al Jazeera・Google News(トピック検索)の RSS を並列取得し、進行中の地政学イベント(首脳会談・紛争・制裁・封鎖シナリオ等)を最新順で返す。`topic`: us-china / middle-east / ukraine / japan / global。記事メタデータ(タイトル・配信元・配信日時・URL)のみで、解釈は呼び出し側 LLM の責務 |
76
+
77
+ ## HTTP 通信について
78
+
79
+ 市況・分析・個別株系ツールは **Yahoo Finance API(query1.finance.yahoo.com / query2.finance.yahoo.com)** へ、`get_us_macro_latest` は **BLS Public Data API v2(api.bls.gov)** へ、`get_economic_release_pulse` は **各公式機関のカレンダーページ**へ、`get_geopolitical_pulse` は **BBC / Al Jazeera / Google News の RSS** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。
56
80
 
57
- > ⚠ **HTTP 通信について**: 市況・分析・個別株系ツールは **Yahoo Finance API(query1.finance.yahoo.com / query2.finance.yahoo.com)** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。データは約 1 時間遅れの参考値で、**投資助言ではなく情報集約**として提供しています。
58
- >
59
- > v0.6.0 で `get_quote includeFundamentals=true` / `get_dividend_history` / `get_analyst_consensus` の 3 ルートが Yahoo Finance v10 quoteSummary(crumb 認証あり)を経由するため、`yahoo-finance2` パッケージを依存に追加しました。
81
+ データは数十分〜1 時間遅れの参考値で、**投資助言ではなく情報集約**として提供しています。
60
82
 
61
- Claude / GPT / Cursor との対話の中で「老後資金大丈夫?」「月いくら積み立てれば?」「今日の市況を要約して」「FOMC は今週いつ?」「マーケット温度計は?」「セクターでどこが強い?」「今月の G7 サミットは?」「次の米中首脳会談はいつ?」「**今のイラン情勢は?**」「**ウクライナ和平の最新ニュースは?**」を即座に試算・確認できます。
83
+ > `get_quote` の fundamentals / `get_dividend_history` / `get_analyst_consensus` Yahoo Finance v10 quoteSummary(crumb 認証あり)を経由するため、依存パッケージとして `yahoo-finance2` を利用します。
62
84
 
63
85
  ## インストール / 設定
64
86
 
@@ -119,7 +141,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":
119
141
  {"jsonrpc":"2.0","id":2,"method":"tools/list"}' | node dist/index.js
120
142
  ```
121
143
 
122
- `tools/list` のレスポンスに 17 ツールが並べば成功です。
144
+ `tools/list` のレスポンスに 18 ツールが並べば成功です。
123
145
 
124
146
  ## 使用例
125
147
 
@@ -131,21 +153,25 @@ Claude にこんな依頼ができます:
131
153
  - 「100万円を年利5%で30年複利運用したらいくらになる?」
132
154
  - 「月3万円を年利6%で20年積み立てたら?」
133
155
 
134
- **市況・経済イベント(v0.3.0)**
156
+ **市況スナップショット**
135
157
  - 「今日の市況を要約して」「主要指標の前日比を表で見せて」
136
- - 「今週の経済イベントは?特に FOMC や日銀の予定を教えて」
137
158
  - 「米10年金利と日経平均の動きから、今のリスクオン度合いをコメントして」
138
159
  - 「BTC-USD の今の値は?」「ポンド円(GBPJPY=X)を教えて」
139
160
 
140
- **個別株の深掘り(v0.6.0)**
161
+ **個別株の深掘り**
141
162
  - 「KO の過去 10 年の配当推移を見せて」「VYM の年次配当合計は?」
142
163
  - 「NVDA のアナリスト目標株価と推奨レーティングは?」
143
164
  - 「AAPL の PER / PBR / 配当利回り / ベータをまとめて」(`get_quote` で `includeFundamentals=true`)
144
165
 
145
- **地政学イベント(v0.8.0)**
166
+ **経済指標カレンダー & 最新値**
167
+ - 「今週の経済イベントは?特に FOMC や日銀の予定を教えて」
168
+ - 「**次の雇用統計はいつ?**」「**今月の FRB と内閣府の発表予定をまとめて**」
169
+ - 「**直近の CPI と PPI を前月比・前年同月比で**」「**コア CPI とコア PPI を比較して**」
170
+
171
+ **地政学イベント**
146
172
  - 「今週の地政学イベントは?」「今月の G7 サミットの予定は?」
147
- - 「次の米中首脳会談はいつ?」「ベッセント訪日の詳細を教えて」
148
- - 「今月の主要国選挙をまとめて」「日本に関係する首脳会談だけ抽出して」(`country=["JP"]` で絞り込み)
173
+ - 「次の米中首脳会談はいつ?」「日本に関係する首脳会談だけ抽出して」(`country=["JP"]` で絞り込み)
174
+ - 「**今のイラン情勢のヘッドラインは?**」「**ウクライナ和平の最新ニュースは?**」
149
175
 
150
176
  ## 投資判断の免責
151
177
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,80 @@
1
+ // PFEI パーサーの純関数テスト。
2
+ // 実 PDF を pdftotext -layout で抽出した実テキスト断片を fixture として使用。
3
+ import { describe, it, expect } from "vitest";
4
+ import { readFileSync } from "node:fs";
5
+ import { join, dirname } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ import { parsePfei } from "../pfei-parser.js";
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ const FIXTURE = readFileSync(join(__dirname, "fixtures", "pfei-2026-bls-section.txt"), "utf-8");
10
+ const SOURCE_URL = "https://www.whitehouse.gov/wp-content/uploads/2025/09/pfei_schedule_release_dates_cy2026.pdf";
11
+ describe("parsePfei (2026 BLS fixture)", () => {
12
+ const result = parsePfei(FIXTURE, SOURCE_URL);
13
+ it("PDF タイトルから年を抽出する", () => {
14
+ expect(result.year).toBe(2026);
15
+ });
16
+ it("source / sourceUrl を保持する", () => {
17
+ expect(result.source).toMatch(/PFEI/);
18
+ expect(result.sourceUrl).toBe(SOURCE_URL);
19
+ });
20
+ it("BLS 三大指標を全て抽出する", () => {
21
+ const keys = result.indicators.map((i) => i.key).sort();
22
+ expect(keys).toEqual(["cpi", "employment", "ppi"]);
23
+ });
24
+ it("各指標 12 ヶ月分のリリース日を返す", () => {
25
+ for (const ind of result.indicators) {
26
+ expect(ind.releases).toHaveLength(12);
27
+ const months = ind.releases.map((r) => r.month);
28
+ expect(months).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
29
+ }
30
+ });
31
+ it("雇用統計の発表日を正しく抽出する (PFEI 2026 原本)", () => {
32
+ const emp = result.indicators.find((i) => i.key === "employment");
33
+ expect(emp).toBeDefined();
34
+ // PDF 原本: 9, 6, 6, 3, 8, 5, 2, 7, 4, 2, 6, 4
35
+ expect(emp.releases.map((r) => r.day)).toEqual([
36
+ 9, 6, 6, 3, 8, 5, 2, 7, 4, 2, 6, 4,
37
+ ]);
38
+ });
39
+ it("CPI の発表日を正しく抽出する (PFEI 2026 原本)", () => {
40
+ const cpi = result.indicators.find((i) => i.key === "cpi");
41
+ expect(cpi).toBeDefined();
42
+ // PDF 原本: 13, 11, 11, 10, 12, 10, 14, 12, 11, 14, 10, 10
43
+ expect(cpi.releases.map((r) => r.day)).toEqual([
44
+ 13, 11, 11, 10, 12, 10, 14, 12, 11, 14, 10, 10,
45
+ ]);
46
+ });
47
+ it("PPI の発表日を正しく抽出する (PFEI 2026 原本)", () => {
48
+ const ppi = result.indicators.find((i) => i.key === "ppi");
49
+ expect(ppi).toBeDefined();
50
+ // PDF 原本: 14, 12, 12, 14, 13, 11, 15, 13, 10, 15, 13, 15
51
+ expect(ppi.releases.map((r) => r.day)).toEqual([
52
+ 14, 12, 12, 14, 13, 11, 15, 13, 10, 15, 13, 15,
53
+ ]);
54
+ });
55
+ it("全指標が BLS / 08:30 ET / previous month 属性を持つ", () => {
56
+ for (const ind of result.indicators) {
57
+ expect(ind.agency).toBe("BLS");
58
+ expect(ind.timeEt).toBe("08:30");
59
+ expect(ind.dataDescription).toMatch(/previous month/);
60
+ }
61
+ });
62
+ it("妥当な日 (1-31) のみ含む", () => {
63
+ for (const ind of result.indicators) {
64
+ for (const r of ind.releases) {
65
+ expect(r.day).toBeGreaterThanOrEqual(1);
66
+ expect(r.day).toBeLessThanOrEqual(31);
67
+ }
68
+ }
69
+ });
70
+ });
71
+ describe("parsePfei (エラーパス)", () => {
72
+ it("年がないテキストは throw", () => {
73
+ expect(() => parsePfei("no title here", SOURCE_URL)).toThrow(/year/);
74
+ });
75
+ it("BLS セクションがないテキストは throw", () => {
76
+ const text = "PRINCIPAL FEDERAL ECONOMIC INDICATORS FOR 2026\n(no BLS section)";
77
+ expect(() => parsePfei(text, SOURCE_URL)).toThrow(/BLS/);
78
+ });
79
+ });
80
+ //# sourceMappingURL=pfei-parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pfei-parser.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/pfei-parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ReleaseAdapter, ReleaseEvent } from "../types.js";
2
+ export declare function pfeiToReleaseEvents(): ReleaseEvent[];
3
+ export declare const pfeiAdapter: ReleaseAdapter;
@@ -0,0 +1,50 @@
1
+ // PFEI アダプタ(v0.14.0 新設)。
2
+ //
3
+ // ホワイトハウス (OMB/OIRA) が年初に公開する Principal Federal Economic
4
+ // Indicators の Schedule PDF を一次ソースに、BLS 三大指標
5
+ // (雇用統計・CPI・PPI) の年間発表予定を ReleaseEvent[] に展開する。
6
+ //
7
+ // 設計背景:
8
+ // - BLS 公式の HTML schedule と RSS は Akamai bot 管理で 403 を返すため
9
+ // 直接の自動取得は不可能([[feedback_lit_forge_mcp_bls_access_constraint]])。
10
+ // - ホワイトハウスの PFEI PDF は bot ブロックなしで取得でき、米連邦経済指標の
11
+ // 全主要発表予定を一括カバーする。
12
+ // - PDF パースは scripts/update-pfei-schedule.mjs が運営マシン側で実行し、
13
+ // 結果を src/lib/pfei-schedule-data.ts に TS として焼き込む。
14
+ // MCP サーバはランタイムで PDF を取りに行かないため bot ブロックの影響を受けない。
15
+ // - 年初 (1 月) や PFEI 改訂時に再実行して上書きする運用。
16
+ //
17
+ // 他アダプタ (BEA / NY 連銀 / FRB) と違い HTTP fetch を行わず、ビルド時に
18
+ // 焼き込まれた静的データを返すだけなのでキャッシュ不要・常に成功扱い。
19
+ import { etToJst } from "../util.js";
20
+ import { PFEI_SCHEDULES } from "../../pfei-schedule-data.js";
21
+ function ymd(year, month, day) {
22
+ return `${year}-${String(month).padStart(2, "0")}-${String(day).padStart(2, "0")}`;
23
+ }
24
+ // PFEI スケジュールデータを ReleaseEvent[] に展開する純関数(テスト用 export)。
25
+ export function pfeiToReleaseEvents() {
26
+ const out = [];
27
+ for (const schedule of PFEI_SCHEDULES) {
28
+ for (const ind of schedule.indicators) {
29
+ for (const r of ind.releases) {
30
+ const ymdEt = ymd(schedule.year, r.month, r.day);
31
+ const { date, time } = etToJst(ymdEt, ind.timeEt);
32
+ out.push({
33
+ date,
34
+ time,
35
+ country: "US",
36
+ name: ind.name,
37
+ source: "BLS (via PFEI)",
38
+ sourceUrl: schedule.sourceUrl,
39
+ });
40
+ }
41
+ }
42
+ }
43
+ return out;
44
+ }
45
+ export const pfeiAdapter = {
46
+ key: "pfei",
47
+ label: "BLS(PFEI 公式スケジュール: 雇用統計・CPI・PPI)",
48
+ fetchEvents: async () => pfeiToReleaseEvents(),
49
+ };
50
+ //# sourceMappingURL=pfei.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pfei.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/pfei.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,EAAE;AACF,yDAAyD;AACzD,6CAA6C;AAC7C,gDAAgD;AAChD,EAAE;AACF,QAAQ;AACR,6DAA6D;AAC7D,qEAAqE;AACrE,mDAAmD;AACnD,uBAAuB;AACvB,6DAA6D;AAC7D,sDAAsD;AACtD,sDAAsD;AACtD,wCAAwC;AACxC,EAAE;AACF,sDAAsD;AACtD,qCAAqC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACnD,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI;oBACJ,IAAI;oBACJ,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,gBAAgB;oBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,EAAE;CAC/C,CAAC"}
@@ -7,14 +7,16 @@ import { caoAdapter } from "./adapters/cao.js";
7
7
  import { bojAdapter } from "./adapters/boj.js";
8
8
  import { nyfedAdapter } from "./adapters/nyfed.js";
9
9
  import { frbAdapter } from "./adapters/frb.js";
10
+ import { pfeiAdapter } from "./adapters/pfei.js";
10
11
  // 登録アダプタ。新ソース追加時はここに 1 行足す。
11
- // 次サイクル候補: BLS(雇用統計・CPI・PPI)、総務省統計局(日 CPI)、FOMC。
12
+ // 次サイクル候補: 総務省統計局(日 CPI)、FOMC。
12
13
  const ADAPTERS = [
13
14
  beaAdapter,
14
15
  caoAdapter,
15
16
  bojAdapter,
16
17
  nyfedAdapter,
17
18
  frbAdapter,
19
+ pfeiAdapter,
18
20
  ];
19
21
  // date(YYYY-MM-DD) が [from, to] の範囲内か(文字列比較で OK)。
20
22
  function inRange(date, from, to) {
@@ -1 +1 @@
1
- {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type PfeiIndicator = {
2
+ key: "employment" | "cpi" | "ppi";
3
+ name: string;
4
+ agency: "BLS";
5
+ timeEt: string;
6
+ dataDescription: string;
7
+ releases: Array<{
8
+ month: number;
9
+ day: number;
10
+ }>;
11
+ };
12
+ export type PfeiSchedule = {
13
+ year: number;
14
+ source: string;
15
+ sourceUrl: string;
16
+ parsedAt: string;
17
+ indicators: PfeiIndicator[];
18
+ };
19
+ export declare function parsePfei(text: string, sourceUrl: string): PfeiSchedule;
@@ -0,0 +1,108 @@
1
+ // PFEI (Principal Federal Economic Indicators) スケジュール PDF のパーサー(v0.14.0 新設)。
2
+ //
3
+ // 背景: BLS は HTML schedule / RSS への bot アクセスを 403 で拒否しているため
4
+ // ([[feedback_lit_forge_mcp_bls_access_constraint]])、米マクロ三大指標
5
+ // (雇用統計・CPI・PPI) の発表予定を自動取得する道が長らく無かった。
6
+ // ホワイトハウス (OMB/OIRA) が年初に公開する PFEI スケジュール PDF は
7
+ // bot ブロックなしで取得でき、BLS/BEA/Census の全主要指標を一括カバーする。
8
+ //
9
+ // 本モジュールは pdftotext -layout で抽出したテキストを入力に取り、
10
+ // BLS 三大指標の年間スケジュールを構造化 JSON に変換する純関数を提供する。
11
+ // 実 PDF の取得と pdftotext 実行はテスト容易性のためここでは行わない
12
+ // (運用スクリプト scripts/update-pfei-schedule.mjs が責任を持つ)。
13
+ const INDICATORS = [
14
+ {
15
+ key: "employment",
16
+ label: "The Employment Situation",
17
+ name: "米 雇用統計 (Employment Situation)",
18
+ agency: "BLS",
19
+ timeEt: "08:30",
20
+ },
21
+ {
22
+ key: "ppi",
23
+ label: "Producer Price Indexes",
24
+ name: "米 PPI (Producer Price Indexes)",
25
+ agency: "BLS",
26
+ timeEt: "08:30",
27
+ },
28
+ {
29
+ key: "cpi",
30
+ label: "Consumer Price Index",
31
+ name: "米 CPI (Consumer Price Index)",
32
+ agency: "BLS",
33
+ timeEt: "08:30",
34
+ },
35
+ ];
36
+ // PFEI PDF を pdftotext -layout で抽出した text を入力に取り、
37
+ // BLS 三大指標の年間スケジュールを返す。
38
+ export function parsePfei(text, sourceUrl) {
39
+ // 年は PDF タイトル "PRINCIPAL FEDERAL ECONOMIC INDICATORS FOR YYYY" から
40
+ const yearMatch = text.match(/PRINCIPAL FEDERAL ECONOMIC INDICATORS FOR (\d{4})/);
41
+ if (!yearMatch) {
42
+ throw new Error("year not found in PDF title");
43
+ }
44
+ const year = Number(yearMatch[1]);
45
+ // BLS セクションを切り出す: "BUREAU OF LABOR STATISTICS" から次の主要省庁/部局ヘッダまで
46
+ const blsStart = text.indexOf("BUREAU OF LABOR STATISTICS");
47
+ if (blsStart < 0) {
48
+ throw new Error("BLS section not found in PDF");
49
+ }
50
+ // 次の上位ヘッダ候補(経験的に PFEI に出る他部局名)
51
+ const SECTION_BREAK = /\b(BUREAU OF ECONOMIC ANALYSIS|FEDERAL RESERVE|CENSUS BUREAU|OFFICE OF MANAGEMENT|DEPARTMENT OF TREASURY|ENERGY INFORMATION|NATIONAL AGRICULTURAL)\b/;
52
+ // BLS ヘッダ自体にマッチしないよう少し進めてから検索
53
+ const tail = text.slice(blsStart + "BUREAU OF LABOR STATISTICS".length);
54
+ const breakRel = tail.search(SECTION_BREAK);
55
+ const blsBlock = breakRel >= 0
56
+ ? text.slice(blsStart, blsStart + "BUREAU OF LABOR STATISTICS".length + breakRel)
57
+ : text.slice(blsStart);
58
+ // 各指標ラベルの出現位置を全部拾い、文書順に並べ替えて区間切り出しの基準にする
59
+ const positions = INDICATORS.map((ind) => ({
60
+ ind,
61
+ pos: blsBlock.indexOf(ind.label),
62
+ }))
63
+ .filter((p) => p.pos >= 0)
64
+ .sort((a, b) => a.pos - b.pos);
65
+ if (positions.length === 0) {
66
+ throw new Error("no BLS indicators found in PDF");
67
+ }
68
+ const indicators = [];
69
+ for (let i = 0; i < positions.length; i++) {
70
+ const { ind, pos } = positions[i];
71
+ // 次の指標ラベルまでをこの指標のセグメントとする
72
+ const nextPos = i + 1 < positions.length ? positions[i + 1].pos : blsBlock.length;
73
+ const segment = blsBlock.slice(pos, nextPos);
74
+ // セグメント内の 1-2 桁整数を全部抽出("--" や 4 桁年は除外)
75
+ // 「数字に隣接する数字でない」境界条件で 1-2 桁の整数のみ拾う
76
+ const nums = [...segment.matchAll(/(?<![\d-])(\d{1,2})(?![\d])/g)].map((m) => Number(m[1]));
77
+ if (nums.length < 12) {
78
+ throw new Error(`indicator "${ind.name}": only ${nums.length} numbers found in segment (expected >= 12)`);
79
+ }
80
+ // 先頭 12 個を月別 (1-12) の発表日として採用。
81
+ // セグメント終端付近には次指標 (Real Earnings / Productivity 等) の数字が
82
+ // 混じるため、末尾 12 個ではなく先頭 12 個を取る。INDICATORS のラベル
83
+ // 文字列には数字を含まないので、ラベル直後にあるはずの月次日付が確実に拾える。
84
+ const days = nums.slice(0, 12);
85
+ // 妥当性チェック: 全て 1-31 の範囲
86
+ for (const d of days) {
87
+ if (d < 1 || d > 31) {
88
+ throw new Error(`indicator "${ind.name}": invalid day ${d} (must be 1-31)`);
89
+ }
90
+ }
91
+ indicators.push({
92
+ key: ind.key,
93
+ name: ind.name,
94
+ agency: ind.agency,
95
+ timeEt: ind.timeEt,
96
+ dataDescription: "Data are for previous month",
97
+ releases: days.map((day, idx) => ({ month: idx + 1, day })),
98
+ });
99
+ }
100
+ return {
101
+ year,
102
+ source: "PFEI Schedule of Release Dates for Principal Federal Economic Indicators",
103
+ sourceUrl,
104
+ parsedAt: new Date().toISOString(),
105
+ indicators,
106
+ };
107
+ }
108
+ //# sourceMappingURL=pfei-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pfei-parser.js","sourceRoot":"","sources":["../../src/lib/pfei-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PfeiSchedule } from "./pfei-parser.js";
2
+ export declare const PFEI_SCHEDULES: ReadonlyArray<PfeiSchedule>;
@@ -0,0 +1,185 @@
1
+ // PFEI スケジュールデータ。
2
+ // scripts/update-pfei-schedule.mjs により自動生成 (手動編集禁止)。
3
+ // 再生成: `npm run build && node scripts/update-pfei-schedule.mjs`
4
+ export const PFEI_SCHEDULES = [
5
+ {
6
+ "year": 2026,
7
+ "source": "PFEI Schedule of Release Dates for Principal Federal Economic Indicators",
8
+ "sourceUrl": "https://www.whitehouse.gov/wp-content/uploads/2025/09/pfei_schedule_release_dates_cy2026.pdf",
9
+ "parsedAt": "2026-05-16T04:25:09.632Z",
10
+ "indicators": [
11
+ {
12
+ "key": "employment",
13
+ "name": "米 雇用統計 (Employment Situation)",
14
+ "agency": "BLS",
15
+ "timeEt": "08:30",
16
+ "dataDescription": "Data are for previous month",
17
+ "releases": [
18
+ {
19
+ "month": 1,
20
+ "day": 9
21
+ },
22
+ {
23
+ "month": 2,
24
+ "day": 6
25
+ },
26
+ {
27
+ "month": 3,
28
+ "day": 6
29
+ },
30
+ {
31
+ "month": 4,
32
+ "day": 3
33
+ },
34
+ {
35
+ "month": 5,
36
+ "day": 8
37
+ },
38
+ {
39
+ "month": 6,
40
+ "day": 5
41
+ },
42
+ {
43
+ "month": 7,
44
+ "day": 2
45
+ },
46
+ {
47
+ "month": 8,
48
+ "day": 7
49
+ },
50
+ {
51
+ "month": 9,
52
+ "day": 4
53
+ },
54
+ {
55
+ "month": 10,
56
+ "day": 2
57
+ },
58
+ {
59
+ "month": 11,
60
+ "day": 6
61
+ },
62
+ {
63
+ "month": 12,
64
+ "day": 4
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ "key": "ppi",
70
+ "name": "米 PPI (Producer Price Indexes)",
71
+ "agency": "BLS",
72
+ "timeEt": "08:30",
73
+ "dataDescription": "Data are for previous month",
74
+ "releases": [
75
+ {
76
+ "month": 1,
77
+ "day": 14
78
+ },
79
+ {
80
+ "month": 2,
81
+ "day": 12
82
+ },
83
+ {
84
+ "month": 3,
85
+ "day": 12
86
+ },
87
+ {
88
+ "month": 4,
89
+ "day": 14
90
+ },
91
+ {
92
+ "month": 5,
93
+ "day": 13
94
+ },
95
+ {
96
+ "month": 6,
97
+ "day": 11
98
+ },
99
+ {
100
+ "month": 7,
101
+ "day": 15
102
+ },
103
+ {
104
+ "month": 8,
105
+ "day": 13
106
+ },
107
+ {
108
+ "month": 9,
109
+ "day": 10
110
+ },
111
+ {
112
+ "month": 10,
113
+ "day": 15
114
+ },
115
+ {
116
+ "month": 11,
117
+ "day": 13
118
+ },
119
+ {
120
+ "month": 12,
121
+ "day": 15
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "key": "cpi",
127
+ "name": "米 CPI (Consumer Price Index)",
128
+ "agency": "BLS",
129
+ "timeEt": "08:30",
130
+ "dataDescription": "Data are for previous month",
131
+ "releases": [
132
+ {
133
+ "month": 1,
134
+ "day": 13
135
+ },
136
+ {
137
+ "month": 2,
138
+ "day": 11
139
+ },
140
+ {
141
+ "month": 3,
142
+ "day": 11
143
+ },
144
+ {
145
+ "month": 4,
146
+ "day": 10
147
+ },
148
+ {
149
+ "month": 5,
150
+ "day": 12
151
+ },
152
+ {
153
+ "month": 6,
154
+ "day": 10
155
+ },
156
+ {
157
+ "month": 7,
158
+ "day": 14
159
+ },
160
+ {
161
+ "month": 8,
162
+ "day": 12
163
+ },
164
+ {
165
+ "month": 9,
166
+ "day": 11
167
+ },
168
+ {
169
+ "month": 10,
170
+ "day": 14
171
+ },
172
+ {
173
+ "month": 11,
174
+ "day": 10
175
+ },
176
+ {
177
+ "month": 12,
178
+ "day": 10
179
+ }
180
+ ]
181
+ }
182
+ ]
183
+ }
184
+ ];
185
+ //# sourceMappingURL=pfei-schedule-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pfei-schedule-data.js","sourceRoot":"","sources":["../../src/lib/pfei-schedule-data.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- type IndicatorKey = "nonfarmPayrolls" | "unemploymentRate" | "cpi" | "ppi";
1
+ type IndicatorKey = "nonfarmPayrolls" | "unemploymentRate" | "cpi" | "ppi" | "coreCpi" | "corePpi" | "averageHourlyEarnings";
2
2
  type SeriesDef = {
3
3
  id: string;
4
4
  key: IndicatorKey;
@@ -35,12 +35,30 @@ const SERIES = [
35
35
  displayName: "米 CPI(都市部全消費者、1982-84=100)",
36
36
  unit: "index",
37
37
  },
38
+ {
39
+ id: "CUUR0000SA0L1E",
40
+ key: "coreCpi",
41
+ displayName: "米 コア CPI(食料・エネルギー除く、1982-84=100)",
42
+ unit: "index",
43
+ },
38
44
  {
39
45
  id: "WPSFD4",
40
46
  key: "ppi",
41
47
  displayName: "米 PPI(最終需要、2009=100)",
42
48
  unit: "index",
43
49
  },
50
+ {
51
+ id: "WPSFD49104",
52
+ key: "corePpi",
53
+ displayName: "米 コア PPI(最終需要、食料・エネルギー除く、2009=100)",
54
+ unit: "index",
55
+ },
56
+ {
57
+ id: "CES0500000003",
58
+ key: "averageHourlyEarnings",
59
+ displayName: "米 平均時給(民間部門、季調済)",
60
+ unit: "USD/hour",
61
+ },
44
62
  ];
45
63
  // "M01" -> 1。月レコード以外(M13=年間平均など)は null。
46
64
  function periodToMonth(period) {
@@ -1 +1 @@
1
- {"version":3,"file":"us-macro-latest.js","sourceRoot":"","sources":["../../src/lib/us-macro-latest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"us-macro-latest.js","sourceRoot":"","sources":["../../src/lib/us-macro-latest.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,19 @@
1
- // 経済指標リリース予定 リアルタイム取得ツール(v0.11.0 新設、v0.12.0 で NY 連銀・FRB 追加)。
1
+ // 経済指標リリース予定 リアルタイム取得ツール(v0.11.0 新設、v0.12.0 で NY 連銀・FRB 追加、v0.14.0 で BLS(PFEI 経由)追加)。
2
2
  //
3
3
  // 役割分担:
4
- // - 本ツール: 公式機関のリリースカレンダーを実取得し、収録漏れの無い「網羅性」を担保
4
+ // - 本ツール: 公式機関のリリースカレンダーを取得し、収録漏れの無い「網羅性」を担保
5
5
  // - get_economic_events_today: 手動キュレーション(★★★ 中心・半年 1 回更新・verify 済み)
6
6
  // 両者は補完関係。市況サマリーでは両方を併用するのが望ましい。
7
7
  //
8
- // 現行カバー範囲(v0.12.0):
8
+ // 現行カバー範囲(v0.14.0):
9
9
  // - BEA(米): GDP / 個人所得・支出(PCE)/ 貿易収支 / 企業収益 — 公式 JSON
10
10
  // - NY 連銀(米): 製造業景気指数(Empire State)— 公式 HTML
11
11
  // - FRB(米): 鉱工業生産(G.17)— 公式 HTML
12
+ // - BLS(米): 雇用統計 / CPI / PPI — ホワイトハウス PFEI 公式スケジュール PDF
13
+ // (BLS 公式の HTML/RSS は bot ブロックされるため PFEI 経由で取得)
12
14
  // - 内閣府(日): 四半期別 GDP 速報 — 公式 HTML
13
15
  // - 日銀(日): 金融政策決定会合 / 主な意見 / 短観 / 議事要旨 — lit-forge 収録データ再利用
14
- // 次サイクル予定: BLS(雇用統計・CPI・PPI)/ 総務省統計局(日 CPI)/ FOMC。
16
+ // 次サイクル予定: 総務省統計局(日 CPI)/ FOMC。
15
17
  import { z } from "zod";
16
18
  import { fetchEconomicReleasePulse, } from "../lib/economic-release-pulse/pulse.js";
17
19
  import { jsonReply } from "./types.js";
@@ -35,10 +37,11 @@ export const getEconomicReleasePulseTool = {
35
37
  "`get_economic_events_today` は運営者が一次ソースで裏取りした手動キュレーション(★★★ 中心、半年 1 回更新)で、" +
36
38
  "収録対象を絞っているため取りこぼす『網羅性の穴』があります。" +
37
39
  "本ツールは公式カレンダーを実取得することでその穴を埋める**補完ツール**です。市況サマリーでは両方を併用してください。" +
38
- "【現行カバー範囲(v0.12.0)】" +
40
+ "【現行カバー範囲(v0.14.0)】" +
39
41
  "BEA(米 GDP / 個人所得・支出〔PCE〕/ 貿易収支 / 企業収益)、NY 連銀(米 製造業景気指数 Empire State)、" +
40
- "FRB(米 鉱工業生産 G.17)、内閣府(四半期別 GDP 速報)、日銀(金融政策決定会合 / 主な意見 / 短観 / 議事要旨)。" +
41
- "BLS(雇用統計・CPI・PPI)・総務省統計局(日 CPI)・FOMC は次サイクルで追加予定で、現時点では本ツールに含まれません。" +
42
+ "FRB(米 鉱工業生産 G.17)、**BLS**(雇用統計・CPI・PPI ホワイトハウス PFEI 公式スケジュール経由)、" +
43
+ "内閣府(四半期別 GDP 速報)、日銀(金融政策決定会合 / 主な意見 / 短観 / 議事要旨)。" +
44
+ "総務省統計局(日 CPI)・FOMC は次サイクルで追加予定で、現時点では本ツールに含まれません。" +
42
45
  "【利用上の注意】" +
43
46
  "アダプタ単位の取得失敗は sources 配列に error として記録され、他アダプタの結果は返されます(部分成功)。" +
44
47
  "結果は 6 時間キャッシュされます。各イベントには一次ソース URL(sourceUrl)が付きます。",
@@ -1 +1 @@
1
- {"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,QAAQ;AACR,gDAAgD;AAChD,sEAAsE;AACtE,mCAAmC;AACnC,EAAE;AACF,oBAAoB;AACpB,wDAAwD;AACxD,+CAA+C;AAC/C,mCAAmC;AACnC,oCAAoC;AACpC,8DAA8D;AAC9D,mDAAmD;AAEnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACvB,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,OAAO,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACpC,QAAQ,EAAE;SACV,QAAQ,CACP,gDAAgD;QAC9C,wCAAwC,CAC3C;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,gCAAgC;IACvC,WAAW,EACT,gDAAgD;QAChD,0DAA0D;QAC1D,kCAAkC;QAClC,0EAA0E;QAC1E,gCAAgC;QAChC,8DAA8D;QAC9D,oBAAoB;QACpB,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,UAAU;QACV,8DAA8D;QAC9D,qDAAqD;IACvD,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,OAAO,CAAiB,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,OAAqC;SAC/C,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EACF,sCAAsC;gBACtC,+CAA+C;gBAC/C,uCAAuC;SAC1C,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,QAAQ;AACR,+CAA+C;AAC/C,sEAAsE;AACtE,mCAAmC;AACnC,EAAE;AACF,oBAAoB;AACpB,wDAAwD;AACxD,+CAA+C;AAC/C,mCAAmC;AACnC,2DAA2D;AAC3D,oDAAoD;AACpD,oCAAoC;AACpC,8DAA8D;AAC9D,gCAAgC;AAEhC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACvB,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,OAAO,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACpC,QAAQ,EAAE;SACV,QAAQ,CACP,gDAAgD;QAC9C,wCAAwC,CAC3C;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,gCAAgC;IACvC,WAAW,EACT,gDAAgD;QAChD,0DAA0D;QAC1D,kCAAkC;QAClC,0EAA0E;QAC1E,gCAAgC;QAChC,8DAA8D;QAC9D,oBAAoB;QACpB,uEAAuE;QACvE,oEAAoE;QACpE,mDAAmD;QACnD,mDAAmD;QACnD,UAAU;QACV,8DAA8D;QAC9D,qDAAqD;IACvD,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,OAAO,CAAiB,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,OAAqC;SAC/C,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EACF,sCAAsC;gBACtC,+CAA+C;gBAC/C,uCAAuC;SAC1C,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -14,14 +14,17 @@ const inputSchema = {};
14
14
  export const getUsMacroLatestTool = {
15
15
  name: "get_us_macro_latest",
16
16
  title: "米マクロ最新値(雇用統計・失業率・CPI・PPI)",
17
- description: "**米マクロ三大指標**(雇用統計・CPI・PPI)+ 失業率の最新発表値と前月比・前年同月比を返すツール。" +
18
- "BLS(米労働統計局)の Public Data API v2 を 1 リクエストで叩き、4 系列を集約して返します。" +
17
+ description: "**米マクロ三大指標**(雇用統計・CPI・PPI)+ コア指数 + 失業率 + 平均時給の最新発表値と前月比・前年同月比を返すツール。" +
18
+ "BLS(米労働統計局)の Public Data API v2 を 1 リクエストで叩き、7 系列を集約して返します。" +
19
19
  "API key 不要・無認証で動作(BLS 公開 API、未登録枠の 1 日 25 リクエストで運用、6 時間キャッシュ込み)。" +
20
- "【取得系列】" +
21
- "雇用統計 = 非農業部門就業者数(CES0000000001、単位: 千人)/ " +
22
- "失業率(LNS14000000、単位: %)/ " +
20
+ "【取得系列(v0.14.0 で 4→7 系列に拡張)】" +
21
+ "雇用統計 = 非農業部門就業者数(CES0000000001、千人)/ " +
22
+ "失業率(LNS14000000、%)/ " +
23
23
  "CPI 都市部全消費者(CUUR0000SA0、index 1982-84=100)/ " +
24
- "PPI 最終需要(WPSFD4、index 2009=100)。" +
24
+ "**コア CPI**(食料・エネルギー除く、CUUR0000SA0L1E、index)/ " +
25
+ "PPI 最終需要(WPSFD4、index 2009=100)/ " +
26
+ "**コア PPI**(食料・エネルギー除く、WPSFD49104、index)/ " +
27
+ "**平均時給**(民間部門季調済、CES0500000003、USD/hour)。" +
25
28
  "【返却内容】" +
26
29
  "各指標について最新月の値・前月差・前月比%・前年同月差・前年同月比% を返します。" +
27
30
  "速報値(preliminary)には preliminary=true が立ち、後日確定値に更新されます。" +
@@ -1 +1 @@
1
- {"version":3,"file":"get-us-macro-latest.js","sourceRoot":"","sources":["../../src/tools/get-us-macro-latest.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,iEAAiE;AACjE,UAAU;AACV,EAAE;AACF,QAAQ;AACR,iEAAiE;AACjE,wEAAwE;AACxE,2DAA2D;AAC3D,2CAA2C;AAC3C,oDAAoD;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,wDAAwD;QACxD,6DAA6D;QAC7D,kEAAkE;QAClE,QAAQ;QACR,0CAA0C;QAC1C,0BAA0B;QAC1B,8CAA8C;QAC9C,kCAAkC;QAClC,QAAQ;QACR,2CAA2C;QAC3C,uDAAuD;QACvD,4CAA4C;QAC5C,SAAS;QACT,sDAAsD;QACtD,qDAAqD;QACrD,qBAAqB;QACrB,UAAU;QACV,4CAA4C;QAC5C,uCAAuC;IACzC,WAAW;IACX,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;gBACf,GAAG,MAAM;gBACT,IAAI,EACF,8BAA8B;oBAC9B,0EAA0E;oBAC1E,+CAA+C;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;YAC5D,OAAO,UAAU,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"get-us-macro-latest.js","sourceRoot":"","sources":["../../src/tools/get-us-macro-latest.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,iEAAiE;AACjE,UAAU;AACV,EAAE;AACF,QAAQ;AACR,iEAAiE;AACjE,wEAAwE;AACxE,2DAA2D;AAC3D,2CAA2C;AAC3C,oDAAoD;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,sEAAsE;QACtE,6DAA6D;QAC7D,kEAAkE;QAClE,6BAA6B;QAC7B,sCAAsC;QACtC,sBAAsB;QACtB,8CAA8C;QAC9C,+CAA+C;QAC/C,mCAAmC;QACnC,2CAA2C;QAC3C,2CAA2C;QAC3C,QAAQ;QACR,2CAA2C;QAC3C,uDAAuD;QACvD,4CAA4C;QAC5C,SAAS;QACT,sDAAsD;QACtD,qDAAqD;QACrD,qBAAqB;QACrB,UAAU;QACV,4CAA4C;QAC5C,uCAAuC;IACzC,WAAW;IACX,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;gBACf,GAAG,MAAM;gBACT,IAAI,EACF,8BAA8B;oBAC9B,0EAA0E;oBAC1E,+CAA+C;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;YAC5D,OAAO,UAAU,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "lit-forge-mcp",
3
- "version": "0.13.0",
3
+ "version": "0.14.1",
4
4
  "mcpName": "io.github.noblabs/lit-forge-mcp",
5
- "description": "MCP server for personal asset planning + daily market check: NISA / iDeCo simulation, retirement planning, market snapshot (USD/JPY, Nikkei, S&P 500, etc.), dividend history, analyst consensus, economic events.",
5
+ "description": "MCP server (18 tools): NISA/iDeCo/retirement simulation, 28-indicator market snapshot, economic release calendars (BEA/NY Fed/FRB/BLS/Cabinet Office/BOJ), latest BLS macro values (7 series), and geopolitical calendar + pulse.",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "homepage": "https://github.com/noblabs/lit-forge-mcp",
@@ -29,6 +29,9 @@
29
29
  "economic-calendar",
30
30
  "dividend",
31
31
  "analyst",
32
+ "geopolitical",
33
+ "bls",
34
+ "macro",
32
35
  "japan"
33
36
  ],
34
37
  "bin": {
@@ -50,6 +53,7 @@
50
53
  "verify:jp-macro": "node scripts/verify-jp-macro-events.mjs",
51
54
  "verify:geopolitical": "node scripts/verify-geopolitical-events.mjs",
52
55
  "verify:all": "npm run verify:cb && npm run verify:us-macro && npm run verify:jp-macro && npm run verify:geopolitical",
56
+ "update:pfei": "npm run build && node scripts/update-pfei-schedule.mjs",
53
57
  "prepare": "npm run build",
54
58
  "prepublishOnly": "npm run build && npm run verify:all"
55
59
  },