Создание финансового аналитика на базе MCP

Автор: Дмитрий Иванов [Команда P9X]

~8 минут чтения

На современных рынках, где миллиарды зарабатываются за секунды, ожидание часами для анализа акций больше не является целесообразным

Представьте, что вы вводите «построй мне график прироста акций X» и мгновенно получаете чистый график. Без ручного сбора данных, кодирования или отладки. В этом руководстве мы создадим персонального аналитика рынка с помощью CrewAI и MCP. К концу у вас будет помощник, который преобразует запросы на естественном языке в практические аналитические данные по акциям.

Цель

Наш финансовый аналитик на базе MCP упрощает анализ финансовых данных с помощью агентов искусственного интеллекта. Он устраняет разрыв между сложными источниками финансовых данных и запросами пользователей, предоставляя актуальную информацию с учётом контекста в режиме реального времени. Такой подход не только экономит время и снижает количество ошибок, связанных с ручным вводом данных, но также обеспечивает более высокий уровень безопасности, совместимости и прозрачности.

Обзор системы

  • Запрос пользователя: запрос на естественном языке, например: «Покажи мне динамику акций Tesla за последний год».
  • Агент MCP: вызывает Financial Analyst Crew — набор специализированных агентов.
  • Агенты взаимодействуют: они анализируют запрос, генерируют код Python, выполняют его и проверяют результаты.
  • Вывод: пользователь получает чистый график с немедленными практическими выводами.

Пошаговая инструкция: создание персонального аналитика рынка

Предварительные требования

Вот некоторые необходимые пакеты Python:

pip install crewai crewai-tools pydantic yfinance python-dotenv

Создание финансового аналитика на базе искусственного интеллекта с помощью MCP

Мы создадим два основных компонента:

  • The Financial Analyst Crew: поддерживается агентами CrewAI, которые читают запрос пользователя, создают код Python и запускают его для визуализации данных о запасах.
  • Файл сервера MCP: сервер Model Context Protocol, который представит это в виде инструментов искусственного интеллекта, чтобы его можно было подключить прямо к вашим рабочим процессам искусственного интеллекта.

Давайте разберёмся.

The Financial Analyst Crew

Именно здесь происходит настоящий интеллект. Мы используем 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: основная функция

Оркестрирует всю многоагентскую систему и возвращает окончательный исполняемый код Python.

def run_financial_analysis(query):
    result = crew.kickoff(inputs={"query": query})
    return result.raw

Теперь мы создадим файл сервера MCP:

  • Создание интерфейса: это интерфейс, который позволяет ИИ-помощникам вызывать нашу функцию.
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 «финансовый аналитик». Это действует как имя приложения.

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()

  • Выполняет сохранённый скрипт напрямую.
  • Генерирует запрошенную визуализацию акций в режиме реального времени.

Запускает сервер MCP локально через stdio, готовый к интеграции в любую платформу искусственного интеллекта, поддерживающую MCP.

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

Итоговый вывод

При такой настройке ввод запроса, например «Построй график динамики акций Apple за последние 6 месяцев», приводит к созданию готового к использованию графика — без необходимости ручного кодирования.

Заключение

Создание финансового аналитика на базе MCP с помощью CrewAI показывает, как многоагентные системы могут трансформировать финансовый анализ. Объединяя структурированный анализ запросов, автоматизированную генерацию кода Python и выполнение в режиме реального времени, мы устраняем узкие места, связанные с ручным кодированием и отладкой. Этот проект подчёркивает, как агенты искусственного интеллекта могут эффективно справляться со сложными рабочими процессами, и устанавливает новый стандарт для ориентированной на пользователя финансовой аналитики.

Часто задаваемые вопросы

Q1. Что такое финансовый аналитик на базе MCP?

A. Финансовый аналитик на базе MCP использует Model Context Protocol и агентов CrewAI для автоматизации анализа финансовых данных, преобразуя запросы на естественном языке в практические аналитические данные по акциям в режиме реального времени.

Q2. Как CrewAI помогает в создании финансовых инструментов с использованием искусственного интеллекта?

A. CrewAI координирует работу нескольких агентов искусственного интеллекта, которые анализируют запросы, пишут код Python и выполняют его. Это позволяет в режиме реального времени автоматически анализировать акции без ручного кодирования или подготовки данных.

Q3. Можно ли интегрировать MCP с существующими финансовыми рабочими процессами?

A. Да, MCP плавно интегрируется с финансовыми рабочими процессами, предоставляя инструменты искусственного интеллекта, такие как analyze_stock и run_code. Это повышает совместимость, автоматизацию и безопасность для аналитических конвейеров финансовых данных.

Q4. Зачем использовать агентов искусственного интеллекта для анализа фондового рынка?

A. Агенты искусственного интеллекта снижают количество ошибок, связанных с ручным вводом данных, ускоряют получение информации и предоставляют анализ в режиме реального времени на основе данных. Они автоматизируют повторяющиеся финансовые задачи, помогая аналитикам сосредоточиться на принятии решений и стратегии, а не на кодировании.