交易协议服务器

一个用于Alpaca交易的模型上下文协议(MCP)服务器实现,使大型语言模型(LLMs)能够与Alpaca的交易API交互。

  • by MardiantoS
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 MardiantoS/alpaca-mcp-server

使用说明

羊驼交易MCP服务器

羊驼交易模型上下文协议(MCP)服务器的Python实现

用于Alpaca交易的模型上下文协议(MCP)服务器实现,使大型语言模型(LLM)(如Anthropic Claude)能够与Alpaca的交易API交互。 本自述中提供的说明和命令主要适用于MacOS/Linux用户。

Demo showing the Claude for Desktop app on the left side and the Alpaca web console on the right side to verify the operations.

引言

模型上下文协议(MCP)

模型上下文协议(MCP) 是Anthropic开发的一个开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口。正如USB-C提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP提供了一个将AI模型连接到不同数据源和工具的标准化方法。

羊驼

羊驼 是一个现代化的经纪平台,通过开发人员友好的API提供对金融市场的访问。通过使用Alpaca API,企业为其服务构建投资应用程序和功能。此外,程序化交易者可以开发算法来自动化交易策略。

免责声明

重要:本软件按“原样”提供,不提供任何形式的保修。使用此代码,即表示您承认交易涉及重大风险,作者不对使用此软件造成的任何经济损失负责。用户对使用此实现做出的交易决策承担全部责任。在考虑用真钱进行实时交易之前,始终使用纸质交易进行测试。

参考文献

特性

  • 账户管理:查看账户信息和投资组合摘要
  • 市场数据:访问实时报价和历史价格条
  • 交易操作:下达市价单和限价单
  • 位置跟踪:监控当前头寸和最近的订单

先决条件

  • 紫外线 (Python包和项目管理器) 安装命令:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • [可选] Claude桌面版 (用于测试的Claude客户端应用程序)

安装

  1. 克隆此存储库

    git clone https://github.com/MardiantoS/alpaca-mcp-server.git
    cd alpaca-mcp-server
    
  2. [可选但推荐]创建并激活虚拟环境:

    uv venv
    source .venv/bin/activate
    
  3. 安装依赖项。 uv 阅读 uv.lock 文件并安装所有依赖项的指定版本

    uv sync
    
  4. 创建一个 .env 将您的Alpaca凭据记录在项目根目录中:

    ALPACA_API_KEY=your_api_key
    ALPACA_API_SECRET=your_api_secret
    ALPACA_PAPER=TRUE
    

    注:Alpaca API密钥可以在Alpaca开发者web控制台中获取。检查 羊驼记录 以供参考。

使用方法(使用Claude for Desktop测试您的Alpaca MCP服务器)

确保您安装了Claude for Desktop。

  1. 在Claude for Desktop中,转到“设置”(这是菜单栏中的设置,而不是应用程序中的设置),然后转到“开发人员”选项卡,单击“编辑配置”。这将定位 claude_desktop_config.json 文件。

    或者,您可以在以下位置找到它 ~/Library/Application Support/Claude/claude_desktop_config.json (或参考 MCP文件网站 如果文件位置已更改)

  2. 在中添加服务器 mcpServers 钥匙。

    {
        "mcpServers": {
            "alpaca": {
                "command": "/ABSOLUTE/PATH/TO/uv",
                "args": [
                    "--directory",
                    "/ABSOLUTE/PATH/TO/PARENT/FOLDER/alpaca-mcp-server",
                    "run",
                    "alpaca_mcp_server.py"
                ]
            }
        }
    }
    

    注意:确保替换以下绝对路径 uv 和 alpaca-mcp-server 目录中包含您计算机上的实际路径。提示:跑步 which uv 展示你的绝对 uv 路径。

  3. 如果已经启动了Claude for Desktop,请重新启动它。单击锤子图标以验证可用的MCP工具。以下是您可以尝试的一些查询:

    • “我目前的羊驼投资组合余额是多少?”
    • “以238美元的价格买入摩根大通10股股票。”
    • “以市场价格购买1股GOOGL。”
    • “以210美元的价格卖出1股AAPL。”
    • “取消我的AAPL限价卖出订单。” 注意:如果系统提示,请允许工具访问运行。

可用资源

  • account://info -获取帐户信息
  • positions://all -获取所有当前职位
  • market://quote/{symbol} -获取某个交易品种的最新报价
  • market://bars/{symbol} -获取某个符号的历史条形图(过去7天)
  • orders://recent -获取最近订单(过去7天)

注意:实时市场数据功能,如报价和历史柱状图,可能只能通过实时交易账户完全访问,具体取决于您的羊驼认购级别。

可用工具

  • place_market_order(symbol, side, qty) -下达市价订单
  • place_limit_order(symbol, side, qty, limit_price) -下达限价订单
  • cancel_order(order_id) -取消现有订单
  • get_portfolio_summary() -获取当前投资组合的摘要

安全功能

  • 默认情况下使用纸质交易(ALPACA_PAPER=TRUE)
  • 正确的错误处理和记录
  • 使用contextlib进行优雅的启动和关闭

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

引用

如果你在你的研究或项目中使用这项工作,请使用以下引文:

马尔迪亚托·哈迪普特罗。 (2025).羊驼交易MCP服务器。github。https://github.com/MardiantoS/alpaca-mcp-server