普通人也能用的AI炒股神器，CrewAI+MCP保姆级教学！

普通人也能用的AI炒股神器，CrewAI+MCP保姆级教学！ 

 

# 普通人也能用的AI炒股神器，CrewAI+MCP保姆级教学！

原文链接: [https://mp.weixin.qq.com/s?\__biz=MzIwMDE2MzkwMg==&mid=265335...](https://mp.weixin.qq.com/s?__biz=MzIwMDE2MzkwMg==&mid=2653356803&idx=1&sn=7582beaf82496aeedc3c7eee9acd149a&chksm=8c7e353fadbac85f24f2c12f935530481bfe5fcb9e65114948555f2255385c63232cd3b65803&mpshare=1&scene=1&srcid=11021KQewVuVJe1DNFBG5aJs&sharer_shareinfo=feba2830f887f034db0eea5570747296&sharer_shareinfo_first=feba2830f887f034db0eea5570747296#rd)

# 普通人也能用的AI炒股神器，CrewAI+MCP保姆级教学！

原创 AI Agent AI Agent 领域

当今瞬息万变的市场中，数秒内就能创造数十亿美元的财富，因此等待数小时进行股票分析已经不再可行。想象一下，你只需输入“绘制X股票的收益图”，就能立即收到一张清晰的图表，无需手动收集数据、编写代码或调试。本指南将介绍如何使用 **CrewAI** 和 **MCP** 构建一个**个人市场分析师**。完成本指南后，你将拥有一个能够将自然语言查询转化为可操作的股票洞察的助手。

## 目标

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

## 系统概览

![](:/13d7797fd3c14cea97a7e10aad4e9ee7)

- **用户查询**：一个自然语言请求，例如：“给我看特斯拉过去一年的股票表现。”
- **MCP 代理**：调用**金融分析师团队（Financial Analyst Crew）**——一组专业的代理。
- **代理协作**：它们解析查询，生成 Python 代码，执行代码，并验证结果。
- **输出**：用户立即收到一张带有可操作洞察的清晰图表。

## 构建个人市场分析师示例

### 前提条件

以下是一些必需的 Python 包：

pip install crewai crewai-tools pydantic yfinance python-dotenv  

### 使用MCP构建AI驱动的金融分析师

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

- **金融分析师团队（The Financial Analyst Crew）**：由 **CrewAI** 代理支持，它们读取用户查询，创建并运行 Python 代码以可视化股票数据。
- **MCP 服务器文件（The MCP Server File）**：一个 **模型上下文协议（Model Context Protocol）** 服务器，它将此功能作为 AI 工具呈现，以便可以直接插入到你的 AI 工作流中。

下面我们来详细分解。

## 金融分析师团队 (The Financial Analyst Crew)

这里是真正智能发生的地方。我们使用 **CrewAI** 来协调具有不同角色的多个代理：

### 步骤1：定义输出结构

from pydantic import BaseModel  
  
class 

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

这个 **Pydantic** 模型确保了从用户查询中进行结构化提取。

### 步骤2：配置 LLM

from crewai import Crew, Agent, Process, Task  
from langchain_openai import ChatOpenAI  
from langchain.llms import LLM  
  
\# 请注意，这里的 LLM 只是一个示例，可能需要根据实际使用的库进行调整  
llm = LLM(  
    model="openai/gpt-4o",  
    temperature=0.7  
)  

### 步骤3：创建代理

**代理1：查询解析器（Query Parser）**

- 角色：股票数据分析师
- 目标：提取股票详细信息并获取所需数据
- 将自然语言转化为结构化的 JSON

query_parser_agent = Agent(  
    role="Stock Data Analyst",  
    goal="Extract stock details and fetch required data...",  
    output_pydantic=QueryAnalysisOutput  
)  

**代理2：代码编写器（Code Writer）**

- 角色：高级 Python 开发人员
- 目标：编写 Python 代码以可视化股票数据
- 使用 `yfinance`（获取股票数据）、`pandas`（数据处理）和 `matplotlib`（绘图）

code_writer_agent = Agent(  
    role="Senior Python Developer",  
    goal="Write Python code to visualize stock data..."  
)  

**代理3：代码执行器（Code Executor）**

- 角色：高级代码执行专家
- 目标：执行生成的代码，并修复可能出现的错误
- 可以将任务委托给代码编写器进行修复

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：主函数

该函数负责编排整个多代理系统，并返回最终可执行的 Python 代码。

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：一个轻量级的 MCP 服务器框架，用于将函数作为 AI 工具暴露。  
\# run_financial_analysis：上述代码中负责所有繁重工作的主函数。  

#### **创建 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：save_code()**

- 将生成的 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个月的股票表现”这样的查询，就能生成一个可直接使用的图表，无需手动编码。

## 总结

使用 **CrewAI** 构建一个 **MCP** 驱动的金融分析师，展示了多代理系统如何改变金融分析。通过结合结构化查询解析、自动化 Python 代码生成和实时执行，我们消除了手动编码和调试的瓶颈。这个项目强调了 AI 代理如何高效处理复杂工作流，并为以用户为中心的金融分析树立了新的基准。

id: 1c221c5c8c8b4696acd393243ab51c92
parent_id: c4b5bbe706394f1a919a418c1f48165a
created_time: 2025-11-28T23:25:38.977Z
updated_time: 2025-11-28T23:30:19.244Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author: 
source_url: 
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin-desktop
source_application: net.cozic.joplin-desktop
application_data: 
order: 1764372274729
user_created_time: 2025-11-28T23:25:38.977Z
user_updated_time: 2025-11-28T23:25:39.009Z
encryption_cipher_text: 
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id: 
conflict_original_id: 
master_key_id: 
user_data: 
deleted_time: 0
type_: 1