股票分析MCP系统

一个集成了Alpha Vantage API和Azure OpenAI的安全、生产就绪的股票分析系统,提供实时和历史股票数据获取及AI驱动的分析功能。

  • by ChandraVardhan97
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ChandraVardhan97/MCP-Stock-Analyzer

使用说明

基于Azure OpenAI的股票分析MCP系统

一个安全、可投入生产的模型上下文协议(MCP)服务器和客户端,用于股票分析,集成了Alpha Vantage API用于市场数据和Azure OpenAI用于智能分析。

特点/特性

  • MCP服务器从Alpha Vantage获取实时和历史股票数据
  • Azure与OpenAI的集成提供基于人工智能的股票分析和投资见解
  • 综合分析技术指标、基本面及6个月历史趋势
  • 安全最佳实践基于环境的配置、输入验证、速率限制
  • **交互式命令行界面(CLI)**用户友好的命令行界面,用于股票查询

建筑

User Query → MCP Client + Azure OpenAI → MCP Server → Alpha Vantage API
                ↓
        Azure OpenAI
                ↓
        Analysis Result

先决条件

  1. Python 3.9+ 安装好的;已安装的
  2. Alpha Vantage API密钥 (免费版可在 https://www.alphavantage.co/support/#api-key 获取)
  3. Azure OpenAI 服务 部署并启用API访问。注意-我使用了Azure OpenAI,从技术上讲,你可以使用任何模型/提供者。你只需要更改环境变量(API密钥、URL和部署名称)。如果你使用的是除OpenAI以外的任何模型提供者,你需要相应地修改MCP客户端和服务器文件,并确保你使用了适当的SDK库来调用模型。
  4. 虚拟环境 (推荐)

安装

  1. 克隆仓库:
git clone <repository-url>
cd mcp-project
  1. 创建虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 配置环境变量:
cp .env.example .env

编辑 .env 使用您的凭据:

# Alpha Vantage API Configuration
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key

# Azure OpenAI Configuration
AZURE_OPENAI_API_KEY=your_azure_key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4
AZURE_OPENAI_API_VERSION=2024-02-15-preview

使用方法

启动MCP服务器

在一个终端中运行服务器:

python mcp_stock_server.py or ./run_server.sh

服务器将:

  • 监听通过标准输入输出(stdio)的MCP客户端连接
  • 从Alpha Vantage API获取数据
  • 提供工具: get_current_stock_price 并且 get_stock_analysis

使用客户端

交互模式

python mcp_client.py or ./run_client.sh

命令:

  • ask compare AAPL and MSFT - 详细对比股票基本面和技术信息,并给出投资建议(AI决定调用哪些工具)
  • analyze AAPL - 对苹果股票进行全面的AI驱动分析(传统方式 - MCP服务器为AI提供数据,以便模型进行分析)
  • price MSFT - 获取当前微软股票价格(直接调用AlphaVantage API仅获取价格)
  • help - 显示可用命令
  • quit - 退出程序

命令行模式

python mcp_client.py --analyze AAPL

示例交互

> analyze TSLA

Analyzing TSLA... This may take a moment...

============================================================
AI ANALYSIS FOR TSLA
============================================================

COMPREHENSIVE ANALYSIS:

Current Market Position:
Tesla is currently trading at $242.56, showing strong momentum...

Technical Analysis:
- The stock is trading above its 20-day SMA ($235.40)
- 30-day momentum is positive at +8.5%
- Volatility remains elevated at 42.3

Fundamental Strength:
- P/E Ratio: 58.2 (growth premium justified by expansion)
- Profit Margin: 8.2% (improving quarter-over-quarter)
- Strong revenue growth: +25% YoY

Investment Outlook:
MODERATE BUY - Tesla shows strong growth potential with 
expansion into energy storage and autonomous driving...

Risk Factors:
- High valuation multiples
- Regulatory challenges in key markets
- Intense competition in EV space

Recommendation:
Suitable for growth-oriented investors with higher risk tolerance.
Consider dollar-cost averaging given current volatility.
============================================================

安全功能

  1. 基于环境的配置所有敏感数据在 .env 文件
  2. 输入验证Pydantic模型验证所有输入
  3. 速率限制可配置的请求限制,以防止滥用API
  4. 错误处理带日志记录的全面异常处理
  5. 安全通信对于所有外部API调用使用HTTPS
  6. 不硬编码敏感信息所有凭据均从环境变量中加载

API速率限制

  • Alpha Vantage 免费版每天25次API请求。如需更多,请获取高级计划。
  • Azure OpenAI根据模型的订阅级别/每秒令牌生成量(TPM)设置而有所不同。
  • 配置 MAX_REQUESTS_PER_MINUTE 在 .env 尊重界限

项目结构

mcp-project/
├── mcp_stock_server.py    # MCP server implementation
├── mcp_client.py          # Client with Azure OpenAI integration
├── requirements.txt       # Python dependencies
├── setup.py              # Package setup script
├── .env.example          # Environment template
├── .env                  # Your configuration (git-ignored)
├── .gitignore           # Git ignore rules
└── README.md            # This file

测试

运行测试套件:

pytest tests/ -v --cov=.

故障排除

常见问题

  1. API调用频率已达上限

    • 等待60秒以重置Alpha Vantage的速率限制
    • 考虑升级到高级API计划
  2. “无效库存”

    • 确保该股票在美国主要证券交易所上市
  3. “Azure OpenAI 连接失败”

    • 检查终端节点URL格式(应以 /)
    • 验证部署名称是否与您的Azure配置相匹配
    • 确保API密钥具有适当的权限
  4. “MCP服务器无响应”

    • 在启动客户端之前,请确保服务器正在运行
    • 检查Python版本兼容性(3.9及以上)

最佳实践

  1. API密钥安全:

    • 永远不要放弃 .env 将文件纳入版本控制
    • 定期轮换API密钥
    • 在生产环境中使用 Azure Key Vault 进行部署
  2. 错误处理:

    • 始终优雅地处理API故障
    • 实现指数退避重试机制
    • 记录日志错误以供调试
  3. 演出:

    • 缓存频繁请求的库存数据
    • 在可能的情况下批量处理API请求
    • 使用异步操作处理并发请求

贡献;做出贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 在测试中进行更改
  4. 提交拉取请求

支持

对于问题或疑问:

  • 在GitHub上提交一个问题
  • 查阅Alpha Vantage的文档:https://www.alphavantage.co/documentation/
  • Azure OpenAI 文档:https://learn.microsoft.com/azure/ai-services/openai/

免责声明

此工具仅供信息参考之用。在做出投资决策前,请务必自行进行研究并咨询财务顾问。过往业绩并不预示未来表现。