Skip to main content
Glama
qubaomingg

@qubaomingg/stock-mcp

by qubaomingg
README.md
# Alpha Vantage Stock MCP Server

This is a Model Context Protocol (MCP) server that provides stock market data from Alpha Vantage API. It allows Claude and other MCP clients to access real-time and historical stock data.

## Features

- Get intraday stock data with customizable intervals
- Get daily stock data
- Generate stock alerts based on price movements
- Access stock data as resources

## Prerequisites

- Node.js 16 or higher
- An Alpha Vantage API key (get one for free at [Alpha Vantage](https://www.alphavantage.co/support/#api-key))

## Installation

1. Clone this repository
2. Install dependencies:
   ```
   npm install
   ```
3. Create a `.env` file in the root directory and add your Alpha Vantage API key:
   ```
   ALPHA_VANTAGE_API_KEY=your_api_key_here
   ```

## Building and Running

Build the TypeScript code:
```
npm run build
```

Run the server:
```
npm start
```

For development with auto-reloading:
```
npm run dev
```

Test the API client:
```
npm test
```

## Using with Claude for Desktop

To use this MCP server with Claude for Desktop:

1. Open Claude for Desktop
2. Go to Settings > Developer > Edit Config
3. Add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "alpha-vantage": {
      "command": "node",
      "args": ["/absolute/path/to/dist/index.js"],
      "env": {
        "ALPHA_VANTAGE_API_KEY": "YOUR_API_KEY"
      } 
    }
  }
}
```

Replace `/absolute/path/to/dist/index.js` with the absolute path to the built index.js file.

4. Restart Claude for Desktop

## Available Tools

### get-stock-data

Gets intraday stock data for a specific symbol.

Parameters:
- `symbol` (required): Stock symbol (e.g., IBM, AAPL)
- `interval` (optional): Time interval between data points (1min, 5min, 15min, 30min, 60min). Default: 5min
- `outputsize` (optional): Amount of data to return (compact: latest 100 data points, full: up to 20 years of data). Default: compact

### get-daily-stock-data

Gets daily stock data for a specific symbol.

Parameters:
- `symbol` (required): Stock symbol (e.g., IBM, AAPL)
- `outputsize` (optional): Amount of data to return (compact: latest 100 data points, full: up to 20 years of data). Default: compact

### get-stock-alerts

Analyzes stock data to generate alerts based on price movements.

Parameters:
- `symbol` (required): Stock symbol (e.g., IBM, AAPL)
- `threshold` (optional): Percentage threshold for price movement alerts. Default: 5

## Available Resources

### stock-data

Access stock data directly as a resource.

URI Template: `stock://{symbol}/{interval}`

Parameters:
- `symbol`: Stock symbol (e.g., IBM, AAPL)
- `interval`: Time interval (daily, 1min, 5min, 15min, 30min, 60min). Default: daily

Example usage in Claude:
- "Can you analyze this stock data: stock://AAPL/daily"
- "What do you think about this data: stock://MSFT/5min"

## License

ISC 

TDQS

D1.4/5.0

Scored across 3 tools

Disambiguation1/5

The tools are highly ambiguous and overlapping. 'get-daily-stock-data' and 'get-stock-data' appear to serve nearly identical purposes, with no description to clarify their differences. 'get-stock-alerts' might be distinct but lacks context, making the overall set confusing and prone to misselection.

Naming Consistency5/5

The naming is perfectly consistent, using a kebab-case pattern with a 'get-' prefix followed by a noun phrase. All three tools follow this exact convention, making them predictable and easy to parse.

Tool Count2/5

With only 3 tools, the set feels thin and under-scoped for a stock data server. It lacks essential operations like search, update, or delete, and the limited coverage suggests it may not support comprehensive agent workflows in this domain.

Completeness1/5

The tool surface is severely incomplete for a stock data domain. It only provides 'get' operations with no ability to set, modify, or manage data (e.g., no create, update, delete, or search tools). This will cause significant agent failures in handling stock-related tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues