Skip to main content
Glama
hasthi

stock-research-assistant

by hasthi

Stock Research Assistant MCP Server

A comprehensive stock research assistant built with FastMCP for Databricks AI/BI integration. Enables natural-language interaction with real market data, watchlist management, company analysis, and research note tracking.

Features

🎯 Watchlist Management

  • Track personal watchlists of tickers

  • Add/remove stocks with custom notes

  • View watchlist with live prices and performance

πŸ“Š Market Data

  • Real-time quotes from Massive Stocks API

  • Historical price data and performance metrics

  • Company fundamentals and profile information

  • Multi-ticker comparisons

πŸ“° News & Research

  • Fetch and summarize recent company news

  • Save research notes with investment thesis

  • Set price targets and confidence levels

  • Flag notable price moves automatically

πŸ—„οΈ Data Persistence

  • Lakebase Postgres backend for all user data

  • Complete schema for users, watchlists, prices, news, and research

  • Optimized for future semantic search capabilities

Related MCP server: financial-research-agent

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  AI/BI Agent    β”‚  ← Natural language queries
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  FastMCP Server β”‚  ← stocks_mcp_server.py
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
    β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
    β–Ό         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Lakebase β”‚ β”‚Massive Stocksβ”‚  
β”‚Postgres β”‚ β”‚     API      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

MCP Tools

The server exposes 10 agent tools:

Watchlist Tools

  • add_to_watchlist(ticker, watchlist_name, notes) - Add a stock to your watchlist

  • remove_from_watchlist(ticker, watchlist_name) - Remove a stock

  • get_watchlist(watchlist_name) - View all stocks with live prices

Market Data Tools

  • get_price_data(ticker, days) - Current and historical prices with performance summary

  • get_company_info(ticker) - Company fundamentals and profile

  • compare_tickers(tickers, metric) - Compare multiple stocks

Research Tools

  • get_recent_news(ticker, limit) - Fetch and summarize recent news

  • save_research_note(ticker, title, content, thesis, target_price, confidence) - Log analysis

  • flag_notable_moves(threshold_percent) - Alert on significant price changes

Utility

  • get_current_user() - Get authenticated user email

Setup Instructions

1. Set Up Databricks Secrets

You need two secrets:

Lakebase Connection URL

databricks secrets create-scope database
databricks secrets put-secret database lakebase-url

The value should be a standard Postgres connection URL:

postgresql://role:password@host:5432/databricks_postgres?sslmode=require

Massive Stocks API Key

databricks secrets create-scope massive
databricks secrets put-secret massive api-key

Get your API key from Massive Stocks API or similar provider.

2. Initialize Database Schema

Run the SQL schema against your Lakebase instance:

psql <lakebase-url> < schema_stocks.sql

This creates all required tables:

  • users - User profiles

  • watchlists - Named watchlists per user

  • watchlist_tickers - Stocks in watchlists

  • companies - Company profiles and fundamentals

  • price_snapshots - Historical price data

  • news_articles - News articles per ticker

  • research_notes - User research and theses

  • analysis_reports - Agent-generated reports

3. Deploy as Databricks App

cd stocks_research_assistant
databricks apps create stock-research-assistant \
  --description "Stock Research Assistant with MCP" \
  --source-code-path .

databricks apps deploy stock-research-assistant

Or use the UI:

  1. Go to Databricks Apps β†’ Create App

  2. Set source path to /Workspace/Users/<your-email>/databricks-lakebase-app-day-3-hw/stocks_research_assistant

  3. Click Deploy

4. Connect to AI Playground or Agent Bricks

Once deployed, your app URL will be: https://stock-research-assistant-<id>.aws.databricksapps.com

Option A: AI Playground

  • The Playground auto-discovers workspace MCP servers

  • Your tools should appear automatically

Option B: Agent Bricks

  1. Go to Machine Learning β†’ Agents

  2. Create a new agent

  3. Add External Tool β†’ MCP Server

  4. URL: https://stock-research-assistant-<id>.aws.databricksapps.com

Example Usage

Natural Language Queries

Managing Watchlists:

"Add AAPL and MSFT to my watchlist"
"Show me my watchlist"
"Remove TSLA from my default watchlist"

Market Research:

"What's the price of NVDA over the last 30 days?"
"Compare GOOGL and META on performance"
"Show me recent news for AAPL"

Investment Analysis:

"Save a research note for TSLA: Bullish on FSD progress, target $350"
"Which stocks in my watchlist moved more than 5% today?"
"Get company fundamentals for AMD"

Direct Tool Calls

You can also call tools directly via the MCP protocol:

# Add to watchlist
{
  "tool": "add_to_watchlist",
  "arguments": {
    "ticker": "AAPL",
    "watchlist_name": "tech_giants",
    "notes": "Strong services revenue, AI potential"
  }
}

# Get price data
{
  "tool": "get_price_data",
  "arguments": {
    "ticker": "NVDA",
    "days": 90
  }
}

# Save research note
{
  "tool": "save_research_note",
  "arguments": {
    "ticker": "TSLA",
    "title": "Q4 2025 Analysis",
    "content": "Strong deliveries, margin expansion expected...",
    "thesis": "Bullish on FSD monetization and energy storage growth",
    "target_price": 350.0,
    "confidence": "high"
  }
}

Database Schema

Key tables and relationships:

users
  β”œβ”€β”€ watchlists
  β”‚     └── watchlist_tickers
  β”œβ”€β”€ research_notes
  └── analysis_reports

companies (ticker lookup)
price_snapshots (time series)
news_articles (ticker, published_at)

API Rate Limits

Massive Stocks API (Polygon.io) free tier:

  • 5 API calls per minute

  • Delayed data (15-minute delay for stocks)

For production use, upgrade to a paid plan for:

  • Real-time data

  • Higher rate limits

  • WebSocket streaming

Future Enhancements

The schema includes VECTOR columns for embeddings:

  • companies.profile_embedding

  • news_articles.content_embedding

  • research_notes.content_embedding

Enables queries like:

  • "Find companies exposed to rising interest rates in regional banking"

  • "Show me research notes about AI chip manufacturers"

  • "Surface news about EV battery supply chain issues"

Implement with:

  • Databricks sentence-transformers models

  • pgvector extension in Lakebase

  • Semantic similarity search

Additional Features

  • Real-time price alerts via WebSocket

  • Technical analysis indicators (RSI, MACD, etc.)

  • Portfolio tracking and P&L

  • Earnings calendar integration

  • Options data and Greeks

  • Sector rotation analysis

Troubleshooting

"API request failed"

  • Check that your Massive Stocks API key is valid

  • Verify the secret is properly configured

  • Check API rate limits

"Could not retrieve Lakebase connection"

  • Verify Lakebase secret is set correctly

  • Test connection string manually: psql <connection-url>

  • Check that Lakebase endpoint is running

"No results returned for {ticker}"

  • Ticker may be invalid or delisted

  • Use search_companies tool to find correct symbol

  • Some tickers may not be available on free tier

App deployment failed

  • Check logs: databricks apps logs stock-research-assistant --tail 100

  • Verify all dependencies in requirements.txt

  • Ensure app.yaml env vars match your secret scopes

Files

stocks_research_assistant/
β”œβ”€β”€ README.md                      # This file
β”œβ”€β”€ app.yaml                       # Databricks App configuration
β”œβ”€β”€ requirements.txt               # Python dependencies
β”œβ”€β”€ schema_stocks.sql              # Lakebase schema
β”œβ”€β”€ lakebase.py                    # Postgres connection helper
β”œβ”€β”€ massive_stocks_broker.py       # Massive API client
└── stocks_mcp_server.py           # FastMCP server with tools

License

MIT

Support

For issues or questions:

  1. Check the troubleshooting section

  2. Review Databricks Apps documentation

  3. Check FastMCP docs at https://gofastmcp.com

  4. Review Massive Stocks API docs at https://polygon.io/docs

F
license - not found
-
quality - not tested
B
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

  • F
    license
    -
    quality
    B
    maintenance
    AI-powered stock research MCP server with real-time data, CRUD operations, and interactive dashboard for fundamental analysis and comparisons.
  • F
    license
    -
    quality
    C
    maintenance
    A FastMCP server that provides stock research, technical analysis, fundamental analysis, and scoring, exposed as MCP tools, resources, and prompts for AI agents.

View all related MCP servers

Related MCP Connectors

  • Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth

  • GibsonAI MCP server: manage your databases with natural language

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

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/hasthi/stock-research-assistant'

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