Alpha Vantage
STDIO为LLM提供Alpha Vantage金融数据API访问服务
为LLM提供Alpha Vantage金融数据API访问服务
This project provides a Model Context Protocol (MCP) server that wraps the @missionsquad/avantage library, exposing Alpha Vantage API functionalities as tools for Language Learning Models (LLMs).
This server allows LLMs to interact with the Alpha Vantage API to retrieve financial data, including:
It leverages the @missionsquad/avantage TypeScript library and follows the architecture of the generic MCP server template, including multi-user API key handling and resource management for AVantage client instances.
Key Features:
@missionsquad/avantage library.extraArgs (preferred) or fallback to environment variables.AVantage client instances using the ResourceManager.@missionsquad/avantage and Zod schemas for tool parameters.@missionsquad/fastmcp for MCP communication.git clone <repository-url> mcp-avantage-server cd mcp-avantage-server
npm install # or yarn install
.env.example to .env..env and set API_KEY to your Alpha Vantage API key.AV_PREMIUM=true if you have a premium subscription.LOG_LEVEL or RESOURCE_CLEANUP_INTERVAL if needed.npm run build # or yarn build
The server will listen for MCP requests on stdio.npm start # or yarn start
The server uses the standard multi-user token handling pattern:
extraArgs.apiKey (Recommended): Pass the user-specific Alpha Vantage API key in the apiKey field of the extraArgs object during the MCP call_tool request. This key is not part of the tool's schema..env Fallback: If extraArgs.apiKey is not provided, the server uses the API_KEY value from the .env file.This server exposes numerous tools corresponding to the methods in the @missionsquad/avantage library. Tools are generally named module_method (e.g., coreStock_intraday, fundamentalData_companyOverview).
Refer to the Alpha Vantage documentation and the @missionsquad/avantage library's types (src/types/* within the library) for details on parameters and return structures.
Example Tool Call (Conceptual MCP Request):
{ "type": "call_tool", "requestId": "req-123", "tool": { "name": "coreStock_quote", "arguments": { "symbol": "IBM" } }, "context": { "extraArgs": { "apiKey": "USER_SPECIFIC_AV_KEY" // Optional: User's key } } }
Tool Categories (Modules):
alphaIntelligence_*commodities_*coreStock_*crypto_*economicIndicators_*forex_*fundamentalData_*optionsData_* (Premium)technicalIndicators_*Use the MCP list_tools command to get the full list of available tools, their descriptions, and parameter schemas.
Configure via .env file:
| Variable | Description | Default | 
|---|---|---|
API_KEY | Fallback Alpha Vantage API key if not in extraArgs | null | 
LOG_LEVEL | Logging level (error, warn, info, debug) | info | 
RESOURCE_CLEANUP_INTERVAL | Interval (ms) to clean up inactive AVantage client instances | 1800000 (30m) | 
AV_PREMIUM | Set to true to enable premium endpoint access in avantage | false | 
Follows the generic MCP server template structure. Key files:
src/index.ts: Main server entry point, tool definitions.src/config.ts: Configuration loading.src/logger.ts: Logging utility.src/resource-manager.ts: Manages AVantage instances.src/schemas.ts: Zod schemas for tool parameters..nexus/: Nexus documentation..nexus/features/avantage_integration/feature.md.nexus/architecture/server_structure.md.nexus/guides/using_avantage_tools.md.nexus/decisions/decision_log.mdMIT (Assuming the template license is MIT. Verify.)