使用说明
📊 股票估值MCP服务器
A comprehensive Model Context Protocol (MCP) server for professional stock valuation and financial analysis📖 目录
📝 关于
股票估值MCP服务器为股票估值和投资决策提供专业级的财务分析工具。它与Claude Desktop无缝集成,并通过SET Watch API提供泰国股市的实时数据。
关键能力
- 估值模型:市盈率区间分析、股息贴现模型(DDM)、贴现现金流(DCF)
- 实时数据:SET Watch API实时股票数据
- 财务报表:完整的损益表、资产负债表和现金流量分析
- 历史分析:跟踪和分析随时间变化的财务比率
- 投资建议:数据驱动的买入/卖出/持有建议
- 安全配置:API密钥和机密的基于环境的配置
✨ 特性
📈 估价工具
- PE波段分析 -具有公允价值范围的历史市盈率分析
- 股息贴现模型(DDM) -派息股票的Gordon增长模型
- 贴现现金流(DCF) -使用自由现金流预测进行内在价值计算
🔍 实时数据集成
- SET Watch API集成 -获取实时泰国股票数据
- 财务报表 -完整的财务报表分析
- 历史比率 -跟踪PE、PBV、ROE、ROA、ROIC随时间的变化趋势
- 自动计算 -自动计算关键财务比率
📊 分析特征
- 趋势分析 -识别估值和盈利趋势
- 比较分析 -与历史平均值进行比较
- 投资评分 -生成买入/卖出/持有建议
- 风险度量 -Altman Z分数、Piotroski F分数计算
🛡️ 安全与配置
- 环境变量 -安全的API密钥和配置管理
- Oracle云就绪 -针对Oracle云免费层部署进行了优化
- Docker支持 -带有环境注入的容器化部署
- 类型安全 -具有全面类型定义的完整TypeScript实现
🛠️ 支持的工具
| 工具类别 | 工具名称 | 描述 |
|---|---|---|
| 估值 | calculate_pe_band |
利用历史数据计算PE波段估值 |
| 估值 | calculate_ddm |
股利贴现模型分析 |
| 估值 | calculate_dcf |
贴现现金流估值 |
| 数据获取 | fetch_stock_data |
从SET Watch获取实时股票数据 |
| 数据获取 | complete_valuation |
使用提取的数据运行所有估值模型 |
| 财务报表 | fetch_income_statement |
获取损益表数据 |
| 财务报表 | fetch_balance_sheet |
获取资产负债表数据 |
| 财务报表 | fetch_cash_flow_statement |
获取现金流量表数据 |
| 财务报表 | fetch_all_financial_statements |
使用比率分析获取所有报表 |
| 历史分析 | fetch_historical_ratios |
获取历史PE、PBV、ROE、ROA、ROIC数据 |
| 历史分析 | analyze_historical_ratios |
分析趋势并提出投资建议 |
🚀 快速开始
先决条件
- 已安装Node.js 18+
- Claude Desktop(用于MCP集成)
- Docker(可选,用于容器化部署)
安装
# Clone the repository
git clone <repository-url>
cd myMCPserver
# Install dependencies
npm install
# Copy environment configuration
cp .env.example .env
# Build the project
npm run build
Claude桌面集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"stock-valuation": {
"command": "node",
"args": ["C:/Programing/ByAI/myMCPserver/dist/index.js"]
}
}
}
重新启动Claude Desktop以开始使用工具!
MCP检验员快速测试
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector node dist/index.js
☁️ Oracle云部署
一键部署
# Deploy to Oracle Cloud Free Tier
chmod +x scripts/deploy-oracle.sh
./scripts/deploy-oracle.sh
手动部署步骤
-
设置Oracle云帐户
- 创建免费等级帐户
- 设置隔间和VCN
- 生成SSH密钥
-
部署实例
# Using OCI CLI oci compute instance launch \ --availability-domain <your-AD> \ --compartment-id <compartment-id> \ --shape VM.Standard.A1.Flex \ --shape-config '{"memoryInGBs": "6", "ocpus": "2"}' \ --display-name stock-valuation-mcp \ --assign-public-ip true -
配置环境
# SSH into instance ssh -i ~/.ssh/oracle_key opc@<instance-ip> # Setup Docker sudo yum install -y docker sudo systemctl start docker sudo usermod -aG docker opc # Deploy MCP Server docker run -d \ --name stock-valuation-mcp \ --restart unless-stopped \ -p 2901:2901 \ -e NODE_ENV=production \ -e SET_WATCH_API_HOST=https://your-api.com \ stock-valuation-mcp:latest
有关详细的部署说明,请参阅 Oracle云部署指南.
🔗 n8n集成
设置n8n
-
部署n8n
docker-compose up -d -
创建HTTP请求节点
{ "method": "POST", "url": "http://YOUR-MCP-SERVER:2901/mcp", "body": { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "fetch_stock_data", "arguments": { "symbol": "ADVANC" } } } }
示例工作流
- 每日分析报告:每天早上自动分析投资组合股票
- 价格提醒:当股票达到目标价格时收到通知
- 批量估价:并行评估多个股票
有关完整的n8n集成指南,请参阅 n8n集成文档.
📚 文档
| 文档 | 描述 |
|---|---|
| Oracle云部署 | 部署到Oracle云免费层的完整指南 |
| n8n集成 | 与n8n集成,实现自动化工作流程 |
| n8n API示例 | 即用型n8n工作流示例 |
| 故障排除 | 常见问题和解决方案 |
⚙️ 安装
发展模式
# Install dependencies
npm install
# Set up environment
cp .env.example .env
# Build TypeScript
npm run build
# Run in development
npm run dev
生产模式
# Build for production
npm run clean
npm run build
# Run production server
npm start
Docker部署
# Build image
docker build -t stock-valuation-mcp .
# Run with Docker
docker run -d \
-p 2901:2901 \
-e NODE_ENV=production \
stock-valuation-mcp
# Or use Docker Compose
docker-compose up -d
🔧 配置
环境变量
创建 .env 文件基于 .env.example:
# API Configuration
SET_WATCH_API_HOST=https://xxxxxxxxxxxx.app # Your API host
SET_WATCH_API_TIMEOUT=30000
# Server Configuration
NODE_ENV=production
LOG_LEVEL=info
# Optional: Custom API Authentication
# API_AUTH_HEADER=X-API-Key
# API_AUTH_VALUE=your-api-key
可用变量
| 变量 | 描述 | 默认值 |
|---|---|---|
SET_WATCH_API_HOST |
SET Watch API基本URL | https://xxxx-api.vercel.app |
SET_WATCH_API_TIMEOUT |
API请求超时(ms) | 30000 |
NODE_ENV |
环境模式 | development |
LOG_LEVEL |
日志记录级别 | info |
API_AUTH_HEADER |
自定义身份验证标头 | (无) |
API_AUTH_VALUE |
身份验证标头值 | (无) |
📚 API 文档
工具示例
1.完成库存分析
{
"tool": "complete_valuation",
"arguments": {
"symbol": "ADVANC",
"requiredReturn": 0.10,
"growthRate": 0.05,
"discountRate": 0.10
}
}
2.财务报表分析
{
"tool": "fetch_all_financial_statements",
"arguments": {
"symbol": "SCB",
"period": "Quarterly"
}
}
3.历史趋势分析
{
"tool": "analyze_historical_ratios",
"arguments": {
"symbol": "PTT",
"period": "Quarterly"
}
}
响应格式
所有工具都返回结构化的JSON响应,包括:
{
"symbol": "ADVANC.BK",
"timestamp": "2024-01-20T10:30:00Z",
"data": { ... },
"analysis": { ... },
"recommendation": "Buy"
}
💡 使用示例
示例1:泰国股票估值
{
"tool": "fetch_stock_data",
"arguments": {
"symbol": "AOT"
}
}
响应:当前股票数据,包括市盈率、市盈率、每股收益、股息收益率、净资产收益率等。
示例2:使用自定义数据进行PE波段分析
{
"tool": "calculate_pe_band",
"arguments": {
"symbol": "AAPL",
"currentPrice": 150.00,
"eps": 5.00,
"historicalPEs": [15, 18, 20, 22, 25, 23]
}
}
响应:PE波段分析,包括公允价值范围和建议。
示例3:DCF估值
{
"tool": "calculate_dcf",
"arguments": {
"symbol": "GOOGL",
"currentPrice": 150,
"freeCashFlow": 60000000000,
"sharesOutstanding": 15000000000,
"growthRate": 0.08,
"discountRate": 0.10,
"years": 5
}
}
响应:DCF分析,包括5年预测和内在价值计算。
示例4:历史比率分析
{
"tool": "analyze_historical_ratios",
"arguments": {
"symbol": "KBANK",
"period": "Quarterly"
}
}
响应:完成历史分析,包括趋势和投资建议。
🚀 部署
Oracle云免费套餐
-
更新部署脚本:
# Edit scripts/deploy-oracle.sh # Update your Oracle Cloud credentials -
部署:
chmod +x scripts/deploy-oracle.sh ./scripts/deploy-oracle.sh -
配置环境:
# On the instance docker pull <your-image> docker run -d \ -p 2901:2901 \ -e NODE_ENV=production \ -e SET_WATCH_API_HOST=https://your-api.com \ <your-image>
Docker Compose
services:
stock-valuation:
build: .
restart: unless-stopped
environment:
- NODE_ENV=production
- SET_WATCH_API_HOST=https://your-api.com
ports:
- "2901:2901"
volumes:
- ./logs:/app/logs
环境特定配置
开发(.env.Development):
NODE_ENV=development
LOG_LEVEL=debug
SET_WATCH_API_TIMEOUT=60000
生产(.env.Production):
NODE_ENV=production
LOG_LEVEL=warn
SET_WATCH_API_TIMEOUT=10000
🏗️ 建筑
项目结构
myMCPserver/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── config/ # Configuration management
│ │ └── index.ts # Environment variable configuration
│ ├── types/ # TypeScript type definitions
│ │ └── index.ts # All type definitions
│ └── tools/ # MCP tool implementations
│ ├── stockValuation.ts # Core valuation models
│ ├── setWatchApi.ts # SET Watch API integration
│ ├── financialStatements.ts # Financial statement tools
│ └── historicalRatios.ts # Historical analysis tools
├── scripts/ # Deployment scripts
├── dist/ # Compiled TypeScript output
├── docs/ # Additional documentation
├── tests/ # Test files (when added)
├── docker-compose.yml # Docker configuration
├── Dockerfile # Docker image definition
├── .env.example # Environment variable template
└── README.md # This file
MCP服务器架构
┌─────────────────────────────────────┐
│ Claude Desktop │
│ │ │
│ MCP Protocol │
│ │ │
├─────────────────────────────────────┤
│ Stock Valuation Server │
│ ┌─────────────────────────────┐ │
│ │ Tool Registry │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ Valuation Tools │ │ │
│ │ │ Data Fetching Tools │ │ │
│ │ │ Analysis Tools │ │ │
│ │ └─────────────────────────┘ │ │
│ │ ┌─────────────────┐ │ │
│ │ │ Configuration │ │ │
│ │ └─────────────────┘ │ │
│ └─────────────────────────────┘ │
│ │ │
│ ┌─────────────────┐ │
│ │ SET Watch API │◄────┘
│ └─────────────────┘ │
└─────────────────────────────────────┘
🤝 贡献
我们欢迎捐款!请按照以下步骤操作:
开发流程
- 分叉存储库
- 创建要素分支 (
git checkout -b feature/amazing-feature) - 进行更改
- 如果适用,添加测试
- 确保所有测试通过 (
npm test) - 提交您的更改 (
git commit -m 'Add amazing feature') - 推到分支 (
git push origin feature/amazing-feature) - 创建拉取请求
代码规范
- 对所有新代码使用TypeScript
- 遵循ESLint规则(
npm run lint) - 为函数添加JSDoc注释
- 为新功能编写测试
- 更新文档
测试
# Run unit tests
npm test
# Run with coverage
npm run test:coverage
# Run in watch mode
npm run test:watch
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏♂️ 致谢
📞 支持
Built with ❤️ for the investment community