如何构建基于MCP的财务分析师

如何构建基于MCP的财务分析师

文章目录

  • 目标
  • 系统概述
  • 逐步构建个人市场分析工具
  • 前提条件
  • 使用MCP构建AI驱动的金融分析工具
  • 金融分析团队
  • 步骤 1. 定义输出结构
  • 步骤 2:配置LLM
  • 步骤 3:创建代理
  • 步骤 4:人员处理
  • 步骤 5:主要功能
  • 最终输出
  • 小结

构建基于MCP的财务分析师

在当今瞬息万变的市场中,等待数小时才能获得股票分析结果已不再可行。试想一下,只需输入“绘制股票涨幅图(X)”,即可立即获得清晰的图表。无需手动收集数据、编写代码或进行调试。在本指南中,我们将使用 CrewAI 和 MCP 构建一个个人市场分析师。最终,您将拥有一个能够将自然语言查询转化为可操作股票洞察的助手。

目标

我们基于 MCP 的金融分析师利用 AI 代理简化了金融数据分析。它弥合了复杂金融数据源与用户查询之间的鸿沟,提供实时、情境感知的洞察。这种方法不仅节省时间、减少人为错误,而且还确保了更高的安全性、互操作性和透明度。

系统概述

系统概述

  • 用户查询:自然语言请求,例如:“显示特斯拉过去一年的股票表现。”
  • MCP 代理:调用金融分析师团队——一组专业代理。
  • 代理协作:它们解析查询、生成 Python 代码、执行代码并验证结果。
  • 输出:用户将收到一张清晰的图表,其中包含可立即操作的见解。

逐步构建个人市场分析工具

前提条件

以下是一些必要的 Python 包。

pip install crewai crewai-tools pydantic yfinance python-dotenv

使用MCP构建AI驱动的金融分析工具

我们将构建两个主要组件:

  • 金融分析团队:由 CrewAI 代理提供支持,这些代理读取用户查询、生成 Python 代码并运行,以可视化股票数据。
  • MCP 服务器文件:一个模型上下文协议 (MCP) 服务器,它将把上述组件呈现为 AI 工具,以便您可以将其直接集成到您的 AI 工作流程中。

让我们来详细了解一下。

金融分析团队

真正的智能就在这里。我们使用 CrewAI 来协调多个具有不同角色的代理:

步骤 1. 定义输出结构

class QueryAnalysisOutput(BaseModel):
    symbols: list[str]
    timeframe: str
    action: str

此 Pydantic 模型可确保从用户查询中提取结构化信息。

步骤 2:配置LLM

llm = LLM(
    model="openai/gpt-4o",
     temperature=0.7
)

步骤 3:创建代理

代理 1:查询解析器

  • 读取查询
  • 提取股票代码、时间范围和预期操作
  • 此外,它还将自然语言转换为结构化的 JSON 数据。
query_parser_agent = Agent(
    role="Stock Data Analyst",
    goal="Extract stock details and fetch required data...",
    output_pydantic=QueryAnalysisOutput
)

代理 2:代码编写者

  • 接收结构化查询输出
  • 使用以下库编写简洁、可执行的 Python 代码:
  • yfinance(获取股票数据)
  • pandas(用于数据处理)
  • matplotlib(用于绘图)
code_writer_agent = Agent(
    role="Senior Python Developer",
    goal="Write Python code to visualize stock data..."
)

代理 3:代码执行器

  • 运行生成的代码
  • 修复错误(如果出现问题)
  • 可以将修复工作委托给代码编写者
code_execution_agent = Agent(
    role="Senior Code Execution Expert",
    allow_code_execution=True,
    allow_delegation=True
)

步骤 4:人员处理

我们将按照以下步骤使用这些代理:

  • 解析查询
  • 编写 Python 代码
  • 执行并验证结果
crew = Crew(
    agents=[query_parser_agent, code_writer_agent, code_execution_agent],
    tasks=[query_parsing_task, code_writer_task, code_execution_task],
    process=Process.sequential
)

步骤 5:主要功能

Orchestrates the entire multi-agent system and returns the final executable Python code.
def run_financial_analysis(query):
    result = crew.kickoff(inputs={"query": query})
    return result.raw

现在我们将创建 MCP 服务器文件:

  • 创建接口:此接口允许 AI 助手调用我们的函数。
from mcp.server.fastmcp import FastMCP
from finance_crew import run_financial_analysis
FastMCP: A lightweight MCP server framework for exposing functions as AI tools
run_financial_analysis: The main function from the above code that does all the heavy lifting.
  • 创建 MCP 实例

我们将 MCP 工具集命名为“financial-analyst”。这相当于应用程序名称。

mcp = FastMCP("financial-analyst")
  • 定义工具

工具 1:analyze_stock()

  • 接收自然语言查询
  • 将其传递给金融分析师团队(我们的代理)
  • 返回一个 Python 脚本字符串,该脚本可以获取并可视化所请求的股票数据。
@mcp.tool()
def analyze_stock(query: str) -> str:
    ...
    result = run_financial_analysis(query)
    return result

工具 2:保存代码

将生成的 Python 代码保存到名为 stock_analysis.py 的文件中。

确保文件有效且可执行。

@mcp.tool()
def save_code(code: str) -> str:
    with open('stock_analysis.py', 'w') as f:
        f.write(code)

工具 3:run_code_and_show_plot()

  • 直接执行已保存的脚本
  • 实时生成所需的股票可视化图表

 

  • 主函数

通过标准输入/输出 (stdio) 在本地运行 MCP 服务器,可随时集成到任何支持 MCP 的 AI 平台中。

if __name__ == "__main__":
    mcp.run(transport='stdio')

最终输出

通过此设置,输入类似“绘制苹果公司过去 6 个月的股票表现”的查询语句,即可生成可直接使用的图表——无需手动编写代码。

推荐阅读:如何使用 LangChain 创建 MCP 客户端/服务器

小结

使用 CrewAI 构建基于 MCP 的金融分析工具,展示了多智能体系统如何变革金融分析。通过结合结构化查询解析、自动化 Python 代码生成和实时执行,我们消除了手动编码和调试的瓶颈。该项目突出了 AI 智能体如何高效处理复杂的工作流程,并为以用户为中心的金融分析树立了新的标杆。

评论留言

闪电侠

(工作日 10:00 - 18:30 为您服务)

2025-12-05 14:32:54

您好,无论是售前、售后、意见建议……均可通过联系工单与我们取得联系。

您也可选择聊天工具与我们即时沟通或点击查看:

您的工单我们已经收到,我们将会尽快跟您联系!
取消
选择聊天工具: