项目简介

这个项目是一个基于Model Context Protocol (MCP) 的服务器实现。它的主要目的是将流行的股票交易和市场数据平台Alpaca提供的API功能转换为可供大型语言模型 (LLM) 客户端调用的“工具”。通过这个服务器,LLM可以方便地获取股票、加密货币资产信息、历史行情数据、市场日历以及相关的财经新闻,从而增强LLM在金融领域的分析和交互能力。

主要功能点

  • 获取资产列表: 查询Alpaca平台上可交易的股票或加密货币资产列表,LLM可以根据资产类型筛选。
  • 获取股票历史K线数据: 根据指定的股票符号(支持多个)、日期范围和时间粒度(如日、小时、分钟)获取详细的历史行情数据。
  • 获取市场交易日历: 查询指定日期范围内的市场开放和关闭日期信息,有助于LLM了解交易时间。
  • 获取财经新闻: 根据指定的日期范围和股票符号查询相关的财经新闻文章,提供市场实时动态或历史回顾。
  • 基于MCP协议: 完全遵循Model Context Protocol标准,通过JSON-RPC协议与兼容的LLM客户端进行通信。
  • 通过Stdio传输: 默认支持使用标准输入/输出 (stdin/stdout) 作为通信通道,这是一种常用的、简单易集成的MCP传输方式。

安装步骤

  1. 确保您的系统已经安装了 Node.js 环境(推荐使用最新LTS版本)。

  2. 确保您拥有 Alpaca API 的 Key ID 和 Secret Key。

  3. 通过 npm 安装 'alpaca-mcp' 包。您可以选择作为项目依赖安装,或者全局安装(如果需要通过命令行直接运行):

    # 作为项目依赖安装
    npm install alpaca-mcp
    # 或者全局安装
    npm install -g alpaca-mcp
  4. 配置 Alpaca API 凭据:在您运行此MCP服务器的环境中,需要设置以下环境变量:

    • 'ALPACA_ENDPOINT': Alpaca 数据 API 的基础URL (例如: 'https://data.alpaca.markets')
    • 'ALPACA_BROKER_ENDPOINT': Alpaca Broker API 的基础URL (例如: 'https://broker-api.alpaca.markets')
    • 'ALPACA_API_KEY': 您的 Alpaca API Key ID
    • 'ALPACA_SECRET_KEY': 您的 Alpaca Secret Key

    您可以创建一个 '.env' 文件在服务器启动目录下,或者在运行服务器的shell环境中直接设置这些环境变量。

    '.env' 文件示例:

    ALPACA_ENDPOINT=https://data.alpaca.markets
    ALPACA_BROKER_ENDPOINT=https://broker-api.alpaca.markets
    ALPACA_API_KEY=YOUR_ALPACA_API_KEY
    ALPACA_SECRET_KEY=YOUR_ALPACA_SECRET_KEY

服务器配置 (供MCP客户端参考)

MCP服务器的启动方式通常由MCP客户端负责配置和管理。以下是一个典型的MCP客户端配置文件 (如 'mcp.config.json') 中关于此Alpaca MCP服务器的配置示例。请注意,这部分是给MCP客户端使用者参考的,您不需要手动创建或编辑这些文件,除非您是MCP客户端的开发者或高级用户。

{
  "mcpServers": {
    "alpaca-mcp": {             // 给服务器定义一个唯一的名称
      "command": "npx",         // 启动服务器的命令
      "args": [                 // 传递给命令的参数
        "-y",
        "alpaca-mcp"            // 要执行的 npm 包/命令名称
      ],
      "env": {                  // 可选:在此处设置环境变量,优先级高于系统/shell环境
        "ALPACA_API_KEY": "<YOUR_API_KEY>",
        "ALPACA_SECRET_KEY": "<YOUR_SECRET_KEY>"
        // 提示:为了安全,建议通过客户端的配置界面或外部方式安全地管理API密钥
        // ALPACA_ENDPOINT 和 ALPACA_BROKER_ENDPOINT 也可以在此配置,或者保留在服务器运行环境的环境变量中
      }
      // "transport": "stdio"   // Stdio 通常是默认传输方式,无需明确指定
      // 其他可能的配置如 session、capabilities 等...
    }
    // 可以配置其他 MCP 服务器...
  }
}

客户端通过配置中的 'command' 和 'args' 启动服务器进程,并通过配置的 'transport' (默认为 stdio) 与服务器进行MCP协议通信。

基本使用方法

一旦您安装并配置好环境变量,兼容的MCP客户端(如支持MCP协议的LLM应用或桌面客户端)将能够自动发现并使用此Alpaca MCP服务器提供的工具。客户端会根据服务器声明的能力(即已注册的工具)向LLM暴露这些功能。

如果您想手动启动服务器进行测试或配合自定义客户端使用,可以执行以下命令:

# 如果是全局安装
alpaca-mcp

# 如果是作为项目依赖安装并在项目目录中
# 确保先运行过 'npm install'
npm start

服务器启动后会通过标准输入/输出与客户端进行JSON-RPC通信。

信息

分类

AI与计算