股票估值服务器

股票估值MCP服务器提供专业的股票估值和财务分析工具,适用于投资决策和实时市场数据分析。

  • by b9b4ymiN
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 b9b4ymiN/myMCPserver

使用说明

📊 股票估值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

手动部署步骤

  1. 设置Oracle云帐户

    • 创建免费等级帐户
    • 设置隔间和VCN
    • 生成SSH密钥
  2. 部署实例

    # 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
    
  3. 配置环境

    # 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

  1. 部署n8n

    docker-compose up -d
    
  2. 创建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云免费套餐

  1. 更新部署脚本:

    # Edit scripts/deploy-oracle.sh
    # Update your Oracle Cloud credentials
    
  2. 部署:

    chmod +x scripts/deploy-oracle.sh
    ./scripts/deploy-oracle.sh
    
  3. 配置环境:

    # 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     │◄────┘
│          └─────────────────┘      │
└─────────────────────────────────────┘

🤝 贡献

我们欢迎捐款!请按照以下步骤操作:

开发流程

  1. 分叉存储库
  2. 创建要素分支 (git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 如果适用,添加测试
  5. 确保所有测试通过 (npm test)
  6. 提交您的更改 (git commit -m 'Add amazing feature')
  7. 推到分支 (git push origin feature/amazing-feature)
  8. 创建拉取请求

代码规范

  • 对所有新代码使用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