Stock Snapshot MCP
π Stock Snapshot MCP
A minimal, educational MCP server for stock snapshots using the free Alpha Vantage API.
Stock Snapshot MCP is a tiny, easy-to-read reference implementation of a
Model Context Protocol (MCP) server.
It exposes a single, clean tool:
get_stock_snapshot(symbol, history_days=60)
This tool queries the free Alpha Vantage API and returns:
Company metadata (name, sector, industry, exchange, currency)
Latest quote (price, change, percent, previous close, volume)
Basic fundamentals (PE ratio, EPS, market cap, ROE, profit margin β if available)
Recent OHLCV price history (daily candles)
This project is ideal for:
People learning MCP through a small, realistic example
Developers building RAG-ready financial research agents
Students who want a simple MCP server to extend or customize
Anyone experimenting with Claude / ChatGPT MCP integrations
Mini-projects where clean, structured stock data is useful
Note: This project is not affiliated with Alpha Vantage.
It is designed solely as an educational reference.
Not for real trading or investment decisions.
β¨ Features
π¦ Lightweight Python package (
pip install stock-snapshot-mcp)π MCP server (stdio) compatible with Claude Desktop, ChatGPT MCP, and other tools
π Clean JSON output suitable for LLM reasoning & agent pipelines
βοΈ Installation
1. Install the package
pip install stock-snapshot-mcp2. Set your Alpha Vantage API key
Create a .env file or export it:
export ALPHAVANTAGE_API_KEY=your_key_hereπ£οΈ Example: Claude-Powered Stock Analysis Chatbot
This repository includes a simple but powerful example demonstrating how to combine:
stock_snapshot_mcpClaude (Anthropic API)
Alpha Vantage data
to build a terminal-based stock analysis chatbot:
examples/claude_stock_chat.pyWhat this example does
Fetches real market data
from stock_snapshot_mcp import get_stock_snapshotSends the snapshot JSON to Claude
Claude returns an educational, non-advisory analysis
The chatbot enforces strict safety rules:
No investment advice
No buy/sell/hold language
Educational tone only
Run the chatbot
export ANTHROPIC_API_KEY=your_claude_key
export ALPHAVANTAGE_API_KEY=your_alpha_vantage_key
python examples/claude_stock_chat.pyExample interaction:
Enter stock symbol: AAPL
What do you want to know? <user input>Process Flow
sequenceDiagram
participant U as User
participant C as CLI Chat (claude_stock_chat.py)
participant S as stock_snapshot_mcp
participant A as Alpha Vantage API
participant L as Claude (Anthropic API)
U->>C: Enter ticker (e.g. AAPL) + question
C->>S: get_stock_snapshot("AAPL", history_days=60)
S->>A: HTTP request for quote, fundamentals, daily prices
A-->>S: JSON responses (quote, overview, time series)
S-->>C: Normalized snapshot dict (meta, quote, fundamentals, history)
C->>L: Snapshot JSON + user question in prompt
L-->>C: Educational explanation (no investment advice)
C-->>U: Print explanation in terminalπ Running the MCP server
π§ͺ Testing locally (Python)
You can call the helper function directly:
from stock_snapshot_mcp import get_stock_snapshot
import asyncio
async def main():
snap = await get_stock_snapshot("AAPL", history_days=5)
print(snap)
asyncio.run(main())π§ͺ Example: manual MCP client
For debugging or learning MCP, you can run:
python examples/manual_mcp_client.pyπ₯οΈ Using with Claude Desktop (example config)
Place this inside Claudeβs configuration file:
macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
%APPDATA%\Claude\claude_desktop_config.json
Add:
{
"mcpServers": {
"stock-snapshot-mcp": {
"command": "stock-snapshot-mcp",
"env": {
"ALPHAVANTAGE_API_KEY": "your_key_here"
}
}
}
}Restart Claude Desktop β you should see Stock Snapshot MCP under "Connected Servers".
Then you can ask Claude:
Call
get_stock_snapshotfor AAPL and summarize the fundamentals.
π€ Using with ChatGPT MCP (OpenAI Desktop / browser)
Add a new MCP connection:
Command:
stock-snapshot-mcpEnvironment:
ALPHAVANTAGE_API_KEY=your_key_hereAnd thatβs it.
π Tool Definition (JSON Schema)
get_stock_snapshot(
symbol: string (required),
history_days: integer (optional, 1β100, default: 60)
)Output fields
{
"symbol": "AAPL",
"meta": {
"name": "Apple Inc",
"sector": "TECHNOLOGY",
"industry": "CONSUMER ELECTRONICS",
"currency": "USD",
"exchange": "NASDAQ"
},
"quote": {
"price": 278.78,
"change": -1.92,
"change_percent": -0.684,
"previous_close": 280.7,
"latest_trading_day": "2025-12-05",
"volume": 47265845
},
"fundamentals": {
"market_cap": 4137203794000,
"pe_ratio_ttm": 37.32,
"eps_ttm": 7.47,
"roe_ttm": 1.714,
"profit_margin": 0.269
},
"daily_history": [ ... ]
}π§± Project Structure
stock-snapshot-mcp/
β
βββ dist/ # Built distributions (wheel + sdist)
β βββ stock_snapshot_mcp-0.1.0.tar.gz
β βββ stock_snapshot_mcp-0.1.0-py3-none-any.whl
β
βββ examples/
β βββ manual_mcp_client.py # Human-readable demo MCP client
β
βββ src/
β βββ stock_snapshot_mcp/ # Actual Python package
β β βββ __init__.py
β β βββ alpha_vantage_client.py # Async Alpha Vantage helper functions
β β βββ server.py # MCP stdio server entrypoint
β β
β βββ stock_snapshot_mcp.egg-info/ # Metadata created after build
β
βββ tests/
β βββ test_alpha_vantage_client.py # Integration test for API wrapper
β βββ test_mcp_server.py # Full MCP stdio server end-to-end test
β
βββ LICENSE
βββ pyproject.toml # Package config (build + metadata)
βββ README.md
π Disclaimer
This project:
is not affiliated with Alpha Vantage
is not financial advice
is provided for educational and research purposes only
π License
MIT License β free to use, modify, and learn from.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/pforpav/stock-snapshot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server