SAP S/4HANA MCP Server

SAP S/4HANA MCP Server

Enables interaction with SAP S/4HANA systems via OData, allowing service discovery, metadata exploration, field value retrieval, and CRUD operations through natural language.

Category
Visit Server

README

SAP S4 MCP Server

MCP server for SAP S/4HANA OData access. Discover services, query entities, fetch metadata, and manage data — built on the @modelcontextprotocol/sdk TypeScript SDK.

Tools

Tool Description
discover_sap_services Discovers available services from the SAP Gateway Service Catalog
get_entity_metadata Fetches and summarizes OData service metadata optimized for LLM consumption
get_field_values Fetches dropdown/value-list values from SAP OData entities
execute_odata_query Executes OData CRUD operations (GET returns CSV, writes return JSON)

Prerequisites

  • Node.js >= 18.0.0
  • SAP S/4HANA system with OData services enabled
  • SAP user with appropriate OData authorizations

Setup

git clone https://github.com/Nidhideep/sap-s4-mcp-server
cd sap-s4-mcp-server
npm install
cp .env.example .env
# Edit .env with your SAP connection details
npm run build

Environment Variables

Copy .env.example to .env and fill in the values.

OData Connection (required)

Variable Description Example
S4_ODATA_HOST Full SAP S/4HANA URL including scheme and port https://my-s4.sap:44301
S4_ODATA_CLIENT SAP client number 100
AUTH_METHOD basic or token basic
S4_ODATA_USER SAP user (when AUTH_METHOD=basic) ODATA_USER
S4_ODATA_PASSWORD Password (when AUTH_METHOD=basic)
S4_ODATA_TOKEN Bearer token (when AUTH_METHOD=token)

Operational

Variable Description Default
LOG_LEVEL debug, info, warn, error info
DRY_RUN When true, all write operations are blocked false

MCP Client Configuration

Claude Code

claude mcp add sap-s4-mcp-server -- node /absolute/path/to/sap-s4-mcp-server/dist/src/index.js

Then set env vars via .mcp.json (copy from .mcp.example.json).

Claude Desktop / Cline

Copy .mcp.example.json to .mcp.json, fill in real values, and add to your MCP client config:

{
  "mcpServers": {
    "sap-s4-mcp-server": {
      "command": "node",
      "args": ["/absolute/path/to/sap-s4-mcp-server/dist/src/index.js"],
      "env": {
        "S4_ODATA_HOST": "https://your-s4.example.com:44301",
        "S4_ODATA_CLIENT": "100",
        "AUTH_METHOD": "basic",
        "S4_ODATA_USER": "your_user",
        "S4_ODATA_PASSWORD": "your_password"
      }
    }
  }
}

Recommended Workflow

  1. Discoverdiscover_sap_services to find the service name
  2. Understandget_entity_metadata to see entity sets and field names
  3. Validate inputsget_field_values to look up valid dropdown values
  4. Query or writeexecute_odata_query with the correct service, entity, and fields

Project Structure

src/
  index.ts              # Server entry point (stdio transport)
  server.ts             # Tool registration
tools/
  s4-discover-services.tool.ts   # Gateway catalog discovery
  s4-metadata.tool.ts            # OData $metadata parser
  s4-field-values.tool.ts        # Value-list / dropdown fetcher
  s4-odata-query.tool.ts         # CRUD query executor
config/
  env.ts                # Zod-validated environment config
  auth.ts               # Auth headers + CSRF token fetch
  policy.ts             # DRY_RUN enforcement + audit log
docs/
  authentication.md
  governance.md
  troubleshooting.md
examples/
  example-workflow.md

Development

npm run dev        # Watch mode with tsx
npm run typecheck  # Type-check without building
npm run build      # Compile to dist/

Governance

  • DRY_RUN=true blocks all write operations — safe for read-only environments
  • All write operations are audit-logged to stderr
  • CSRF tokens are fetched automatically before every write
  • No credentials are ever committed — use .env (gitignored) or MCP client env injection

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
Qdrant Server

Qdrant Server

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

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