使用说明
Alpaca MCP服务器(Docker)
官员的集装箱化部署 alpaca-mcp-server
配置用于基于HTTP的MCP传输,并将凭据烘焙到映像中。此存储库的目标是
单个Alpaca帐户为下游服务(如聊天机器人API)供电的场景
要求呼叫者在每个请求上提供API密钥。
特性
- 基于Python的MCP服务器
alpaca-mcp-server serve --transport http默认情况下 - Docker镜像在端口上暴露服务器
7800(可配置)JSON-RPC在/mcp - 通过以下方式进行构建时凭证注入
ARG -> ENV,具有运行时验证 - 示例
docker-compose.yml展示如何与聊天机器人服务一起运行 - 简单的TCP健康检查,确认MCP侦听器已启动
仓库的规划
.
|-- Dockerfile
|-- docker-compose.yml
|-- entrypoint.sh
`-- scripts/
`-- healthcheck.py
需求
- Docker 24+
- Docker Compose v2(可选,用于多服务设置)
构建时配置
| 生成参数 | 默认值 | 描述 |
|---|---|---|
ALPACA_API_KEY |
changeme (必须覆盖) |
图像中烘焙的Alpaca API键 |
ALPACA_SECRET_KEY |
changeme (必须重写) |
Alpaca API机密(别名: ALPACA_API_SECRET) |
ALPACA_API_BASE_URL |
https://paper-api.alpaca.markets |
羊驼端点的基本URL |
HOST |
0.0.0.0 |
绑定MCP服务器的地址 |
PORT |
7800 |
MCP传输的侦听器端口 |
MCP_TRANSPORT |
http |
MCP传输(stdio, http,或 sse) |
重要提示: 如果出现以下情况,入口点将拒绝启动
ALPACA_API_KEY或ALPACA_SECRET_KEY残余changeme或者是空的。
使用烘焙凭证构建
docker build \
--build-arg ALPACA_API_KEY="your-key" \
--build-arg ALPACA_SECRET_KEY="your-secret" \
--build-arg ALPACA_API_BASE_URL="https://paper-api.alpaca.markets" \
-t alpaca-mcp-server:local .
通过构建参数提供的凭据被复制到映像内的环境变量中。 因为值存在于最终映像中,所以避免将生成的映像推送到公共注册表。
运行容器
docker run --rm \
-p 7800:7800 \
alpaca-mcp-server:local
运行时的环境覆盖是可选的,但受支持。例如,要更改暴露的 未重建的端口:
docker run --rm \
-e PORT=9000 \
-p 9000:9000 \
alpaca-mcp-server:local
要切换传输(例如,切换到服务器发送的事件),请设置 MCP_TRANSPORT:
docker run --rm \
-e MCP_TRANSPORT=sse \
-p 7800:7800 \
alpaca-mcp-server:local
Docker编写示例
包括 docker-compose.yml 使用您的凭据构建映像,并将服务器作为
管理服务。
-
创建一个
.env旁边的文件docker-compose.yml:ALPACA_API_KEY=your-key ALPACA_SECRET_KEY=your-secret # Optional overrides # ALPACA_API_BASE_URL=https://api.alpaca.markets # PORT=7800 # MCP_TRANSPORT=http -
构建并启动MCP服务器:
docker compose up --build服务器正在监听
http://localhost:${PORT:-7800}/mcp用于从主机连接的客户端。
健康与诊断
-
镜像定义了一个Docker
HEALTHCHECK这将打开到配置端口的TCP连接。 -
查看容器日志以确认启动:
docker logs <container-name>日志行示例:
Starting Alpaca MCP server on 0.0.0.0:7800 (transport=http) -
要手动验证主机的连接,请执行以下操作:
curl -X POST http://localhost:7800/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"1.0","capabilities":{}}}' -
当使用Postman或curl进行测试时,请将两者都包括在内
Accept: application/json和Accept: text/event-stream以满足流式HTTP要求。如果没有这些标题 服务器返回Not Acceptable.
安全说明
- 保持存储库中没有真正的API凭据。通过CLI标志传递秘密,
.env文件已排除 来自版本控制或安全秘密管理器。 - 将任何构建的图像视为敏感材料。任何拥有该图像的人都可以提取内置密钥。
- 日志故意遗漏凭证材料;避免添加可能泄露机密的冗长/调试日志。
更新依赖关系
更新 alpaca-mcp-server 在图像内部,使用从PyPI中提取的最新标签进行重建:
docker build --pull --no-cache -t alpaca-mcp-server:local .
许可证
本项目按原样提供。有关与以下内容相关的使用限制,请参阅Alpaca的服务条款 您的API证书。
