grobal mcp stock server
Provides real-time access to global stock market data including current prices, historical charts, and company financial information through a Model Context Protocol (MCP) server for AI assistants.
Provides real-time access to global stock market data including current prices, historical charts, and company financial information through a Model Context Protocol (MCP) server for AI assistants.
グローバル株式市場データと分析のためのModel Context Protocol (MCP) サーバー
このプロジェクトは、株式市場データにアクセスするためのMCPサーバーを提供します。AI アシスタントが株価、チャートデータ、企業情報などにリアルタイムでアクセスできるようにします。
Model Context Protocol(MCP)は、アプリケーションが大規模言語モデル(LLM)にコンテキストを提供するための標準化された方法です。詳細は Model Context Protocol ウェブサイト をご覧ください。
git clone https://github.com/sakura-ku/grobal_mcp_stock_server.git
cd grobal_mcp_stock_server
npm install
npm run build
npm start
初めに、必要な環境変数を設定します。.env
ファイルを作成するか、既存の.env.example
ファイルをコピーして使用します:
# Windows PowerShellの場合
Copy-Item .env.example .env
# UNIX系システムの場合
cp .env.example .env
.env
ファイルを編集して、必要なAPIキーを設定します:
# 基本設定
PORT=3000
HOST=localhost
NODE_ENV=development
# Polygon.io APIキー (株価データ取得用)
POLYGON_API_KEY=your_polygon_api_key_here
# その他のAPIキー...
開発モードでサーバーを起動するには:
npm run dev
本番モードでサーバーを起動するには:
npm run build
npm run start:prod
サーバーが起動したら、ブラウザから以下のURLで株価データにアクセスできます:
http://localhost:3000/api/stock/price?symbol=AAPL
コマンドラインからcURLを使用してデータを取得できます:
# 株価データの取得
curl "http://localhost:3000/api/stock/price?symbol=AAPL"
# 株価履歴データの取得(過去30日間)
curl "http://localhost:3000/api/stock/history?symbol=AAPL&days=30"
Node.jsアプリケーションから利用する例:
// 株価データを取得する関数
async function getStockPrice(symbol) {
const response = await fetch(`http://localhost:3000/api/stock/price?symbol=${symbol}`);
const data = await response.json();
return data;
}
// 使用例
getStockPrice('AAPL').then(data => {
console.log(`現在の${data.symbol}の株価: ${data.price} ${data.currency}`);
});
Claude、GPT-4などのAIアシスタントとの統合方法については、「MCPクライアントとの連携」セクションを参照してください。
Claudeプロンプトの例:
株価を調べてください。
テスラ(TSLA)の現在の株価と、過去1週間の動向を教えてください。
テスラ(TSLA)の株価情報は以下の通りです:
現在の株価: $248.42 USD
前日比: +$5.21 (+2.14%)
取引量: 3,421,532株
過去1週間の動向:
- 7日前: $230.15
- 6日前: $232.05
- 5日前: $235.87
- 4日前: $239.14
- 3日前: $242.33
- 2日前: $243.21
- 1日前: $248.42
過去1週間で約8%の上昇トレンドを示しています。特に直近3日間で価格の上昇が加速しています。
指定された銘柄の現在の株価と関連情報を取得します。
パラメータ:
- symbol
(string): 株式の銘柄コード(例: AAPL, MSFT, GOOGL)
戻り値: - 株価情報(価格、変動、通貨など)
このMCPサーバーをクライアント(Claude, Claude Desktop, その他MCPサポートアプリケーション)で利用するには、mcp.jsonファイルを作成し、MCPサーバーの定義を行います。
以下は、このサーバーを利用するためのmcp.json定義例です。この設定をMCPクライアントに追加することで、株価情報にアクセスできるようになります:
{
"servers": [
{
"id": "global-stock-server",
"url": "http://localhost:3000",
"description": "株式市場データと分析のためのMCPサーバー",
"tools": [
{
"name": "get_stock_price",
"description": "指定された株式銘柄の現在の株価と関連情報を取得します",
"parameters": {
"type": "object",
"required": ["symbol"],
"properties": {
"symbol": {
"type": "string",
"description": "株式銘柄コード(例: AAPL, MSFT, GOOGL)"
}
}
}
}
]
}
]
}
これで、MCPクライアントのプロンプトやチャット内で株価情報ツールが利用可能になります。
Cursor IDEでは、settings.jsonファイルにMCPサーバーの設定を追加することで、AIアシスタントがツールを利用できるようになります。
Ctrl+,
macOS: Cmd+,
"Cursor Settings"を選択し、settings.jsonファイルを編集します
mcpServers
セクションに以下の設定を追加します:
このプロジェクトはローカルでの開発・実行を前提としています。npmスクリプトを使用して実行するのが最も確実な方法です:
{
"mcpServers": {
"global-stock-server": {
"command": "npm",
"args": ["run", "start"],
"cwd": "/path/to/grobal_mcp_stock_server",
"env": {
"PORT": "3000",
"HOST": "localhost",
"NODE_ENV": "production",
"STOCK_API_KEY": "your_api_key_here"
}
}
}
}
開発モードで実行する場合:
{
"mcpServers": {
"global-stock-server": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "/path/to/grobal_mcp_stock_server",
"env": {
"PORT": "3000",
"HOST": "localhost",
"NODE_ENV": "development",
"STOCK_API_KEY": "your_api_key_here"
}
}
}
}
このMCPサーバーはGitHub Packagesを使用してプライベートnpmレジストリとして公開されています。以下の手順でインストールできます:
.npmrc
ファイルを作成または編集して認証設定を行います:@sakura-ku:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
NPM_TOKEN
にGitHubの個人アクセストークンを設定します:# Windowsの場合
$env:NPM_TOKEN="your_github_token"
# macOS/Linuxの場合
export NPM_TOKEN="your_github_token"
npm install @sakura-ku/grobal-mcp-stock-server
{
"mcpServers": {
"global-stock-server": {
"command": "npx",
"args": ["@sakura-ku/grobal-mcp-stock-server"],
"env": {
"PORT": "3000",
"HOST": "localhost",
"STOCK_API_KEY": "your_api_key_here"
}
}
}
}
詳細な設定方法はプライベートnpmレジストリの管理方法をご参照ください。
npm install
を実行)TypeScriptのバージョンが合っているか確認
ツールが見つからない場合:
npm run dev
でサーバーをデバッグモードで起動grobal_mcp_stock_server/
├── build/ # コンパイルされたJavaScriptファイル
├── src/
│ ├── __tests__/ # 統合テストとテストユーティリティ
│ ├── config/ # 設定ファイル
│ ├── data/ # データモデルとストレージ
│ ├── errors/ # カスタムエラークラス
│ ├── services/ # 外部APIとの連携サービス
│ ├── tools/ # MCPツール実装
│ │ └── __tests__/ # ツールユニットテスト
│ ├── types/ # TypeScript型定義
│ └── index.ts # メインサーバーエントリーポイント
├── package.json # プロジェクト設定
├── tsconfig.json # TypeScript設定
└── README.md # プロジェクトドキュメント
開発依存関係をインストールする:
npm install
開発モードでサーバーを起動する:
npm run dev
npm run dev
npm run lint
npm run lint:fix
npm test
package.jsonで定義されているスクリプトの詳細説明:
build
: TypeScriptコードをコンパイルし、distディレクトリに出力しますbuild:dev
: 開発環境用にソースマップ付きでビルドしますbuild:prod
: 本番環境用にソースマップなしでビルドしますclean
: distディレクトリを削除して清掃しますprebuild
: ビルド前に自動的にcleanスクリプトを実行しますstart
: コンパイル済みのサーバーを起動しますstart:dev
: 開発環境設定でサーバーを起動しますstart:prod
: 本番環境設定でサーバーを起動しますdev
: ソースコードの変更を監視し、自動的にビルドと再起動を行う開発モードですlint
: ESLintを使用してTypeScriptコードの静的解析を行いますlint:fix
: ESLintを使用してコードの問題を自動修正しますtest
: Jestを使用して全てのテストを実行しますtest:watch
: テストをウォッチモードで実行し、変更時に再実行しますtest:coverage
: テストカバレッジレポートを生成しますtest:ci
: CI環境用のテスト設定で実行しますtest:unit
: ユニットテストのみを実行しますtest:integration
: 統合テストのみを実行しますtest:services
: サービステストのみを実行しますtest:debug
: デバッグモードでテストを実行しますdeploy:staging
: ステージング環境にデプロイしますdeploy:production
: 本番環境にデプロイしますpublish:package
: npmレジストリにパッケージを公開しますprepare:package
: パッケージング前に本番ビルドを実行し、tarballを作成しますprepublishOnly
: パッケージ公開前に本番用ビルドを実行しますISC
このプロジェクトへの貢献に興味がある場合は、プルリクエストを送信してください。