SAP Ariba MCP服务器
A. 模型上下文协议(MCP)服务器 这暴露了 48个SAP Ariba API 作为与Claude兼容的工具。用Python和 FastMCP.
这使Claude(或任何兼容MCP的AI)能够通过自然语言与SAP Ariba采购、采购、供应商管理、合同、目录和供应链数据进行交互。
API参考: https://help.sap.com/docs/ariba-apis 开发者门户: https://developer.ariba.com
______________________________________________________________________
建筑
┌─────────────────────────────────────────────────┐
│ Consumer Layer │
│ Claude Desktop / Claude Code / Custom App │
└────────────────────┬────────────────────────────┘
│ MCP (stdio)
┌────────────────────▼────────────────────────────┐
│ ariba-mcp Server (this project) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 6 Domain │ │ Auth │ │ Client │ │
│ │ Folders │──│ OAuth2.0 │──│ httpx │ │
│ │ 48 APIs │ │ cached │ │ async │ │
│ └──────────┘ └──────────┘ └────┬─────┘ │
└────────────────────────────────────┼─────────────┘
│ HTTPS
┌────────────────────────────────────▼─────────────┐
│ SAP Ariba APIs │
│ OAuth: api.ariba.com │
│ Data: openapi.ariba.com/api │
└──────────────────────────────────────────────────┘______________________________________________________________________
所有48个API--6个域文件夹
1.业务网络-- 工具/商业网络/
| API | 所有者 |
|---|---|
| Ariba Network采购订单API | Anil |
| 采购订单供应商API | Nitish SM |
| 买家的订单变更请求API | Anim |
| 供应商订单变更请求API | Shabreen |
| Ariba网络发票头数据提取API | Ayub |
| API买方发货通知 | Ayub |
| API供应商发货通知 | Shabreen |
| 计划协作买方API | Anim |
| 规划协作供应商API | Shabreen |
| 贸易伙伴档案认证API | Ayub |
| 供应商信息API | Shabreen |
| 买方API服务证明 | (未分配) |
| 多ERP的数据复制状态 | Ayub |
| 事务监视API | 动画 |
2.目录-- 工具/目录/
| API | 所有者 |
|---|---|
| API内部目录车间 | Anil |
| 公共目录商店API | Anil |
| 网络目录管理API | Anil |
| SAP Ariba目录内容API | Ayub |
| 目录连接服务API | Ayub |
| 内容查找API | 动画 |
| 材料和BOM标签管理API | 动画 |
3.概述-- 工具/概述/
| API | 所有者 |
|---|---|
| 文件批准API | Anim |
| 审计搜索API | Vanshika |
| 采购API集成监控 | 万事卡 |
| 战略采购API集成监控 | Pranathi |
| 主数据集成作业状态API | 动画 |
| 配置参数审查API | Vanshika |
| SAP Ariba自定义表单API | Vanshika |
| 资产管理API | Rohit Naik |
| 采购用API主数据检索 | Rohit Naik |
| 指导购买功能文档API | Anim |
| 创建采购工作区API | Vanshika |
| 用户资格API | Anil |
| 公共采购通知出口API | Rohit Naik |
| NDA数据导出API | Rohit Naik |
4.采购-- 工具/采购/
| API | 所有者 |
|---|---|
| API采购运营报告 | Vanshika |
| 分析报告API(战略与运营) | Anim |
| 合同合规性API | 万事卡 |
| 合同工作区检索API | Anim |
| 合同工作区管理API | Rohit Naik |
| 合同条款管理API | Shabreen |
| 成本细分数据提取API | Vanshika |
5.战略采购-- 工具/战略采购/
| API | 所有者 |
|---|---|
| 战略采购API运营报告 | Pranathi |
| API采购项目管理 | Pranathi |
| 事件管理API | 动画 |
| 采购和供应商管理外部批准API | Pranathi |
| 用于采购的主数据检索API | Pranathi |
| API产品采购定价 | Pranathi |
| 代理投标API | Rohit Naik |
| 产品层次结构管理API | Shabreen |
| 物料清单进口API | Anim |
6.供应商管理-- 工具/供应商管理/
| API | 所有者 |
|---|---|
| 带分页的供应商数据API | Nitish SM |
| 供应商数据API | Nitish SM |
| 供应商数据提取API | Nitish SM |
| Ariba网络供应商简介API | Nitish SM |
| 供应商邀请API | Nitish SM |
| 供应商风险参与API | Nitish SM |
| 风险暴露API | Anim |
| 风险类别信息API | Shabreen |
______________________________________________________________________
先决条件
- Python 3.11+
- 紫外线 (推荐)或pip
- SAP Ariba API证书 --一个人为团队提供它们
______________________________________________________________________
凭证设置(一次性)
一名团队成员在SAP Ariba开发人员门户上注册并共享凭据:
- 首选https://developer.ariba.com
- 注册新应用程序
- 启用所需的API
- 注: OAuth客户端ID, 客户端密钥, API密钥, 领域 名字
- 创建
.env并安全地共享:
cp .env.example .env
# Fill in credentials永不承诺 .env 到git。______________________________________________________________________
快速开始
# Clone and install
git clone https://github.com/nitishsm2002/ariba-mcp.git
cd ariba-mcp
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
# Add .env file (get from credentials owner)
# Run the server
python -m ariba_mcp.server
# Test with MCP Inspector
npx @modelcontextprotocol/inspector python -m ariba_mcp.server连接到克劳德桌面
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ariba": {
"command": "python",
"args": ["-m", "ariba_mcp.server"],
"cwd": "/path/to/ariba-mcp"
}
}
}______________________________________________________________________
项目结构
ariba-mcp/
├── src/ariba_mcp/
│ ├── server.py # FastMCP entrypoint
│ ├── config.py # Settings (reads .env)
│ ├── auth.py # OAuth 2.0 client credentials
│ ├── client.py # Async HTTP client (views, jobs, resources)
│ ├── errors.py # Error handling
│ ├── models/common.py # Shared Pydantic models
│ └── tools/
│ ├── __init__.py # Registers all 6 domain folders
│ ├── business_network/ # 14 APIs — POs, invoices, ship notices, planning
│ │ ├── __init__.py
│ │ ├── _example.py
│ │ └── .py # ← team members add files here
│ ├── catalog/ # 7 APIs — catalogs, content, connectivity
│ │ ├── __init__.py
│ │ ├── _example.py
│ │ └── .py
│ ├── general/ # 14 APIs — approvals, audit, monitoring, config
│ │ ├── __init__.py
│ │ ├── _example.py
│ │ └── .py
│ ├── procurement/ # 7 APIs — reporting, contracts, compliance
│ │ ├── __init__.py
│ │ ├── _example.py
│ │ └── .py
│ ├── strategic_sourcing/ # 9 APIs — sourcing projects, events, bids
│ │ ├── __init__.py
│ │ ├── _example.py
│ │ └── .py
│ └── supplier_management/ # 8 APIs — supplier data, risk, profiles
│ ├── __init__.py
│ ├── _example.py
│ └── .py
├── tests/
├── .agents/skills/mcp-builder/ # MCP builder reference docs
├── pyproject.toml
├── .env.example
├── CONTRIBUTING.md
└── .gitignore______________________________________________________________________
如何实现您的API
每个文件夹都有一个 _example.py 使用工作工具进行复制。添加API:
- 在中查找正确的文件夹
src/ariba_mcp/tools/(见上表) - 看
_example.py在该图案的文件夹中 - 创建一个 新的.py文件 以您的API命名(例如。
supplier_data_extraction.py) - 定义a
register(mcp, client)功能与您@mcp.tool里面 - 打开文件夹
__init__.py并添加您的导入+register()呼叫 - 在上查找确切的端点路径 开发者门户
- MCP检验员测试:
npx @modelcontextprotocol/inspector python -m ariba_mcp.server
看 贡献.md 了解详细的编码模式。
______________________________________________________________________
配置参考
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
ARIBA_REALM | 是 | -- | 阿里巴王国(例如。 mycompany-T) |
ARIBA_CLIENT_ID | 是 | -- | OAuth 2.0客户端ID |
ARIBA_CLIENT_SECRET | 是 | -- | OAuth 2.0客户端密钥 |
ARIBA_API_KEY | 是 | -- | 应用程序密钥 |
ARIBA_OAUTH_URL | 没有 | https://api.ariba.com | OAuth端点 |
ARIBA_API_URL | 没有 | https://openapi.ariba.com/api | API基本URL |
______________________________________________________________________
许可证
麻省理工学院
