SAP Ariba API服务器

一个模型上下文协议(MCP)服务器,提供48个SAP Ariba API作为Claude兼容工具,使Claude或其他MCP兼容AI能够通过自然语言与SAP Ariba的采购、供应商管理、合同、目录和供应链数据交互。

  • by abasu1996
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abasu1996/ariba-mcp

使用说明

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开发人员门户上注册并共享凭据:

  1. 首选https://developer.ariba.com
  2. 注册新应用程序
  3. 启用所需的API
  4. 注: OAuth客户端ID, 客户端密钥, API密钥, 领域 名字
  5. 创建 .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
│       │   └── <your_api>.py           # ← team members add files here
│       ├── catalog/                    # 7 APIs — catalogs, content, connectivity
│       │   ├── __init__.py
│       │   ├── _example.py
│       │   └── <your_api>.py
│       ├── general/                    # 14 APIs — approvals, audit, monitoring, config
│       │   ├── __init__.py
│       │   ├── _example.py
│       │   └── <your_api>.py
│       ├── procurement/                # 7 APIs — reporting, contracts, compliance
│       │   ├── __init__.py
│       │   ├── _example.py
│       │   └── <your_api>.py
│       ├── strategic_sourcing/         # 9 APIs — sourcing projects, events, bids
│       │   ├── __init__.py
│       │   ├── _example.py
│       │   └── <your_api>.py
│       └── supplier_management/        # 8 APIs — supplier data, risk, profiles
│           ├── __init__.py
│           ├── _example.py
│           └── <your_api>.py
├── tests/
├── .agents/skills/mcp-builder/        # MCP builder reference docs
├── pyproject.toml
├── .env.example
├── CONTRIBUTING.md
└── .gitignore

如何实现您的API

每个文件夹都有一个 _example.py 使用工作工具进行复制。添加API:

  1. 在中查找正确的文件夹 src/ariba_mcp/tools/ (见上表)
  2. 看 _example.py 在该图案的文件夹中
  3. 创建一个 新的.py文件 以您的API命名(例如。 supplier_data_extraction.py)
  4. 定义a register(mcp, client) 功能与您 @mcp.tool 里面
  5. 打开文件夹 __init__.py 并添加您的导入+ register() 呼叫
  6. 在上查找确切的端点路径 开发者门户
  7. 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

许可证

麻省理工学院