lit-forge-mcp 0.5.0 → 0.6.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.
- package/README.md +31 -7
- package/dist/lib/__tests__/dividend-aggregation.test.d.ts +1 -0
- package/dist/lib/__tests__/dividend-aggregation.test.js +37 -0
- package/dist/lib/__tests__/dividend-aggregation.test.js.map +1 -0
- package/dist/lib/__tests__/recommendation-label.test.d.ts +1 -0
- package/dist/lib/__tests__/recommendation-label.test.js +34 -0
- package/dist/lib/__tests__/recommendation-label.test.js.map +1 -0
- package/dist/lib/market-types.d.ts +32 -0
- package/dist/lib/yahoo.d.ts +6 -1
- package/dist/lib/yahoo.js +127 -1
- package/dist/lib/yahoo.js.map +1 -1
- package/dist/tools/get-analyst-consensus.d.ts +2 -0
- package/dist/tools/get-analyst-consensus.js +37 -0
- package/dist/tools/get-analyst-consensus.js.map +1 -0
- package/dist/tools/get-dividend-history.d.ts +2 -0
- package/dist/tools/get-dividend-history.js +59 -0
- package/dist/tools/get-dividend-history.js.map +1 -0
- package/dist/tools/get-quote.js +24 -4
- package/dist/tools/get-quote.js.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
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
|
|
11
|
+
> **v0.2.0 で「金融・個人投資家特化」にピボット**、**v0.3.0 で「毎朝の市況チェック」系 3 ツールを追加**、**v0.4.0 で銘柄数 9 → 28 に拡大 + 5 つの分析ツール追加**、**v0.6.0 で配当履歴・アナリストコンセンサス・ファンダメンタル指標を追加**しました。
|
|
12
12
|
|
|
13
|
-
## 提供ツール(
|
|
13
|
+
## 提供ツール(14 種)
|
|
14
14
|
|
|
15
15
|
### 個人資産形成プランナー(純関数、外部 API 不要)
|
|
16
16
|
|
|
@@ -27,7 +27,7 @@ Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI
|
|
|
27
27
|
|---|---|
|
|
28
28
|
| `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
29
|
| `get_economic_events_today` | 当日 or 今週の経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・中国 PMI 等)を重要度付きで返す。半年分を手動キュレーション |
|
|
30
|
-
| `get_quote` | 任意の Yahoo Finance ティッカー(株・為替・指数・コモディティ・暗号資産)の現在値・前日比を取得。例: `AAPL` / `^DJI` / `BTC-USD` |
|
|
30
|
+
| `get_quote` | 任意の Yahoo Finance ティッカー(株・為替・指数・コモディティ・暗号資産)の現在値・前日比を取得。例: `AAPL` / `^DJI` / `BTC-USD`。`includeFundamentals: true` で PER / PBR / 配当利回り / ベータ / 時価総額も取得(v0.6.0) |
|
|
31
31
|
|
|
32
32
|
### 分析ツール(v0.4.0 新規)
|
|
33
33
|
|
|
@@ -39,7 +39,16 @@ Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI
|
|
|
39
39
|
| `get_market_sessions` | 主要 4 市場(東京・上海・ロンドン・NY)の現在の取引時間ステータス(open / pre-open / closed / **holiday**、v0.5.0 で祝日対応) |
|
|
40
40
|
| `get_sector_heatmap` | 米株セクター ETF(SPDR、11 セクター)の前日比一覧 |
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
### 個別株の深掘りツール(v0.6.0 新規)
|
|
43
|
+
|
|
44
|
+
| ツール名 | 説明 |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `get_dividend_history` | 個別株・ETF の過去 N 年の配当履歴と暦年合計を取得(`years`: 1/3/5/10、既定 5)。NISA 成長投資枠で配当銘柄を検討する一次情報として使用 |
|
|
47
|
+
| `get_analyst_consensus` | 個別株のアナリスト推奨レーティング(強気買い〜強気売り)・目標株価(平均/高値/安値)・月別推奨内訳を取得。米国株は coverage が厚く、TSE 銘柄や ETF は欠損しやすい |
|
|
48
|
+
|
|
49
|
+
> ⚠ **HTTP 通信について**: 市況・分析・個別株系ツールは **Yahoo Finance API(query1.finance.yahoo.com / query2.finance.yahoo.com)** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。データは約 1 時間遅れの参考値で、**投資助言ではなく情報集約**として提供しています。
|
|
50
|
+
>
|
|
51
|
+
> v0.6.0 で `get_quote includeFundamentals=true` / `get_dividend_history` / `get_analyst_consensus` の 3 ルートが Yahoo Finance v10 quoteSummary(crumb 認証あり)を経由するため、`yahoo-finance2` パッケージを依存に追加しました。
|
|
43
52
|
|
|
44
53
|
Claude / GPT / Cursor との対話の中で「老後資金大丈夫?」「月いくら積み立てれば?」「今日の市況を要約して」「FOMC は今週いつ?」「マーケット温度計は?」「セクターでどこが強い?」を即座に試算・確認できます。
|
|
45
54
|
|
|
@@ -54,7 +63,7 @@ Claude / GPT / Cursor との対話の中で「老後資金大丈夫?」「月
|
|
|
54
63
|
"mcpServers": {
|
|
55
64
|
"lit-forge": {
|
|
56
65
|
"command": "npx",
|
|
57
|
-
"args": ["-y", "lit-forge-mcp"]
|
|
66
|
+
"args": ["-y", "lit-forge-mcp@latest"]
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
}
|
|
@@ -67,13 +76,23 @@ Claude / GPT / Cursor との対話の中で「老後資金大丈夫?」「月
|
|
|
67
76
|
### Claude Code の場合
|
|
68
77
|
|
|
69
78
|
```bash
|
|
70
|
-
claude mcp add lit-forge -- npx -y lit-forge-mcp
|
|
79
|
+
claude mcp add lit-forge -- npx -y lit-forge-mcp@latest
|
|
71
80
|
```
|
|
72
81
|
|
|
73
82
|
### Cursor の場合
|
|
74
83
|
|
|
75
84
|
`~/.cursor/mcp.json`(または プロジェクト直下の `.cursor/mcp.json`)に同じ JSON を追加します。
|
|
76
85
|
|
|
86
|
+
### 💡 `@latest` 指定について
|
|
87
|
+
|
|
88
|
+
上記の設定例ではいずれも `lit-forge-mcp@latest` を指定しています。これは `npx` のキャッシュ挙動により、バージョン指定なしの場合に古いキャッシュ版が使われ続けることがあるためです。`@latest` を指定すると、起動時に npm registry の最新タグを毎回確認して取得します(バージョン解決のオーバーヘッドはわずか)。
|
|
89
|
+
|
|
90
|
+
すでに `lit-forge-mcp`(バージョン指定なし)で運用中の方は、新機能・バグ修正を取り込むために以下のいずれかをお試しください:
|
|
91
|
+
|
|
92
|
+
1. **設定を `lit-forge-mcp@latest` に変更**(恒久対応、推奨)
|
|
93
|
+
2. **npx キャッシュをクリア**: `npx clear-npx-cache` または手動で `~/.npm/_npx/` を削除
|
|
94
|
+
3. **MCP クライアント(Claude Desktop など)を完全終了して再起動**
|
|
95
|
+
|
|
77
96
|
## ローカル開発
|
|
78
97
|
|
|
79
98
|
```bash
|
|
@@ -92,7 +111,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":
|
|
|
92
111
|
{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | node dist/index.js
|
|
93
112
|
```
|
|
94
113
|
|
|
95
|
-
`tools/list` のレスポンスに
|
|
114
|
+
`tools/list` のレスポンスに 14 ツールが並べば成功です。
|
|
96
115
|
|
|
97
116
|
## 使用例
|
|
98
117
|
|
|
@@ -110,6 +129,11 @@ Claude にこんな依頼ができます:
|
|
|
110
129
|
- 「米10年金利と日経平均の動きから、今のリスクオン度合いをコメントして」
|
|
111
130
|
- 「BTC-USD の今の値は?」「ポンド円(GBPJPY=X)を教えて」
|
|
112
131
|
|
|
132
|
+
**個別株の深掘り(v0.6.0)**
|
|
133
|
+
- 「KO の過去 10 年の配当推移を見せて」「VYM の年次配当合計は?」
|
|
134
|
+
- 「NVDA のアナリスト目標株価と推奨レーティングは?」
|
|
135
|
+
- 「AAPL の PER / PBR / 配当利回り / ベータをまとめて」(`get_quote` で `includeFundamentals=true`)
|
|
136
|
+
|
|
113
137
|
## 投資判断の免責
|
|
114
138
|
|
|
115
139
|
本ツールの試算はすべて月次複利による参考値です。実際の運用結果(市場変動・税金・手数料・為替)を保証するものではありません。個別の金融商品の推奨ではなく、**投資判断はご自身の責任**でお願いします。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { aggregateDividendsByYear } from "../yahoo.js";
|
|
3
|
+
describe("aggregateDividendsByYear", () => {
|
|
4
|
+
it("空配列は空オブジェクトを返す", () => {
|
|
5
|
+
expect(aggregateDividendsByYear([])).toEqual({});
|
|
6
|
+
});
|
|
7
|
+
it("同年の配当は合算される", () => {
|
|
8
|
+
const divs = [
|
|
9
|
+
{ date: "2024-02-15", amount: 0.24 },
|
|
10
|
+
{ date: "2024-05-15", amount: 0.24 },
|
|
11
|
+
{ date: "2024-08-15", amount: 0.25 },
|
|
12
|
+
{ date: "2024-11-15", amount: 0.25 },
|
|
13
|
+
];
|
|
14
|
+
const r = aggregateDividendsByYear(divs);
|
|
15
|
+
expect(r[2024]).toBeCloseTo(0.98, 5);
|
|
16
|
+
});
|
|
17
|
+
it("複数年は年別に分かれる", () => {
|
|
18
|
+
const divs = [
|
|
19
|
+
{ date: "2023-12-15", amount: 0.46 },
|
|
20
|
+
{ date: "2024-03-15", amount: 0.48 },
|
|
21
|
+
{ date: "2024-06-15", amount: 0.48 },
|
|
22
|
+
];
|
|
23
|
+
const r = aggregateDividendsByYear(divs);
|
|
24
|
+
expect(r[2023]).toBeCloseTo(0.46, 5);
|
|
25
|
+
expect(r[2024]).toBeCloseTo(0.96, 5);
|
|
26
|
+
});
|
|
27
|
+
it("不正な日付フォーマットはスキップされる", () => {
|
|
28
|
+
const divs = [
|
|
29
|
+
{ date: "abcd-01-01", amount: 1 },
|
|
30
|
+
{ date: "2024-01-01", amount: 0.5 },
|
|
31
|
+
];
|
|
32
|
+
const r = aggregateDividendsByYear(divs);
|
|
33
|
+
expect(r[2024]).toBe(0.5);
|
|
34
|
+
expect(Object.keys(r).length).toBe(1);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=dividend-aggregation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dividend-aggregation.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/dividend-aggregation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGvD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,IAAI,GAAqB;YAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;SACrC,CAAC;QACF,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,IAAI,GAAqB;YAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;SACrC,CAAC;QACF,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAqB;YAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE;YACjC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;SACpC,CAAC;QACF,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { recommendationLabel } from "../yahoo.js";
|
|
3
|
+
describe("recommendationLabel", () => {
|
|
4
|
+
it("strong_buy → 強気買い", () => {
|
|
5
|
+
expect(recommendationLabel("strong_buy")).toBe("強気買い");
|
|
6
|
+
});
|
|
7
|
+
it("buy / outperform → 買い", () => {
|
|
8
|
+
expect(recommendationLabel("buy")).toBe("買い");
|
|
9
|
+
expect(recommendationLabel("outperform")).toBe("買い");
|
|
10
|
+
});
|
|
11
|
+
it("hold / neutral → 中立", () => {
|
|
12
|
+
expect(recommendationLabel("hold")).toBe("中立");
|
|
13
|
+
expect(recommendationLabel("neutral")).toBe("中立");
|
|
14
|
+
});
|
|
15
|
+
it("sell / underperform → 売り", () => {
|
|
16
|
+
expect(recommendationLabel("sell")).toBe("売り");
|
|
17
|
+
expect(recommendationLabel("underperform")).toBe("売り");
|
|
18
|
+
});
|
|
19
|
+
it("strong_sell → 強気売り", () => {
|
|
20
|
+
expect(recommendationLabel("strong_sell")).toBe("強気売り");
|
|
21
|
+
});
|
|
22
|
+
it("大文字混在も正規化", () => {
|
|
23
|
+
expect(recommendationLabel("STRONG_BUY")).toBe("強気買い");
|
|
24
|
+
expect(recommendationLabel("Buy")).toBe("買い");
|
|
25
|
+
});
|
|
26
|
+
it("undefined / 空文字 → undefined", () => {
|
|
27
|
+
expect(recommendationLabel(undefined)).toBeUndefined();
|
|
28
|
+
expect(recommendationLabel("")).toBeUndefined();
|
|
29
|
+
});
|
|
30
|
+
it("未知のキー → undefined", () => {
|
|
31
|
+
expect(recommendationLabel("super_buy")).toBeUndefined();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=recommendation-label.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendation-label.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/recommendation-label.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACnB,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -34,6 +34,38 @@ export type Quote = {
|
|
|
34
34
|
performance?: PerformanceWindow;
|
|
35
35
|
closes1y?: number[];
|
|
36
36
|
isStale?: boolean;
|
|
37
|
+
fundamentals?: QuoteFundamentals;
|
|
38
|
+
};
|
|
39
|
+
export type QuoteFundamentals = {
|
|
40
|
+
trailingPE?: number;
|
|
41
|
+
forwardPE?: number;
|
|
42
|
+
priceToBook?: number;
|
|
43
|
+
dividendYield?: number;
|
|
44
|
+
payoutRatio?: number;
|
|
45
|
+
beta?: number;
|
|
46
|
+
marketCap?: number;
|
|
47
|
+
averageDailyVolume3M?: number;
|
|
48
|
+
};
|
|
49
|
+
export type DividendRecord = {
|
|
50
|
+
date: string;
|
|
51
|
+
amount: number;
|
|
52
|
+
};
|
|
53
|
+
export type AnalystConsensus = {
|
|
54
|
+
recommendationKey?: string;
|
|
55
|
+
recommendationLabel?: string;
|
|
56
|
+
recommendationMean?: number;
|
|
57
|
+
targetMeanPrice?: number;
|
|
58
|
+
targetHighPrice?: number;
|
|
59
|
+
targetLowPrice?: number;
|
|
60
|
+
numberOfAnalystOpinions?: number;
|
|
61
|
+
byMonth?: Array<{
|
|
62
|
+
period: string;
|
|
63
|
+
strongBuy: number;
|
|
64
|
+
buy: number;
|
|
65
|
+
hold: number;
|
|
66
|
+
sell: number;
|
|
67
|
+
strongSell: number;
|
|
68
|
+
}>;
|
|
37
69
|
};
|
|
38
70
|
export type QuoteResult = Quote | {
|
|
39
71
|
error: string;
|
package/dist/lib/yahoo.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Indicator, Quote, QuoteResult, Snapshot } from "./market-types.js";
|
|
1
|
+
import type { AnalystConsensus, DividendRecord, Indicator, Quote, QuoteFundamentals, QuoteResult, Snapshot } from "./market-types.js";
|
|
2
2
|
export declare class YahooFinanceError extends Error {
|
|
3
3
|
readonly symbol: string;
|
|
4
4
|
readonly status: number;
|
|
@@ -9,3 +9,8 @@ export declare function fetchQuoteForIndicator(indicator: Indicator): Promise<Qu
|
|
|
9
9
|
export declare function fetchQuoteBySymbol(symbol: string): Promise<Quote>;
|
|
10
10
|
export declare function fetchSnapshot(): Promise<Snapshot>;
|
|
11
11
|
export declare function fetchSubsetSnapshot(symbols: readonly string[]): Promise<Record<string, QuoteResult>>;
|
|
12
|
+
export declare function recommendationLabel(key: string | undefined): string | undefined;
|
|
13
|
+
export declare function fetchFundamentals(symbol: string): Promise<QuoteFundamentals>;
|
|
14
|
+
export declare function fetchAnalystConsensus(symbol: string): Promise<AnalystConsensus>;
|
|
15
|
+
export declare function fetchDividendHistory(symbol: string, rangeYears: 1 | 3 | 5 | 10): Promise<DividendRecord[]>;
|
|
16
|
+
export declare function aggregateDividendsByYear(dividends: ReadonlyArray<DividendRecord>): Record<number, number>;
|
package/dist/lib/yahoo.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
// Yahoo Finance v8 chart API ラッパー(MCP server 用)。
|
|
2
|
-
// Node 18+ の global fetch
|
|
2
|
+
// Node 18+ の global fetch を使用。
|
|
3
3
|
// v0.4 で Snapshot を Record<symbol, QuoteResult> 型に変更し、52w 高安・当日高安・出来高・
|
|
4
4
|
// 1y close 配列(fetchHistorical)を取得できるよう拡張。
|
|
5
|
+
// v0.6.0 で yahoo-finance2 を導入し、quoteSummary 経由でファンダメンタル / アナリスト / 配当履歴を取得。
|
|
6
|
+
// quoteSummary は v10 API + crumb 認証が必要なため、自前 fetch では実装せず yahoo-finance2 に委譲。
|
|
7
|
+
import YahooFinance from "yahoo-finance2";
|
|
5
8
|
import { INDICATORS } from "./indicators.js";
|
|
9
|
+
// MCP は stdio 通信のため、yahoo-finance2 のサーベイ通知や notice が stdout に流れると壊れる。
|
|
10
|
+
// suppressNotices で全ての通知を抑止。
|
|
11
|
+
const yf = new YahooFinance({
|
|
12
|
+
suppressNotices: ["yahooSurvey", "ripHistorical"],
|
|
13
|
+
});
|
|
6
14
|
const UA = "Mozilla/5.0 (compatible; lit-forge-mcp/0.4; +https://github.com/noblabs/lit-forge-mcp)";
|
|
7
15
|
const TIMEOUT_MS = 4000;
|
|
8
16
|
export class YahooFinanceError extends Error {
|
|
@@ -167,4 +175,122 @@ export async function fetchSubsetSnapshot(symbols) {
|
|
|
167
175
|
}
|
|
168
176
|
return out;
|
|
169
177
|
}
|
|
178
|
+
// recommendationKey の日本語化(v0.6.0、純関数のためテスト容易)
|
|
179
|
+
export function recommendationLabel(key) {
|
|
180
|
+
if (!key)
|
|
181
|
+
return undefined;
|
|
182
|
+
switch (key.toLowerCase()) {
|
|
183
|
+
case "strong_buy":
|
|
184
|
+
return "強気買い";
|
|
185
|
+
case "buy":
|
|
186
|
+
case "outperform":
|
|
187
|
+
return "買い";
|
|
188
|
+
case "hold":
|
|
189
|
+
case "neutral":
|
|
190
|
+
return "中立";
|
|
191
|
+
case "sell":
|
|
192
|
+
case "underperform":
|
|
193
|
+
return "売り";
|
|
194
|
+
case "strong_sell":
|
|
195
|
+
return "強気売り";
|
|
196
|
+
default:
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// 株式のファンダメンタル指標を取得(v0.6.0)。指数・暗号資産・FX 等では大半 undefined。
|
|
201
|
+
export async function fetchFundamentals(symbol) {
|
|
202
|
+
let r;
|
|
203
|
+
try {
|
|
204
|
+
r = (await yf.quoteSummary(symbol, {
|
|
205
|
+
modules: ["summaryDetail", "defaultKeyStatistics"],
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
const msg = e instanceof Error ? e.message : "fetch failed";
|
|
210
|
+
throw new YahooFinanceError(symbol, 0, `Yahoo Finance ${symbol} (fundamentals): ${msg}`);
|
|
211
|
+
}
|
|
212
|
+
const sd = r.summaryDetail;
|
|
213
|
+
const ks = r.defaultKeyStatistics;
|
|
214
|
+
// Yahoo Finance の dividendYield は基本 0-1 の小数表記(0.0234 = 2.34%)。
|
|
215
|
+
return {
|
|
216
|
+
trailingPE: sd?.trailingPE,
|
|
217
|
+
forwardPE: ks?.forwardPE ?? sd?.forwardPE,
|
|
218
|
+
priceToBook: ks?.priceToBook,
|
|
219
|
+
dividendYield: sd?.dividendYield,
|
|
220
|
+
payoutRatio: sd?.payoutRatio,
|
|
221
|
+
beta: sd?.beta,
|
|
222
|
+
marketCap: sd?.marketCap,
|
|
223
|
+
averageDailyVolume3M: sd?.averageDailyVolume3Month,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
// アナリストコンセンサスを取得(v0.6.0)。
|
|
227
|
+
// numberOfAnalystOpinions が 0 や undefined の銘柄では空に近いオブジェクトを返す。
|
|
228
|
+
export async function fetchAnalystConsensus(symbol) {
|
|
229
|
+
let r;
|
|
230
|
+
try {
|
|
231
|
+
r = (await yf.quoteSummary(symbol, {
|
|
232
|
+
modules: ["financialData", "recommendationTrend"],
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
catch (e) {
|
|
236
|
+
const msg = e instanceof Error ? e.message : "fetch failed";
|
|
237
|
+
throw new YahooFinanceError(symbol, 0, `Yahoo Finance ${symbol} (analyst): ${msg}`);
|
|
238
|
+
}
|
|
239
|
+
const fd = r.financialData;
|
|
240
|
+
const rt = r.recommendationTrend?.trend ?? [];
|
|
241
|
+
return {
|
|
242
|
+
recommendationKey: fd?.recommendationKey,
|
|
243
|
+
recommendationLabel: recommendationLabel(fd?.recommendationKey),
|
|
244
|
+
recommendationMean: fd?.recommendationMean,
|
|
245
|
+
targetMeanPrice: fd?.targetMeanPrice,
|
|
246
|
+
targetHighPrice: fd?.targetHighPrice,
|
|
247
|
+
targetLowPrice: fd?.targetLowPrice,
|
|
248
|
+
numberOfAnalystOpinions: fd?.numberOfAnalystOpinions,
|
|
249
|
+
byMonth: rt.map((t) => ({
|
|
250
|
+
period: t.period,
|
|
251
|
+
strongBuy: t.strongBuy ?? 0,
|
|
252
|
+
buy: t.buy ?? 0,
|
|
253
|
+
hold: t.hold ?? 0,
|
|
254
|
+
sell: t.sell ?? 0,
|
|
255
|
+
strongSell: t.strongSell ?? 0,
|
|
256
|
+
})),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
// 配当履歴を取得(v0.6.0)。配当ゼロ銘柄は空配列を返す。
|
|
260
|
+
export async function fetchDividendHistory(symbol, rangeYears) {
|
|
261
|
+
const period2 = new Date();
|
|
262
|
+
const period1 = new Date();
|
|
263
|
+
period1.setFullYear(period1.getFullYear() - rangeYears);
|
|
264
|
+
let chart;
|
|
265
|
+
try {
|
|
266
|
+
chart = (await yf.chart(symbol, {
|
|
267
|
+
period1,
|
|
268
|
+
period2,
|
|
269
|
+
interval: "1mo",
|
|
270
|
+
events: "dividends",
|
|
271
|
+
}));
|
|
272
|
+
}
|
|
273
|
+
catch (e) {
|
|
274
|
+
const msg = e instanceof Error ? e.message : "fetch failed";
|
|
275
|
+
throw new YahooFinanceError(symbol, 0, `Yahoo Finance ${symbol} (dividends): ${msg}`);
|
|
276
|
+
}
|
|
277
|
+
const events = chart.events?.dividends ?? [];
|
|
278
|
+
return events
|
|
279
|
+
.map((d) => ({
|
|
280
|
+
date: new Date(d.date).toISOString().slice(0, 10),
|
|
281
|
+
amount: d.amount,
|
|
282
|
+
}))
|
|
283
|
+
.sort((a, b) => (a.date < b.date ? -1 : 1));
|
|
284
|
+
}
|
|
285
|
+
// 配当履歴から暦年ごとの合計を計算する純関数(v0.6.0、テスト容易)。
|
|
286
|
+
export function aggregateDividendsByYear(dividends) {
|
|
287
|
+
const out = {};
|
|
288
|
+
for (const d of dividends) {
|
|
289
|
+
const year = parseInt(d.date.slice(0, 4), 10);
|
|
290
|
+
if (Number.isFinite(year)) {
|
|
291
|
+
out[year] = (out[year] ?? 0) + d.amount;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return out;
|
|
295
|
+
}
|
|
170
296
|
//# sourceMappingURL=yahoo.js.map
|
package/dist/lib/yahoo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yahoo.js","sourceRoot":"","sources":["../../src/lib/yahoo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yahoo.js","sourceRoot":"","sources":["../../src/lib/yahoo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// 個別株のアナリストコンセンサス(推奨レーティング・目標株価)を取得する(v0.6.0)。
|
|
2
|
+
// 米国株は coverage が厚いが、TSE 銘柄や ETF は数値が薄い / 欠損する。
|
|
3
|
+
// 投資助言ではなく「複数アナリスト平均」の単なる集約値である点を note で明示する。
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { fetchAnalystConsensus } from "../lib/yahoo.js";
|
|
6
|
+
import { errorReply, jsonReply } from "./types.js";
|
|
7
|
+
const inputSchema = {
|
|
8
|
+
symbol: z
|
|
9
|
+
.string()
|
|
10
|
+
.min(1)
|
|
11
|
+
.max(20)
|
|
12
|
+
.describe("Yahoo Finance ティッカー。例: NVDA / AAPL / 7203.T(トヨタ)。指数や暗号資産は対象外"),
|
|
13
|
+
};
|
|
14
|
+
export const getAnalystConsensusTool = {
|
|
15
|
+
name: "get_analyst_consensus",
|
|
16
|
+
title: "アナリストコンセンサスの取得",
|
|
17
|
+
description: "個別株のアナリスト推奨レーティング(強気買い~強気売り)・目標株価(平均/高値/安値)・月別推奨内訳を取得します(Yahoo Finance)。米国株は coverage が厚く、日本株や ETF は欠損しやすい。投資助言ではなく集約値です。",
|
|
18
|
+
inputSchema,
|
|
19
|
+
handler: async ({ symbol }) => {
|
|
20
|
+
try {
|
|
21
|
+
const consensus = await fetchAnalystConsensus(symbol);
|
|
22
|
+
const opinions = consensus.numberOfAnalystOpinions ?? 0;
|
|
23
|
+
const note = opinions === 0
|
|
24
|
+
? `${symbol} はアナリスト coverage が見つかりません。日本株(東証)・ETF・指数・暗号資産では取得できないことが多い。投資助言ではありません。`
|
|
25
|
+
: `Yahoo Finance より取得。アナリスト ${opinions} 名のコンセンサス。recommendationMean は 1.0 (強気買い) ~ 5.0 (強気売り) のスケール。投資助言ではありません。`;
|
|
26
|
+
return jsonReply({
|
|
27
|
+
symbol,
|
|
28
|
+
...consensus,
|
|
29
|
+
note,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
return errorReply(`${symbol} のアナリストコンセンサス取得に失敗しました: ${e instanceof Error ? e.message : "unknown"}。Yahoo Finance のティッカーが正しいか確認してください(例: NVDA / AAPL)`);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=get-analyst-consensus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-analyst-consensus.js","sourceRoot":"","sources":["../../src/tools/get-analyst-consensus.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gDAAgD;AAChD,8CAA8C;AAE9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CACP,8DAA8D,CAC/D;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAiB;IACnD,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,2HAA2H;IAC7H,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,uBAAuB,IAAI,CAAC,CAAC;YAExD,MAAM,IAAI,GACR,QAAQ,KAAK,CAAC;gBACZ,CAAC,CAAC,GAAG,MAAM,yEAAyE;gBACpF,CAAC,CAAC,4BAA4B,QAAQ,2EAA2E,CAAC;YAEtH,OAAO,SAAS,CAAC;gBACf,MAAM;gBACN,GAAG,SAAS;gBACZ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,UAAU,CACf,GAAG,MAAM,2BACP,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SACnC,oDAAoD,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// 個別株の配当履歴を取得する(v0.6.0)。
|
|
2
|
+
// 直近 N 年分の配当明細 + 暦年ごとの合計を返す。配当ゼロ銘柄(GOOG / 多くの IT 系)は空配列。
|
|
3
|
+
// NISA 成長投資枠で配当銘柄を検討する一次情報として使う想定。
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { aggregateDividendsByYear, fetchDividendHistory, fetchFundamentals, } from "../lib/yahoo.js";
|
|
6
|
+
import { errorReply, jsonReply } from "./types.js";
|
|
7
|
+
const inputSchema = {
|
|
8
|
+
symbol: z
|
|
9
|
+
.string()
|
|
10
|
+
.min(1)
|
|
11
|
+
.max(20)
|
|
12
|
+
.describe("Yahoo Finance ティッカー。例: KO(コカ・コーラ)/ JNJ(J&J)/ 8306.T(三菱 UFJ)/ VYM(高配当 ETF)"),
|
|
13
|
+
years: z
|
|
14
|
+
.union([z.literal(1), z.literal(3), z.literal(5), z.literal(10)])
|
|
15
|
+
.optional()
|
|
16
|
+
.describe("取得する年数。1 / 3 / 5 / 10 のいずれか。既定 5"),
|
|
17
|
+
};
|
|
18
|
+
export const getDividendHistoryTool = {
|
|
19
|
+
name: "get_dividend_history",
|
|
20
|
+
title: "配当履歴の取得",
|
|
21
|
+
description: "個別株または ETF の過去 N 年の配当履歴と暦年ごとの合計を取得します(Yahoo Finance)。NISA 成長投資枠で配当銘柄を検討する際の一次情報として使用。配当ゼロ銘柄は dividends が空配列で返ります。投資助言ではありません。",
|
|
22
|
+
inputSchema,
|
|
23
|
+
handler: async ({ symbol, years }) => {
|
|
24
|
+
const range = (years ?? 5);
|
|
25
|
+
try {
|
|
26
|
+
// 配当履歴と現在の dividendYield / payoutRatio を並列取得。
|
|
27
|
+
// fundamentals は失敗してもツールは成立するので Promise.allSettled で吸収。
|
|
28
|
+
const [divResult, fundResult] = await Promise.allSettled([
|
|
29
|
+
fetchDividendHistory(symbol, range),
|
|
30
|
+
fetchFundamentals(symbol),
|
|
31
|
+
]);
|
|
32
|
+
if (divResult.status === "rejected") {
|
|
33
|
+
const msg = divResult.reason instanceof Error
|
|
34
|
+
? divResult.reason.message
|
|
35
|
+
: "unknown";
|
|
36
|
+
return errorReply(`${symbol} の配当履歴取得に失敗しました: ${msg}。Yahoo Finance のティッカーが正しいか確認してください(例: KO / JNJ / 8306.T)`);
|
|
37
|
+
}
|
|
38
|
+
const dividends = divResult.value;
|
|
39
|
+
const totalByYear = aggregateDividendsByYear(dividends);
|
|
40
|
+
const fundamentals = fundResult.status === "fulfilled" ? fundResult.value : undefined;
|
|
41
|
+
const note = dividends.length === 0
|
|
42
|
+
? `配当ゼロまたは過去 ${range} 年に配当実績なし。GOOG など多くの IT 系企業は配当を出しません。投資助言ではありません。`
|
|
43
|
+
: `Yahoo Finance より取得。dividendYield は現在値ベースの実績利回り(小数表記、0.0234 = 2.34%)。投資助言ではありません。`;
|
|
44
|
+
return jsonReply({
|
|
45
|
+
symbol,
|
|
46
|
+
years: range,
|
|
47
|
+
dividends,
|
|
48
|
+
totalByYear,
|
|
49
|
+
currentYield: fundamentals?.dividendYield,
|
|
50
|
+
payoutRatio: fundamentals?.payoutRatio,
|
|
51
|
+
note,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
return errorReply(`${symbol} の配当履歴取得に失敗しました: ${e instanceof Error ? e.message : "unknown"}`);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=get-dividend-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-dividend-history.js","sourceRoot":"","sources":["../../src/tools/get-dividend-history.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,yDAAyD;AACzD,mCAAmC;AAEnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CACP,2EAA2E,CAC5E;IACH,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SAChE,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;CAChD,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,+HAA+H;IACjI,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAmB,CAAC;QAC7C,IAAI,CAAC;YACH,8CAA8C;YAC9C,wDAAwD;YACxD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;gBACvD,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC;gBACnC,iBAAiB,CAAC,MAAM,CAAC;aAC1B,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,GAAG,GACP,SAAS,CAAC,MAAM,YAAY,KAAK;oBAC/B,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;oBAC1B,CAAC,CAAC,SAAS,CAAC;gBAChB,OAAO,UAAU,CACf,GAAG,MAAM,oBAAoB,GAAG,0DAA0D,CAC3F,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;YAClC,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAExD,MAAM,YAAY,GAChB,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnE,MAAM,IAAI,GACR,SAAS,CAAC,MAAM,KAAK,CAAC;gBACpB,CAAC,CAAC,aAAa,KAAK,mDAAmD;gBACvE,CAAC,CAAC,kFAAkF,CAAC;YAEzF,OAAO,SAAS,CAAC;gBACf,MAAM;gBACN,KAAK,EAAE,KAAK;gBACZ,SAAS;gBACT,WAAW;gBACX,YAAY,EAAE,YAAY,EAAE,aAAa;gBACzC,WAAW,EAAE,YAAY,EAAE,WAAW;gBACtC,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,UAAU,CACf,GAAG,MAAM,oBACP,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SACnC,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/tools/get-quote.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// 任意の Yahoo Finance ティッカーで単発の現在値・前日比を取得する。
|
|
2
2
|
// 9 主要指標以外(個別株・他通貨ペア・他コモディティ等)を確認したいケース用の拡張点。
|
|
3
|
+
// v0.6.0: includeFundamentals=true で PER/PBR/配当利回り/ベータ等のファンダメンタル指標も同時取得。
|
|
3
4
|
import { z } from "zod";
|
|
4
|
-
import { fetchQuoteBySymbol } from "../lib/yahoo.js";
|
|
5
|
+
import { fetchFundamentals, fetchQuoteBySymbol } from "../lib/yahoo.js";
|
|
5
6
|
import { errorReply, jsonReply } from "./types.js";
|
|
6
7
|
const inputSchema = {
|
|
7
8
|
symbol: z
|
|
@@ -9,18 +10,37 @@ const inputSchema = {
|
|
|
9
10
|
.min(1)
|
|
10
11
|
.max(20)
|
|
11
12
|
.describe("Yahoo Finance ティッカー。例: AAPL(アップル株)/ ^DJI(NY ダウ)/ BTC-USD(ビットコイン)/ GBPJPY=X(ポンド円)"),
|
|
13
|
+
includeFundamentals: z
|
|
14
|
+
.boolean()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe("true で PER / PBR / 配当利回り / ベータ / 時価総額 / 配当性向などのファンダメンタル指標も取得(個別株向け、指数や暗号資産では大半が空)。既定 false"),
|
|
12
17
|
};
|
|
13
18
|
export const getQuoteTool = {
|
|
14
19
|
name: "get_quote",
|
|
15
20
|
title: "任意ティッカーの現在値取得",
|
|
16
|
-
description: "Yahoo Finance の任意ティッカー(株・為替・指数・コモディティ・暗号資産)の現在値・前日比・スパークラインを取得します。get_market_snapshot で扱う
|
|
21
|
+
description: "Yahoo Finance の任意ティッカー(株・為替・指数・コモディティ・暗号資産)の現在値・前日比・スパークラインを取得します。get_market_snapshot で扱う 28 指標以外を確認したいときに使用。includeFundamentals=true で PER/PBR/配当利回り/ベータも取得(個別株向け)。投資助言ではありません。",
|
|
17
22
|
inputSchema,
|
|
18
|
-
handler: async ({ symbol }) => {
|
|
23
|
+
handler: async ({ symbol, includeFundamentals }) => {
|
|
19
24
|
try {
|
|
20
25
|
const quote = await fetchQuoteBySymbol(symbol);
|
|
26
|
+
// ファンダメンタルは並列で取得しない(quote 失敗時は早期 return したいため)。
|
|
27
|
+
// ファンダメンタル取得失敗は無視して quote だけ返す(指数などで失敗するのが正常系)。
|
|
28
|
+
let fundamentals;
|
|
29
|
+
if (includeFundamentals) {
|
|
30
|
+
try {
|
|
31
|
+
fundamentals = await fetchFundamentals(symbol);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// 指数・FX・暗号資産では quoteSummary 自体が失敗する。エラーにせず空の fundamentals を返す。
|
|
35
|
+
fundamentals = undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
21
38
|
return jsonReply({
|
|
22
39
|
...quote,
|
|
23
|
-
|
|
40
|
+
...(fundamentals ? { fundamentals } : {}),
|
|
41
|
+
note: includeFundamentals
|
|
42
|
+
? "Yahoo Finance より取得(約 1 時間遅れ)。dividendYield は小数表記(0.0234 = 2.34%)。指数・FX・暗号資産ではファンダメンタル指標が欠損します。投資助言ではありません。"
|
|
43
|
+
: "Yahoo Finance より取得(約 1 時間遅れ)。投資助言ではなく情報集約。",
|
|
24
44
|
});
|
|
25
45
|
}
|
|
26
46
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-quote.js","sourceRoot":"","sources":["../../src/tools/get-quote.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,8CAA8C;
|
|
1
|
+
{"version":3,"file":"get-quote.js","sourceRoot":"","sources":["../../src/tools/get-quote.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,8CAA8C;AAC9C,yEAAyE;AAEzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CACP,kFAAkF,CACnF;IACH,mBAAmB,EAAE,CAAC;SACnB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,kLAAkL;IACpL,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC/C,gDAAgD;YAChD,gDAAgD;YAChD,IAAI,YAAY,CAAC;YACjB,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,YAAY,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,+DAA+D;oBAC/D,YAAY,GAAG,SAAS,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;gBACf,GAAG,KAAK;gBACR,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,IAAI,EAAE,mBAAmB;oBACvB,CAAC,CAAC,4GAA4G;oBAC9G,CAAC,CAAC,4CAA4C;aACjD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,UAAU,CACf,GAAG,MAAM,gBACP,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SACnC,8DAA8D,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// 初の HTTP fetch 導入(Yahoo Finance)— ローカル PC からインターネットに出ます。
|
|
7
7
|
// v0.4.0 で 5 ツール追加(温度計・ランキング・イールドスプレッド・市場時間・セクターヒートマップ)。
|
|
8
8
|
// 銘柄数 9 → 28 に拡大。
|
|
9
|
+
// v0.6.0 で 2 ツール追加(配当履歴・アナリストコンセンサス)+ get_quote にファンダメンタル指標オプション。
|
|
9
10
|
import { simulateNisaTool } from "./simulate-nisa.js";
|
|
10
11
|
import { planRetirementTool } from "./plan-retirement.js";
|
|
11
12
|
import { calculateRequiredMonthlyTool } from "./calculate-required-monthly.js";
|
|
@@ -18,6 +19,8 @@ import { getPerformanceRankingTool } from "./get-performance-ranking.js";
|
|
|
18
19
|
import { getYieldSpreadTool } from "./get-yield-spread.js";
|
|
19
20
|
import { getMarketSessionsTool } from "./get-market-sessions.js";
|
|
20
21
|
import { getSectorHeatmapTool } from "./get-sector-heatmap.js";
|
|
22
|
+
import { getDividendHistoryTool } from "./get-dividend-history.js";
|
|
23
|
+
import { getAnalystConsensusTool } from "./get-analyst-consensus.js";
|
|
21
24
|
export const tools = [
|
|
22
25
|
simulateNisaTool,
|
|
23
26
|
planRetirementTool,
|
|
@@ -32,5 +35,8 @@ export const tools = [
|
|
|
32
35
|
getYieldSpreadTool,
|
|
33
36
|
getMarketSessionsTool,
|
|
34
37
|
getSectorHeatmapTool,
|
|
38
|
+
// v0.6.0 新規ツール
|
|
39
|
+
getDividendHistoryTool,
|
|
40
|
+
getAnalystConsensusTool,
|
|
35
41
|
];
|
|
36
42
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,sDAAsD;AACtD,6CAA6C;AAC7C,8DAA8D;AAC9D,0DAA0D;AAC1D,yDAAyD;AACzD,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,sDAAsD;AACtD,6CAA6C;AAC7C,8DAA8D;AAC9D,0DAA0D;AAC1D,yDAAyD;AACzD,kBAAkB;AAClB,kEAAkE;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,4BAA4B;IAC5B,6BAA6B;IAC7B,qBAAqB;IACrB,0BAA0B;IAC1B,YAAY;IACZ,eAAe;IACf,wBAAwB;IACxB,yBAAyB;IACzB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,sBAAsB;IACtB,uBAAuB;CACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lit-forge-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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.), economic
|
|
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.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://github.com/noblabs/lit-forge-mcp",
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"stock-quote",
|
|
28
28
|
"forex",
|
|
29
29
|
"economic-calendar",
|
|
30
|
+
"dividend",
|
|
31
|
+
"analyst",
|
|
30
32
|
"japan"
|
|
31
33
|
],
|
|
32
34
|
"bin": {
|
|
@@ -47,6 +49,7 @@
|
|
|
47
49
|
},
|
|
48
50
|
"dependencies": {
|
|
49
51
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
52
|
+
"yahoo-finance2": "^3.14.0",
|
|
50
53
|
"zod": "^3.25.0"
|
|
51
54
|
},
|
|
52
55
|
"devDependencies": {
|