根据你的网络架构,有两种模式可选:
两种部署模式
2026-07-22T02:52:02.png

部署三步走
第 1 步:配置连接信息

在部署目录创建 .env 文件(从 .env.example 复制),填入 SAP B1 地址、数据库名、账号密码。

第 2 步:启动服务

提供了三种启动方式:

Docker 部署(推荐):./deploy.sh 选模式 1,自动构建镜像并启动容器
直接运行:./deploy.sh 选模式 2,用 Python 虚拟环境运行
测试连接:./deploy.sh 选模式 3,先验证 SAP B1 Service Layer 是否可达
如果是远程部署,启动的是 server_http.py(HTTP/SSE 模式),监听 8000 端口,提供 /sse 端点供 WorkBuddy 连接。

第 3 步:配置 WorkBuddy 连接

本地部署在 ~/.workbuddy/mcp.json 配置:

json
{ "mcpServers": { "sap-b1": { "command": "python", "args": ["server.py"], "env": {...} } } }
远程部署配置更简单:

json
{ "mcpServers": { "sap-b1": { "url": "http://your-server:8000/sse" } } }
然后在 WorkBuddy 连接器管理页面点击「信任」即可。

新增的部署文件
2026-07-22T02:53:12.png

生产环境建议
HTTPS:通过 Nginx 反向代理 + Let's Encrypt 免费证书,避免明文传输
IP 白名单:在 Nginx 中限制只有公司 IP 可访问
只读账号:在 SAP B1 中为 MCP Server 创建专用只读账号
systemd 服务:配置为系统服务,开机自启 + 崩溃自动重启
详细的每一步操作都在 部署指南.md 中。如果你有具体的服务器环境(比如 Ubuntu/CentOS、是否已有 Docker),我可以帮你进一步定制。
2026-07-22T02:59:33.png

同时模式A和模式B也是可以切换的,而且切换过程很简单。

核心原因:两种模式共用同一套业务代码(sap_client.py + 工具定义),只是传输层不同。server.py 用 stdio 协议,server_http.py 用 HTTP/SSE 协议,但对外暴露的 8 个工具完全一样,WorkBuddy 侧的使用体验没有任何区别。

切换步骤(A → B)
只需要做两件事:

  1. 在远程服务器上启动 HTTP 模式

把项目文件传到服务器,用 server_http.py 启动(Docker 或直接运行都行):

bash
./deploy.sh # 选模式 1(Docker)或模式 2(直接运行)

  1. 修改 WorkBuddy 的 mcp.json

把原来的 command/args 配置:

json
{
"mcpServers": {

"sap-b1": {
  "command": "/path/to/.venv/bin/python",
  "args": ["/path/to/server.py"],
  "env": { "SAP_BASE_URL": "...", "SAP_COMPANY_DB": "..." }
}

}
}
改成 url 配置:

json
{
"mcpServers": {

"sap-b1": {
  "url": "http://your-server-ip:8000/sse"
}

}
}
然后在 WorkBuddy 连接器管理页面重新信任一下就行。

切换前后的对比

2026-07-22T03:04:13.png

建议的推进路径
先用模式 A:在本地装好 Python,配置 .env,用 server.py 跑通验证——确认 SAP B1 Service Layer 能连上、数据能查出来
验证业务场景:在 WorkBuddy 里试几个销售分析任务,确认工具够用、数据符合预期
再切模式 B:确认没问题后,把代码传到服务器,启动 server_http.py,改 mcp.json 指向远程地址
这样风险最低——本地先跑通,再上服务器,出问题容易排查。

发表评论