股票分析后端服务

一个基于Model Context Protocol (MCP)的生产级股票市场分析后端服务,提供实时新闻聚合和AI驱动的股票评估功能。

  • by Kudo510
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Kudo510/MCPStockAgent

使用说明

MCP股票代理

具有自动化CI管道和云部署的生产就绪股票市场分析后端

🎯 概述

此存储库是一个生产就绪的股票市场分析后端,利用 模型上下文协议(MCP) 来自Anthropic。后端服务使人工智能代理能够通过NewsAPI、雅虎财经和谷歌的实时新闻聚合提供的全面分析来评估特定股票。

演示:

https://github.com/user-attachments/assets/84d28c66-edb3-4091-b697-92148fa884d9

主要特点:

  • ✅ 自动化CI管道:GitLab CI用于自动化Docker镜像构建和标记
  • ✅ 云原生设计:Kubernetes编排与AWS EKS部署
  • ✅ MCP协议实现:AI代理和工具之间基于HTTP的流式通信
  • ✅ 可扩展架构:基于模块化MCP的工具系统允许无缝集成其他数据源(例如历史图表、用于更深入分析的图像)
  • ✅ 现代后端堆栈:具有容器化架构的FastAPI

🏗️ 建筑

┌─────────────┐      HTTP/MCP Protocol       ┌─────────────┐
│   FastAPI   │ ◄──────────────────────────► │ MCP Server  │
│   Client    │                              │  (Tools)    │
│  (GPT-4o)   │                              │             │
└─────────────┘                              └─────────────┘
                                                   │
                                                   ├─► NewsAPI
                                                   ├─► Yahoo Finance
                                                   └─► Google

后端组件:

  • 客户服务:FastAPI应用程序与GPT-4o集成,用于智能查询处理
  • MCP 服务器:遵循Anthropic模型上下文协议的标准化HTTP服务,用于工具编排

🚀 快速开始

先决条件

Python 3.10+
Docker & Kubernetes (for deployment)
OpenAI API Key
NewsAPI Key (free tier available at https://newsapi.org/)

本地开发

# Environment setup
python -m venv venv
source venv/bin/activate
pip install -r client/requirements.txt -r server/requirements.txt

# Configuration
cat > .env << EOF
OPENAI_KEY=your_openai_api_key
NEWS_API_KEY=your_newsapi_key
EOF

# Launch backend services
pip install python-dotenv
python -m dotenv -f .env run -- python server/mcp_server.py &
python -m dotenv -f .env run -- python client/service.py

前端设置(可选-AI辅助演示UI)

cd ui
# Setup Tailwind
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
# Install icon library
npm install lucide-react 
npm install
# Update apiUrl in src/App.tsx with your backend URL
npm run dev

📦 生产部署

CI管道(GitLab)

通过以下方式在每次提交时自动构建Docker镜像并标记 .gitlab-ci.yaml:

# Local test on built Docker images
make test

Kubernetes部署

1.️⃣ 本地转移(Minikube)

# Create GitLab registry credentials
kubectl create secret docker-registry gitlab-registry-secret \
  --docker-server=registry.gitlab.com \
  --docker-username=<your-username> \
  --docker-password=<deploy-token> \
  --docker-email=<your-email>

# Deploy to staging
make staging_deploy

# Access backend service
# URL: http://$(minikube ip):30031

# Once staging service works, deploy release version 
make release
# URL: http://$(minikube ip):30032

2.️⃣ AWS EKS生产

设置AWS CLI和eksctl:

# Install AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install
aws --version

# Configure credentials (requires IAM user with EKS permissions)
aws configure

# Install eksctl
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
eksctl version

部署到EKS:

# Provision cluster (uses t3.micro free-tier nodes - adjust in aws-eks/eks-cluster.yaml for production)
eksctl create cluster -f aws-eks/eks-cluster.yaml

# Deploy application
make release_aws_eks

# Get service endpoint
kubectl get svc mcp-stock-agent -n agentic-release
# Access at: http://<EXTERNAL-IP>/docs

⚠️ 成本管理

# Always delete cluster after testing
eksctl delete cluster -f aws-eks/eks-cluster.yaml

# Verify deletion in AWS Console:
# - EC2 instances
# - EKS cluster
# - EBS volumes (if persistent storage was used)

🛠️ 技术栈

层 技术
后端 FastAPI,Python
AI集成 OpenAI GPT-4o
协议 人类MCP(模型上下文协议)
容器化 Docker
编排 库贝内特斯
持续集成 GitLab 的
云 AWS-EKS--

🔮 未来的增强功能

DevOps:

  • []用于直接EKS部署的自动化CD管道
  • []Prometheus+Grafana监控堆栈
  • []模板化部署的Helm图表

后端功能:

  • []技术分析API(价格图表、指标)
  • []估值指标终点(市盈率、市盈率、DCF分析)
  • []股票筛选API低估的机会
  • []买卖推荐引擎

演出

  • []探索开源模型(权衡:在复杂的工具调用场景中准确性降低)
  • []用于频繁请求的股票数据的缓存层
  • []速率限制和请求优化

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件


👤 联系

Cuong Van大坝 - 领英 | 电子邮件