rpt mcp
MCP服务器,通过FastMCP资源和工具公开SAP RPT云表格预测。
需求
- SAP RPT API令牌 –设置
RPT_API_TOKEN带有个人令牌的环境变量(请参见https://rpt.cloud.sap/docs).可选覆盖:
- RPT_API_BASE_URL 用于指向非生产端点。
- 参考数据 –该仓库附带了经过修剪的IBM HR数据集
examples/data/reference/。按原样使用,或通过指向在您自己的文件中交换RPT_DATASETS(例如。export RPT_DATASETS='{"ibm_hr": {"path": "examples/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv"}}').
安装(带 uv)
# from the repository root
uv sync --extra dev --extra examplesuv sync 创建(或刷新)本地 .venv/ 使用中声明的依赖关系 pyproject.toml,包括可选 dev + examples pytest和MCP演示代理所需的额外功能。您可以激活环境(source .venv/bin/activate)或者简单地用前缀命令 uv run ....
跑步
本地stdio传输
export RPT_API_TOKEN=... # required
export RPT_DATASETS='{"ibm_hr": {"path": "examples/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv"}}'
uv run python -m rpt_mcp_server --transport stdioSSE运输(非集装箱)
uv run python -m rpt_mcp_server \
--transport sse \
--host 0.0.0.0 \
--port 8080 \
--allowed-origins https://your-agent.example \
--dataset ibm_hr=examples/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv每 --dataset 标志注册ID/路径对。您还可以通过以下方式配置相同的映射 RPT_DATASETS.
如果你跳过 RPT_DATASETS/--dataset,服务器仍在运行——每个MCP调用都将被视为仅查询输入,任何缺失的值都会自动替换为 [PREDICT] 在访问SAP API之前。
Docker(SSE传输)
根 Dockerfile 是一个可重用的模板,它期望在运行时挂载数据集:
docker build -t rpt-mcp .
docker run \
-p 8080:8080 \
-v $(pwd)/examples/data:/data:ro \
-e RPT_API_TOKEN=... \
-e RPT_DATASETS='{"ibm_hr": {"path": "/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv"}}' \
rpt-mcp对于一个独立的人力资源演示,下面有一个特定于示例的Dockerfile examples/Dockerfile.hr 并直接捆绑样本数据集:
docker build -f examples/Dockerfile.hr -t hr-rpt-mcp-server --build-arg BASE_IMAGE=python:3.12-slim .
docker run \
-p 8080:8080 \
-e RPT_API_TOKEN=... \
-e RPT_DATASETS='{"ibm_hr": {"path": "/app/examples/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv"}}' \
hr-rpt-mcp-server两个图像默认为 --transport sse --host 0.0.0.0 --port 8080,因此远程MCP客户端可以通过服务器发送事件进行连接,而无需单独的包装进程。
IBM人力资源流失示例
- 安装示例中使用的可选依赖项:
uv sync --extra dev --extra examples. - 使用捆绑的样本数据集(
examples/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv)或点--reference在您自己的Kaggle出口处。 - 综合调查文件(
examples/data/new_employee_survey.csv)包含在内,因此您可以在不发布Kaggle数据的情况下立即测试工作流。
批量场景
OPENAI_API_KEY=... RPT_API_TOKEN=... uv run python -m examples.batch_attrition_agent \
--survey examples/data/new_employee_survey.csv \
--reference examples/data/reference/WA_Fn-UseC_-HR-Employee-Attrition.csv代理加载1470行IBM数据集作为上下文,通过统一的 predict_tabular MCP工具,标记所有可能离职的人,并生成一份人力资源友好的总结,其中包含风险因素和建议。
综合调查行捕捉了多种场景(应届毕业生、中级科学家、通勤时间长的销售主管等),因此分类器可以产生低风险和高风险的预测,展示代理如何处理风险因素。
架构提醒: 在查询有效负载中保留数据集中的每一列。将未知值留空/null (JSON文本 null,不是字符串 "null");服务器处理规范化。不要删除列。
测试
uv run pytest