Skip to main content
Glama
makiichikawa

stock-mcp-server

by makiichikawa
README.md
# Stock MCP Server

A Model Context Protocol (MCP) server that provides real-time stock price information and profitability analysis using Yahoo Finance API.

## Features

- Get real-time stock prices for individual symbols
- Fetch multiple stock prices at once
- Comprehensive financial data and fundamental analysis
- **Profitability turnaround analysis** - Identify stocks that have turned from loss to profit
- **Profit turnaround screening** - Screen multiple stocks for recent profitability improvements
- Returns comprehensive stock data including price, change, volume, and market cap
- Built with TypeScript and Zod for type safety

## Installation

```bash
npm install
npm run build
```

## Usage

### Development
```bash
npm run dev
```

### Production
```bash
npm start
```

## Tools Available

### get_stock_price
Get real-time stock price information for a single stock symbol.

**Parameters:**
- `symbol` (string): Stock symbol (e.g., "AAPL", "GOOGL", "TSLA")

### get_multiple_stock_prices
Get real-time stock price information for multiple stock symbols.

**Parameters:**
- `symbols` (array): Array of stock symbols (e.g., ["AAPL", "GOOGL", "TSLA"])

### get_financial_data
Get comprehensive financial data and fundamental analysis metrics for a stock.

**Parameters:**
- `symbol` (string): Stock symbol (e.g., "AAPL", "GOOGL", "TSLA")

### analyze_profitability_turnaround
Analyze whether a stock has turned from loss to profit in recent quarters.

**Parameters:**
- `symbol` (string): Stock symbol (e.g., "TSLA", "UBER")

**Returns:**
- `turnAroundStatus`: "profit_turnaround", "loss_turnaround", "continued_profit", or "continued_loss"
- `currentQuarterNetIncome`: Latest quarter's net income
- `previousQuarterNetIncome`: Previous quarter's net income  
- `quarterlyChange`: Percentage change in net income
- Company and market data

### screen_profit_turnaround_stocks
Screen multiple stocks to find those that have recently turned profitable.

**Parameters:**
- `symbols` (array): Array of stock symbols to analyze
- `minMarketCap` (number, optional): Minimum market capitalization filter
- `maxMarketCap` (number, optional): Maximum market capitalization filter

**Returns:**
Array of stocks with `turnAroundStatus: "profit_turnaround"`, sorted by quarterly improvement percentage.

## Testing

```bash
# Test profitability analysis functionality
node test_profitability.js
```

## Configuration for Claude Desktop

Add the following to your Claude Desktop configuration file:

```json
{
  "mcpServers": {
    "stock-server": {
      "command": "node",
      "args": ["/path/to/stock-mcp-server/dist/index.js"]
    }
  }
}
```

## Project Structure

```
stock-mcp-server/
├── src/
│   ├── services/
│   │   └── stockService.ts    # Stock price service
│   ├── types/
│   │   └── schema.ts          # Zod schemas and types
│   └── index.ts               # MCP server entry point
├── dist/                      # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md
```

## Dependencies

- `@modelcontextprotocol/sdk`: MCP SDK for server implementation
- `yahoo-finance2`: Yahoo Finance API client
- `zod`: Runtime type validation and schema definition

TDQS

B3.3/5.0

Scored across 12 tools

Disambiguation3/5

Several tools target closely related concepts—earnings guidance vs. 10-K guidance, quarterly vs. annual forecasts, single vs. multiple stock prices, and PDF extraction vs. IR summarization—so an agent could select the wrong one. The descriptions provide enough qualifiers to disambiguate most pairs, but the boundaries are not always crisp.

Naming Consistency4/5

All tool names are snake_case and verb-first (get_, analyze_, screen_, summarize_, extract_), so there is no stylistic chaos. However, the set mixes many get_ tools with non-get analytical/utility actions and uses slightly inconsistent modifier forms like profitability_turnaround vs. profit_turnaround_stocks.

Tool Count5/5

12 tools is within the ideal 3-15 range and each tool maps to a distinct stock-research workflow: prices, fundamentals, forecasts, guidance, turnaround analysis, IR PDF handling, and macro context. The count feels intentionally scoped rather than bloated or thin.

Completeness3/5

For a broad stock server, the set covers prices, fundamentals, forecasts, guidance, screening, and IR files, but it lacks obvious common needs like historical price series, company profile or symbol lookup, and news/analyst data. These gaps are workable around but still noticeable for an agent trying to perform general stock analysis.

Maintenance

ActivityInactive
ResponsivenessNo issues