使用说明
- 项目简介
- Finnie AI MCP 是一个包含多个 MCP 服务的后端系统,面向大语言模型(LLM)提供标准化的上下文服务。核心能力包括:管理投资组合资源、注册并执行工具、定义和渲染提示模板,以及通过图形化工具生成图表并缓存结果,整体通过 MCP 协议实现 JSON-RPC/流式传输通信。
- 服务之间通过 FastMCP 框架暴露工具集合,支持 SSE/其他传输方式,便于 LLM 客户端远程调用,并将结果返回给客户端或 UI。
- 主要功能点
- 资源与工具管理:投资组合工具、市场数据工具、图表工具、Monte Carlo 模拟工具、Q&A 向量检索等工具以 MCP 形式暴露。
- 跨服务协作:Router/Agent 组件可将用户请求路由到相应的 MCP 服务处理,具备状态管理与图表产出能力。
- 图表生成与缓存:图表工具可生成不同类型图表(饼图/线图/柱状图/堆叠条形图/多折线图等),并通过 TTL 缓存提升响应速度。
- 数据源与 Mock 回退:yFinance 数据、FAISS 向量检索等,具备回退到 Mock 数据的能力,便于本地开发与测试。
- UI 支持:与 Streamlit UI 和图像服务(FastAPI/图片服务器)协同工作,展示图表并提供图像访问端点。
- 安装步骤
- 确保系统环境中安装了 Python 3.11+。
- 安装依赖并配置环境变量(如 LLM Key、Chart 服务等),再分别启动各 MCP 服务。
- 启动顺序(示例,具体以实际运行脚本为准):
- 启动 yFinance MCP 服务(例如端口 8002)
- 启动 Chart MCP 服务(例如端口 8003)
- 启动 Portfolio MCP 服务(例如端口 8005)
- 启动 Goals MCP 服务(例如端口 8004)
- 启动 Q&A MCP 服务(例如端口 8001)
- 启动 图片服务(例如端口 8010)
- 启动 Streamlit UI(默认 http://localhost:8501)
- 服务器配置(MCP 客户端连接 MCP 服务器的配置示例,JSON 形式,供客户端使用;不需要在此处运行代码,仅用于配置参考)
- 每个条目包含服务器名称、启动命令及参数(供 MCP 客户端建立连接时读取使用)
- 示例配置(文本描述):
- charts_mcp: server 名称为 charts_mcp,执行命令为 python,参数为 ["-m", "src.mcp.charts_mcp"],端口 8003。
- portfolio_mcp: server 名称为 portfolio_mcp,执行命令为 python,参数为 ["-m", "src.mcp.portfolio_mcp"],端口 8005。
- yfinance_mcp: server 名称为 yfinance_mcp,执行命令为 python,参数为 ["-m", "src.mcp.yfinance_mcp"],端口 8002。
- goals_mcp: server 名称为 goals_mcp,执行命令为 python,参数为 ["-m", "src.mcp.goals_mcp"],端口 8004。
- finance_qanda_tool: server 名称为 finance_qanda_tool,执行命令为 python,参数为 ["-m", "src.mcp.finance_q_and_a_mcp"],端口 8001。
- image_server: server 名称为 image_server,执行命令为 python,参数为 ["-m", "src.servers.image_server"],端口 8010。
- 基本使用方法
- 启动 MCP 服务后,客户端/LLM 通过配置指向各 MCP 服务的端点进行调用,回应包含工具调用结果、处理的资源状态以及图表文件名等信息。
- UI/图像服务用于展示图表,图像服务端提供 /chart/{filename} 访问生成的图像。
- 通过 Router/Agent 组件实现查询路由与多步工具调用流程,确保可扩展的上下文服务。
- 开发/测试时可以利用 Mock 数据回退,方便在本地环境进行接口与流程的验证。
- 基本使用示例
- 由 LLM 发出请求后,Router 将请求路由到相应的 MCP 服务(Portfolio / Market / Goals / Q&A),各 MCP 服务执行工具调用、返回结果,并可能生成图表。前端 UI 可以展示图表并通过图像服务器提供访问链接。
- 如果需要扩展新工具/代理,只需新增一个 MCP 服务并在路由逻辑中接入即可,系统具备较强的扩展性。
信息
分类
AI与计算