Skip to main content
Glama
zacharymcclernon

mcp-finance-agent

Finance Agent

Ein LangGraph-Agent, der natürlichsprachige Aktienfragen zwischen einem benutzerdefinierten MCP-Server (yfinance-Quant-Tools) und einem Nachrichten-Tool routet, validiert durch einen handgefertigten Evaluierungssatz.

Entwickelt, um zwei Qualifikationslücken zu schließen: das Entwerfen von MCP-Servern (Tool-Oberfläche, Beschreibungen als Routing-Logik) und die Agenten-Orchestrierung mit Routing-Urteilsvermögen.


Architektur

User Query
    │
    ▼
┌─────────┐
│  route  │  3-way classifier: quant / news / both
└────┬────┘
     │
     ├──────────────────────┬─────────────────────
     ▼                      ▼
┌─────────┐           ┌──────────┐
│  quant  │           │   news   │
│ (ReAct) │           │  (ReAct) │
└────┬────┘           └────┬─────┘
     │                     │
     └──────────┬───────────┘
                │
        ┌───────┴────────┐
        │                │
        ▼                ▼
┌──────────────┐   ┌───────────┐
│finish_single │   │ synthesize│
│   _source    │   │           │
└──────┬───────┘   └─────┬─────┘
       │                 │
       └────────┬─────────┘
                ▼
             Answer

Knoten:

  • route — klassifiziert die Anfrage; keine Tool-Aufrufe, nur eine Entscheidung

  • quant — ReAct-Agent mit 5 MCP-Tools; wählt das/die richtige(n) Tool(s) für die Frage

  • news — ReAct-Agent mit get_recent_news; behandelt Nachrichten-/Kontextfragen

  • finish_single_source — Durchreichung für Einzelpfad-Anfragen; befördert Ergebnis zu answer

  • synthesize — gleicht Quant- und News-Ausgaben zu einer kohärenten Antwort für „both“-Anfragen ab

Für "both"-Anfragen laufen quant und news parallel; LangGraph wartet, bis beide abgeschlossen sind, bevor synthesize ausgeführt wird.


Related MCP server: Yahoo Finance MCP Server

MCP-Server – Quant-Tools

Fünf Tools, jedes auf eine einzelne Fragenform zugeschnitten:

Tool

Anwendungsfall

get_stock_price(ticker, date?)

Preisabfrage zu einem bestimmten Zeitpunkt

get_fundamentals(ticker)

KGV, EPS, Marktkapitalisierung, Umsatzwachstum, Margen

compare_metric(tickers[], metric)

Direkter Vergleich der Fundamentaldaten zwischen Unternehmen

get_price_history_stats(ticker, period)

Rendite, Volatilität, vs. Durchschnitt über einen Rückblickzeitraum

get_earnings_date(ticker)

Nächstes/letztes Datum der Gewinnmitteilung

Die Tool-Beschreibungen enthalten explizite Negativfälle („nicht für X, das gehört zu Tool Y“) – erforderlich, da mehrere Tools ähnliche Parameterformen teilen und sonst für den Router mehrdeutig wären.


Einrichtung

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # add your ANTHROPIC_API_KEY

Verwendung

python -m agent.graph "What's Tesla's P/E ratio?"
python -m agent.graph "Why did NVDA drop this week?"
python -m agent.graph "Has AMZN's stock kept pace with its revenue growth?"

Evaluierungen

pytest evals/test_agent.py -v

18 Abfragen in vier Kategorien: quant, news, both und adversarial. Adversarial-Fälle umfassen Keyword-Fallen (Nachrichtensprache, die Quant-Fragen umhüllt) und False-Premise-Abfragen (Behauptungen über Preisbewegungen, die vor der Erklärung verifiziert werden müssen).

Ergebnis: 15/18 → 18/18 nach Korrektur zweier fragiler Ticker-String-Assertions und Hinzufügen einer False-Premise-Klassifikationsregel zum Router-Prompt.


Wichtige Designentscheidungen

1. Tool-Beschreibungen als Routing-Logik. Jede Tool-Beschreibung gibt explizit an, was sie nicht behandelt. Ohne Negativfälle sind Tools mit überlappenden Parameterformen (z. B. get_stock_price und get_price_history_stats nehmen beide Ticker + datumsähnliche Parameter) für den LLM-Router mehrdeutig.

2. News als einfaches LangGraph-Tool, nicht als zweiter MCP-Server. Der Instinkt war „zweiter MCP-Server = wiederverwendbarer Baustein.“ Nachgefragt: Wiederverwendbar wofür? Es gab keinen konkreten zweiten Verbraucher. Ein zweiter MCP-Server bedeutet einen zweiten Subprozess, der gestartet und verwaltet werden muss; ein einfaches @tool ist eine einzelne In-Process-Funktion. Der Overhead der Prozessgrenze hatte keinen entsprechenden Nutzen.

3. Router klassifiziert die Absicht, Agenten wählen Tools. Der Router führt nur eine 3-Wege-Klassifikation durch – er wählt nicht aus, welches Quant-Tool aufgerufen werden soll. Die LLM-Tool-Auswahl (Zuordnung einer Abfrage zu einer von 5 Tool-Beschreibungen) ist flexible/nicht-deterministische Arbeit, die in die Quant-ReAct-Schleife gehört und nicht in den Router-Prompt dupliziert werden sollte.

4. Synthese muss abgleichen, nicht aneinanderreihen. Der Synthese-Prompt weist das Modell explizit an, Quant-Daten und Nachrichtenkontext zu einer einzigen kohärenten Antwort zu verbinden. „Nicht einfach beide getrennt auflisten – verbinde sie.“ Ohne dies erzeugt der „both“-Pfad zwei zusammengeheftete Absätze statt einer echten Antwort.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time stock quotes, historical price data, financial news, and multi-stock comparisons using Yahoo Finance data. Enables users to access comprehensive financial market information through natural language queries.
    301
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Yahoo Finance data including stock prices, historical data, financial statements, dividends, news, analyst recommendations, and company information through the yfinance library.
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides real-time financial data from Yahoo Finance, enabling stock price lookups, historical data analysis, company information retrieval, and multi-stock comparisons through natural language queries.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive financial data from Yahoo Finance, enabling retrieval of stock prices, company information, financial statements, options data, analyst recommendations, and market news through natural language queries.
    MIT

View all related MCP servers

Related MCP Connectors

  • Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude

  • Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.

  • 13-model stock valuation engine for AI agents - fair values for 5,900+ US stocks, updated daily.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zacharymcclernon/mcp-finance-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server