loading…
Search for a command to run...
loading…
Exposes 48 SAP Ariba APIs as Claude-compatible tools for managing procurement, sourcing, supplier management, and supply chain data. It enables AI agents to int
Exposes 48 SAP Ariba APIs as Claude-compatible tools for managing procurement, sourcing, supplier management, and supply chain data. It enables AI agents to interact with contracts, catalogs, and business network transactions through natural language.
A Model Context Protocol (MCP) server that exposes 48 SAP Ariba APIs as Claude-compatible tools. Built with Python and FastMCP.
This enables Claude (or any MCP-compatible AI) to interact with SAP Ariba procurement, sourcing, supplier management, contracts, catalogs, and supply chain data via natural language.
API Reference: https://help.sap.com/docs/ariba-apis Developer Portal: 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 │
└──────────────────────────────────────────────────┘
| API | Owner |
|---|---|
| Ariba Network Purchase Orders API | Anil |
| Purchase Orders Supplier API | Nitish SM |
| Order Change Requests API for Buyers | Anim |
| Order Change Requests API for Suppliers | Shabreen |
| Ariba Network Invoice Header Data Extraction API | Ayub |
| Ship Notice API for Buyers | Ayub |
| Ship Notice API for Suppliers | Shabreen |
| Planning Collaboration Buyer API | Anim |
| Planning Collaboration Supplier API | Shabreen |
| Trading Partner Profile Certification API | Ayub |
| Supplier Information API | Shabreen |
| Proof of Service API for Buyers | (unassigned) |
| Data Replication Status for Multi-ERP | Ayub |
| Transaction Monitoring API | Anim |
| API | Owner |
|---|---|
| Internal Catalogs Shop API | Anil |
| Public Catalogs Shop API | Anil |
| Network Catalog Management API | Anil |
| SAP Ariba Catalog Content API | Ayub |
| Catalog Connectivity Service API | Ayub |
| Content Lookup API | Anil |
| Materials and BOM Tag Management API | Anil |
| API | Owner |
|---|---|
| Document Approval API | Anim |
| Audit Search API | Vanshika |
| Integration Monitoring API for Procurement | Vanshika |
| Integration Monitoring API for Strategic Sourcing | Pranathi |
| Master Data Integration Job Status API | Anim |
| Configuration Parameter Review API | Vanshika |
| SAP Ariba Custom Forms API | Vanshika |
| Asset Management API | Rohit Naik |
| Master Data Retrieval API for Procurement | Rohit Naik |
| Guided Buying Functional Documents API | Anim |
| Create Procurement Workspace API | Vanshika |
| User Qualification API | Anil |
| Public Procurement Notices Export API | Rohit Naik |
| NDA Data Export API | Rohit Naik |
| API | Owner |
|---|---|
| Operational Reporting API for Procurement | Vanshika |
| Analytical Reporting API (Strategic & Operational) | Anim |
| Contract Compliance API | Vanshika |
| Contract Workspace Retrieval API | Anim |
| Contract Workspace Management APIs | Rohit Naik |
| Contract Terms Management API | Shabreen |
| Cost Breakdown Data Extraction API | Vanshika |
| API | Owner |
|---|---|
| Operational Reporting API for Strategic Sourcing | Pranathi |
| Sourcing Project Management API | Pranathi |
| Event Management API | Anim |
| External Approval API for Sourcing & Supplier Mgmt | Pranathi |
| Master Data Retrieval API for Sourcing | Pranathi |
| Pricing API for Product Sourcing | Pranathi |
| Surrogate Bid API | Rohit Naik |
| Product Hierarchy Management API | Shabreen |
| Bill of Materials Import API | Anim |
| API | Owner |
|---|---|
| Supplier Data API with Pagination | Nitish SM |
| Supplier Data API | Nitish SM |
| Supplier Data Extraction API | Nitish SM |
| Ariba Network Supplier Profile API | Nitish SM |
| Supplier Invite API | Nitish SM |
| Supplier Risk Engagements API | Nitish SM |
| Risk Exposure API | Anim |
| Risk Category Information API | Shabreen |
One team member registers on the SAP Ariba Developer Portal and shares credentials:
.env and share securely:cp .env.example .env
# Fill in credentials
Never commit
.envto 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
Add to ~/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
Each folder has a _example.py with a working tool to copy from. To add your API:
src/ariba_mcp/tools/ (see table above)_example.py in that folder for the patternsupplier_data_extraction.py)register(mcp, client) function with your @mcp.tool inside it__init__.py and add your import + register() callnpx @modelcontextprotocol/inspector python -m ariba_mcp.serverSee CONTRIBUTING.md for detailed coding patterns.
| Variable | Required | Default | Description |
|---|---|---|---|
ARIBA_REALM |
Yes | — | Ariba realm (e.g. mycompany-T) |
ARIBA_CLIENT_ID |
Yes | — | OAuth 2.0 client ID |
ARIBA_CLIENT_SECRET |
Yes | — | OAuth 2.0 client secret |
ARIBA_API_KEY |
Yes | — | Application key |
ARIBA_OAUTH_URL |
No | https://api.ariba.com |
OAuth endpoint |
ARIBA_API_URL |
No | https://openapi.ariba.com/api |
API base URL |
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"sap-ariba-mcp-server": {
"command": "npx",
"args": []
}
}
}