使用说明
羊驼交易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客户端应用程序)
安装
-
克隆此存储库
git clone https://github.com/MardiantoS/alpaca-mcp-server.git cd alpaca-mcp-server -
[可选但推荐]创建并激活虚拟环境:
uv venv source .venv/bin/activate -
安装依赖项。
uv阅读uv.lock文件并安装所有依赖项的指定版本uv sync -
创建一个
.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。
-
在Claude for Desktop中,转到“设置”(这是菜单栏中的设置,而不是应用程序中的设置),然后转到“开发人员”选项卡,单击“编辑配置”。这将定位
claude_desktop_config.json文件。或者,您可以在以下位置找到它
~/Library/Application Support/Claude/claude_desktop_config.json(或参考 MCP文件网站 如果文件位置已更改) -
在中添加服务器
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路径。 -
如果已经启动了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