Token导航 LogoToken导航TokenDH.com
aistockrecommender logo
金融服务stdio官方级别未说明来源级核验

aistockrecommender

MCP Server

一个多代理AI系统,用于股票分析和投资组合推荐,适用于个人投资者和金融分析师。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
金融数据PythonAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

debo-6186

提供方

debo-6186

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python apply_migration.py

详细介绍

AI股票推荐器

用于股票分析和投资组合推荐的多代理人工智能系统。该平台使用谷歌的代理开发工具包(ADK)和A2A(代理到代理)协议,其中Host Agent协调专门的子代理提供股票分析、投资组合报告分析和投资建议。

组件

组件技术栈端口用途
前端React 19、TypeScript、Tailwind CSS、Firebase Auth3000具有聊天、认证、配置文件和投资组合视图的用户界面
主机代理FastAPI、Google ADK、A2A SDK、SQLAlchemy10001编排代理、服务REST API、管理会话
股票分析代理谷歌ADK、A2A SDK、yfinance、困惑AI10002分析股票、获取市场数据、生成推荐
股票报告分析代理Google ADK、A2A SDK、PyMuPDF10003分析上传的投资组合PDF和财务文档
MCP服务器FastMCP、yfinance、pandas_tastdio为代理商提供股票数据工具(价格、新闻、技术)
PostgreSQLPostgreSQL 155432用户、会话、消息、推荐
瑞迪斯Redis6379针对长时间运行的代理操作的异步任务跟踪

先决条件

  • python >= 3.12
  • Node.js >= 18
  • Docker&Docker编写 (适用于PostgreSQL)
  • 瑞迪斯 (本地安装或Docker)
  • Google API密钥 (适用于ADK制剂的Gemini API)
  • Firebase项目 (用于身份验证)

______________________________________________________________________

1.数据库设置

通过Docker Compose启动PostgreSQL:

cd backend
docker-compose up -d

这将以以下方式启动PostgreSQL 15实例:

  • 数据库: finance_a2a
  • 用户: postgres
  • 密码: password
  • 端口: 5432

init.sql 脚本自动运行并创建: users, conversation_sessions, conversation_messages,以及 agent_states 桌子。

应用迁移(如果需要)

cd backend/host_agent
python apply_migration.py

______________________________________________________________________

2.MCP服务器设置

MCP服务器通过以下方式向代理提供股票市场数据工具 模型上下文协议.它作为一个 stdio子流程 它由Host Agent和Stock Analyser Agent生成,不需要单独启动。

环境变量

cd mcp
cp .env.example .env
变量描述
FINNHUB_API_KEYFinnhub API密钥(可选,当前未使用——数据来自yfnance)
ANTHROPIC_API_KEY仅在运行独立MCP客户端测试时需要

MCP工具暴露

工具说明
get_stock_symbol_lookup(query)搜索最匹配的股票代码
get_stock_news(symbol)获取某只股票的最新新闻文章
get_price_history(symbol, period, interval)RSI、MACD、布林带的历史价格
search(query, search_type)雅虎财经搜索报价或新闻
get_stock_info(symbol)全面的股票信息(估值、财务、资产负债表)
get_stock_recommendations(symbol)分析师对股票的建议
get_US_market_news()最新美国市场新闻摘要

MCP提示

提示描述
stock_analysis完整的股票分析工作流程(品种查找、信息、技术、推荐)
market_overview全面的市场概况

代理商如何呼叫MCP

两者 主机代理股票分析代理 使用Google ADK将MCP服务器作为子进程生成 MCPToolset 随着 StdioConnectionParams:

from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StdioConnectionParams
from mcp import StdioServerParameters

connection_params = StdioConnectionParams(
    server_params=StdioServerParameters(
        command=sys.executable,          # current Python interpreter
        args=["/path/to/mcp/server.py"], # path to MCP server script
        env=mcp_env,
    )
)
stock_mcp_tool = MCPToolset(connection_params=connection_params)

MCP_DIRECTORY 配置变量(在Host Agent和Stock Analyser Agent中)指向 mcp/ 文件夹。Host Agent直接使用MCP工具进行投资组合绩效价格查询,而Stock Analyser Agent在其ADK代理中使用它们进行全面的股票分析。

______________________________________________________________________

3.后端设置

3a。主机代理(端口10001)

前端与之通信的中央FastAPI服务器。它通过A2A协议协调其他代理。

cd backend/host_agent

# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r ../requirements.txt
pip install google-adk a2a-sdk python-dotenv uvicorn firebase-admin \
            sqlalchemy psycopg2-binary redis slowapi httpx nest_asyncio \
            boto3 PyMuPDF requests

# Configure environment
cp env.example .env
# Edit .env with your values (see table below)

# Run
python __main__.py

Host Agent环境变量

变量必填默认描述
GOOGLE_API_KEY--Google Gemini API密钥
DATABASE_URL是的postgresql://postgres:password@localhost:5432/finance_a2aPostgreSQL连接字符串
FIREBASE_PROJECT_ID--用于身份验证的Firebase项目ID
FIREBASE_SERVICE_ACCOUNT_PATH--Firebase服务帐户JSON路径
HOST_AGENT_PORT没有10001Host Agent API的端口
STOCK_ANALYSER_AGENT_URL没有http://localhost:10002股票分析代理URL
STOCK_REPORT_ANALYSER_AGENT_URL没有http://localhost:10003股票报告分析器代理URL
MCP_DIRECTORY(本地路径)路径 mcp/ 目录
REDIS_URL没有redis://localhost:6379用于异步任务跟踪的Redis URL
ENVIRONMENT没有locallocalproduction

API关键终结点

方法端点描述
POST/api/loginFirebase ID令牌登录,返回/创建用户
POST/api/chats/init初始化新的聊天会话
POST/api/chats发送消息并获得响应
POST/api/chats/stream发送带有流式响应的消息
POST/api/chats/async提交消息以进行异步处理
GET/api/chats/tasks/{task_id}轮询异步任务状态
GET/api/profile获取当前用户配置文件
PUT/api/users/{user_id}/profile更新用户配置文件
GET/api/users/{user_id}/statistics获取用户使用统计数据
GET/api/sessions/{session_id}/messages获取会话的聊天记录
GET/api/portfolio-performance/{session_id}获取投资组合绩效数据
GET/api/latest-portfolio-performance/{user_id}用户的最新投资组合表现
GET/api/user-recommendations/{user_id}获取用户的所有股票推荐
GET/agents/status检查连接的远程代理的状态
GET/health健康检查

______________________________________________________________________

3b。库存分析仪代理(端口10002)

作为一个独立的A2A兼容代理运行,使用Google ADK+MCP工具执行股票分析。

cd backend/stockanalyser_agent

# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies (uses pyproject.toml)
pip install -e .

# Configure environment
cp .env.example .env
# Edit .env with your GOOGLE_API_KEY and PERPLEXITY_API_KEY

# Run
python __main__.py

股票分析器代理环境变量

变量必填描述
GOOGLE_API_KEYGoogle Gemini API密钥
PERPLEXITY_API_KEY用于研究查询的困惑AI API密钥
GOOGLE_GENAI_USE_VERTEXAI设置为 TRUE 使用Vertex AI而不是API键

代理开始 端口10002 并暴露A2A协议端点。它与技能相吻合 stock_analyse --“对股票行情进行详细分析。给出买入或卖出的建议。”

______________________________________________________________________

3c。股票报告分析仪代理(端口10003)

处理上传的PDF投资组合报表和财务文件。

cd backend/stockreport_analyser_agent

# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies (uses pyproject.toml)
pip install -e .

# Configure environment (uses same Google API key)
# Create a .env file with GOOGLE_API_KEY

# Run
python __main__.py

代理开始 端口10003 凭借技能 stock_report_analyse --分析股票报告、收益表、季度报告和其他财务文件

______________________________________________________________________

4.前端设置

前端是一个带有Firebase身份验证和Tailwind CSS的React+TypeScript应用程序。

cd frontend

# Install dependencies
npm install

# Configure environment
cp env.example .env
# Edit .env with your Firebase config and API URL

# Run development server
npm start

应用程序开始于 http://localhost:3000.

前端环境变量

变量必填描述
REACT_APP_API_BASE_URLHost Agent API URL(默认值: http://localhost:10001/api)
REACT_APP_FIREBASE_API_KEYFirebase Web API密钥
REACT_APP_FIREBASE_AUTH_DOMAINFirebase身份验证域
REACT_APP_FIREBASE_PROJECT_IDFirebase项目ID
REACT_APP_FIREBASE_STORAGE_BUCKETFirebase存储桶
REACT_APP_FIREBASE_MESSAGING_SENDER_IDFirebase消息发送者ID
REACT_APP_FIREBASE_APP_IDFirebase应用程序ID

Firebase设置

  1. 在以下位置创建Firebase项目 Firebase控制台
  2. 启用 电子邮件/密码谷歌 身份验证下的登录提供程序
  3. 获取web应用程序配置并填写前端 .env
  4. 下载服务帐户JSON密钥并设置 FIREBASE_SERVICE_ACCOUNT_PATH 在Host Agent中 .env

______________________________________________________________________

5.启动一切(地方发展)

按以下顺序启动服务:

# Terminal 1 - Database
cd backend && docker-compose up -d

# Terminal 2 - Redis (if not using Docker)
redis-server

# Terminal 3 - Stock Analyser Agent
cd backend/stockanalyser_agent && source .venv/bin/activate && python __main__.py

# Terminal 4 - Stock Report Analyser Agent
cd backend/stockreport_analyser_agent && source .venv/bin/activate && python __main__.py

# Terminal 5 - Host Agent (start after remote agents are up)
cd backend/host_agent && source .venv/bin/activate && python __main__.py

# Terminal 6 - Frontend
cd frontend && npm start

验证

  • 前端:http://localhost:3000
  • Host Agent API:http://localhost:10001/health
  • 股票分析代理:http://localhost:10002/health
  • 代理连接:http://localhost:10001/agents/status

______________________________________________________________________

代理通信流程

  1. 前端向Host Agent发送带有Firebase身份验证令牌的聊天消息(POST /api/chats)
  2. Host Agent验证令牌,在PostgreSQL中管理会话
  3. 根据用户意图,Host Agent通过A2A协议委托给适当的子代理
  4. 子代理使用MCP工具(通过yfinance获取股票数据)和Google Gemini(LLM推理)生成分析
  5. 结果通过A2A流回Host Agent,Host Agent将结果持久化到数据库,并将响应返回给前端
  6. 对于投资组合绩效跟踪,Host Agent直接调用MCP工具来获取当前股票价格

目录标签

目录标签

金融数据PythonAI代理股票分析本地部署投资组合推荐AI金融多代理系统

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP