financial-research-agent
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@financial-research-agentResearch AAPL fundamentals, news, and technicals"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI Financial Research Agent
An autonomous stock research agent built with LangGraph, LangChain, and the ReAct pattern. It researches any ticker — fundamentals, news sentiment, technical indicators, and analyst consensus — then produces a structured buy/sell investment brief.
Includes a Streamlit web UI, MCP server for tool exposure, and session tracking for the full ReAct loop.
Based on Building a Financial Research Agent with ReAct, LangGraph, and LangChain.
Features
ReAct Agent Loop — Agent decides tool order dynamically (Reason → Act → Observe)
4 Research Tools — Fundamentals, news sentiment, technicals, analyst ratings
Streamlit UI — Live ReAct step tracking + investment brief display
Session Tracking — Persisted JSON logs of every research session
MCP Server — Expose tools to Cursor, Claude Desktop, or any MCP client
Ticker Normalization — Handles mixed case input (
reliance.ns→RELIANCE.NS)
Related MCP server: Stock_Advisor_MCP
Project Structure
financial-research-agent/
├── app/
│ └── streamlit_app.py # Streamlit web interface
├── financial_mcp/
│ ├── server.py # MCP server (stdio transport)
│ └── config.json # Sample MCP client config
├── src/financial_agent/
│ ├── state.py # LangGraph agent state
│ ├── tools.py # Research tools (yfinance, Tavily, pandas-ta)
│ ├── agent.py # LLM + system prompt
│ ├── graph.py # LangGraph ReAct graph
│ ├── runner.py # Streaming runner with tracking
│ ├── utils.py # Ticker normalization
│ └── tracking/
│ └── session_tracker.py # ReAct step & session persistence
├── data/sessions/ # Tracked research sessions (JSON)
├── main.py # CLI entry point
├── requirements.txt
├── .env.example
└── README.mdSetup
1. Clone and install
cd financial-research-agent
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt2. Configure API keys
Copy .env.example to .env and add your keys:
OPENAI_API_KEY=your_openai_key
TAVILY_API_KEY=your_tavily_key
OPENAI_MODEL=gpt-4oGet a free Tavily key at tavily.com.
3. Run
Streamlit UI (recommended):
streamlit run app/streamlit_app.pyCLI:
python main.py RELIANCE.NS
python main.py AAPLMCP Server:
python -m financial_mcp.serverAdd to your MCP client config (see financial_mcp/config.json):
{
"mcpServers": {
"financial-research-agent": {
"command": "python",
"args": ["-m", "financial_mcp.server"],
"cwd": "/path/to/financial-research-agent",
"env": { "PYTHONPATH": "/path/to/financial-research-agent/src" }
}
}
}Architecture
User: "Research RELIANCE.NS"
│
▼
┌─────────────┐ tool_call ┌─────────────┐
│ Agent Node │ ─────────────────► │ Tools Node │
│ (LLM) │ ◄───────────────── │ (ToolNode) │
└─────────────┘ observation └─────────────┘
│
▼ (no more tool calls)
Final Investment BriefSession Tracking
Every research run is tracked step-by-step:
Step Type | Description |
| Agent decides to call a tool |
| Tool observation returned |
| Structured investment brief |
Sessions are saved to data/sessions/{session_id}_{ticker}.json.
Supported Tickers
Market | Format | Example |
US |
|
|
NSE |
|
|
BSE |
|
|
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Research-only MCP server: your AI as a quant research desk. 90 tools, no trades, no brokers.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA multi-agent MCP server for comprehensive stock research and analysis using natural language queries, backed by SEC filings and real-time market data.-
- FlicenseNot gradedqualityCmaintenanceA FastMCP server that provides stock research, technical analysis, fundamental analysis, and scoring, exposed as MCP tools, resources, and prompts for AI agents.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that exposes real-time financial data tools for stock search, company info, historical prices, and financial metrics from Yahoo Finance, enabling AI agents to answer natural-language questions about stocks and financial markets.MIT
- AlicenseAqualityCmaintenanceAn MCP server that exposes Godel Terminal-style financial research as tools for AI clients, including security descriptions, quotes, financials, historical prices, analyst ratings, most-active, search, news, and live quotes. It provides a pluggable data provider interface so you can inject your own data source.91MIT