SAP Ariba MCP Server

SAP Ariba MCP Server

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.

Category
Visit Server

README

SAP Ariba MCP Server

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


Architecture

┌─────────────────────────────────────────────────┐
│  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                     │
└──────────────────────────────────────────────────┘

All 48 APIs — 6 Domain Folders

1. Business Network — tools/business_network/

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

2. Catalog — tools/catalog/

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

3. General — tools/general/

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

4. Procurement — tools/procurement/

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

5. Strategic Sourcing — tools/strategic_sourcing/

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

6. Supplier Management — tools/supplier_management/

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

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip
  • SAP Ariba API credentials — one person provisions them for the team

Credential Setup (One-time)

One team member registers on the SAP Ariba Developer Portal and shares credentials:

  1. Go to https://developer.ariba.com
  2. Register a new application
  3. Enable the APIs needed
  4. Note: OAuth Client ID, Client Secret, API Key, Realm name
  5. Create .env and share securely:
cp .env.example .env
# Fill in credentials

Never commit .env to git.


Quick Start

# 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

Connect to Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "ariba": {
      "command": "python",
      "args": ["-m", "ariba_mcp.server"],
      "cwd": "/path/to/ariba-mcp"
    }
  }
}

Project Structure

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

How to Implement Your API

Each folder has a _example.py with a working tool to copy from. To add your API:

  1. Find the right folder in src/ariba_mcp/tools/ (see table above)
  2. Look at _example.py in that folder for the pattern
  3. Create a new .py file named after your API (e.g. supplier_data_extraction.py)
  4. Define a register(mcp, client) function with your @mcp.tool inside it
  5. Open the folder's __init__.py and add your import + register() call
  6. Look up the exact endpoint path on the Developer Portal
  7. Test with MCP Inspector: npx @modelcontextprotocol/inspector python -m ariba_mcp.server

See CONTRIBUTING.md for detailed coding patterns.


Configuration Reference

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

License

MIT

McpServer

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured