financial-research-agent
Click on "Install 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: Financial Modeling Prep (FMP) MCP Server
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/rahul-jajala/ai-financial-research-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server