MCP股票市场分析
一个强大的股票市场分析应用程序,利用AlphaVantage API提供实时股票数据和技术分析。该应用程序与模型上下文协议(MCP)集成,使AI助手能够访问股票市场数据和分析。
这个项目是基于这篇优秀的文章 分步指南:使用Python SDK、AlphaVantage和Claude AI构建MCP服务器 由Syed Hasan编写,并按照最新的MCP Python SDK最佳实践进行了改进。
特性
- 实时股票报价:获取最新的股票价格和交易信息
- 技术分析:计算并可视化RSI和移动平均线等关键指标
- MCP集成:通过模型上下文协议与人工智能助手无缝集成
- REST API:用于编程访问股票数据的FastAPI端点
- 交互式仪表板:基于Streamlit的可视化仪表板
入门指南
先决条件
- Python 3.12或更高版本
- AlphaVantage API密钥 (免费版可用)
- Git
安装
- 克隆存储库
git clone https://github.com/yourusername/mcp-stock-market-analysis.git
cd mcp-stock-market-analysis- 创建并激活虚拟环境
对于Windows:
python -m venv venv
venv\Scripts\activate对于macOS/Linux:
python -m venv venv
source venv/bin/activate- 安装依赖项
使用pip:
pip install -e .或者使用紫外线(更快):
pip install uv
uv install- 设置环境变量
创建一个 .env 使用AlphaVantage API密钥在项目根目录中创建文件:
ALPHA_VANTAGE_API_KEY=your_api_key_here您可以通过在注册获得免费的API密钥 AlphaVantage.
用法
运行完整的应用程序
运行整个应用程序(API服务器、MCP服务器和仪表板)的最简单方法是:
python server.py这将开始:
- FastAPI服务器已打开http://localhost:8000
- MCP服务器已打开http://localhost:8080
- 仪表板上的流光灯http://localhost:8501
单独运行组件
API和MCP服务器
python main.py仅仪表板
cd dashboard
streamlit run app.pyapi参考
REST API端点
| 端点 | 方法 | 描述 | 示例 |
|---|---|---|---|
/quote/{symbol} | 获取 | 获取最新股票报价 | /quote/AAPL |
/analyze/{symbol} | GET | 使用指标获取详细的股票分析 | /analyze/MSFT |
/historical/{symbol} | GET | 使用技术指标获取历史数据 | /historical/GOOGL |
MCP工具
| 工具 | 说明 | 参数 |
|---|---|---|
get_stock_quote | 获取最新股票报价 | symbol:股票代码(例如AAPL) |
analyze_stock | 通过技术指标获得详细的库存分析 | symbol:股票代码(例如AAPL) |
MCP资源
| 资源 | 描述 | 示例URI |
|---|---|---|
| 股票报价 | 获取格式化的股票报价信息 | stock://AAPL/quote |
| 库存分析 | 获取格式化的库存分析信息 | stock://AAPL/analysis |
例子
获取股票报价
curl http://localhost:8000/quote/AAPL答复:
{
"symbol": "AAPL",
"price": 221.53,
"change": -2.21,
"change_percent": "-0.9889%",
"volume": 58932401,
"latest_trading_day": "2025-03-26"
}与Claude或其他AI助手一起使用
MCP服务器运行后,您可以将其连接到Claude Desktop或其他兼容MCP的AI助手。然后,AI可以使用以下命令:
Get me the latest stock quote for Apple.
Analyze the recent performance of Microsoft stock.故障排除
- API关键问题:确保您的AlphaVantage API密钥在
.env文件 - 端口冲突:如果您收到“地址已在使用中”错误,请确保没有其他应用程序正在使用端口8000、8080或8501
- 速率限制:AlphaVantage的免费版有使用限制。如果你遇到错误,你可能会超过这些限制
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
