mcp-sac-tools
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-sac-toolsList all users"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-sac-tools
MCP (Model Context Protocol) server for SAP Analytics Cloud — enables AI assistants to interact with SAC stories, models, data, users, and audit logs via the SAC REST API.
27 tools across 7 categories: stories, data export, data import, user/team management (SCIM 2.0), audit, resources, and diagnostics.
Features
Stories & Resources
sac_list_stories / sac_get_story — Browse stories with optional model metadata
sac_list_resources / sac_get_resource — List content resources (stories, models, folders)
Data Export (Read)
sac_list_models — List all models/providers on the tenant
sac_get_model_metadata — Get model schema (dimensions, measures, types)
sac_read_fact_data — Query fact data with OData filtering, paging, column selection
sac_read_master_data — Read dimension member master data
sac_read_audit_data — Read model-level change logs
Data Import (Write)
sac_create_import_job — Allocate a staging area for data import
sac_post_import_data — Push rows to staging (does not touch model yet)
sac_validate_import — Validate staged data before committing
sac_run_import — Execute import (async)
sac_import_status — Check import job progress
sac_import_invalid_rows — Retrieve rejected rows
User & Team Management (SCIM 2.0)
sac_list_users / sac_get_user / sac_create_user / sac_update_user / sac_delete_user
sac_list_teams / sac_get_team / sac_create_team / sac_update_team / sac_delete_team
Audit & Diagnostics
sac_export_audit_activities — Export tenant audit/login activities
sac_server_status — MCP server health check
Related MCP server: SAP Datasphere MCP Server
Prerequisites
SAP Analytics Cloud tenant with API access enabled
OAuth 2.0 client configured in SAC (Administration → App Integration → OAuth Clients)
Grant type: Client Credentials
Note down: Client ID, Client Secret, Token URL
Node.js v18+
Setup
# Install dependencies
npm install
# Copy and fill in your credentials
cp .env.example .env
# Edit .env with your SAC tenant details
# Build
npm run build
# Test with MCP Inspector
npm run inspectConfiguration
Environment Variables
Variable | Required | Description |
| Yes | SAC tenant URL (e.g. |
| Yes | OAuth token endpoint (e.g. |
| Yes | OAuth client ID |
| Yes | OAuth client secret |
| No | Cache TTL in seconds (default: 300) |
| No | Log level: info, debug, error (default: info) |
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"sap-analytics-cloud": {
"command": "node",
"args": ["c:\\path\\to\\mcp-sac-tools\\dist\\index.js"],
"env": {
"SAC_TENANT_URL": "https://mytenant.eu10.sapanalytics.cloud",
"SAC_TOKEN_URL": "https://mytenant.authentication.eu10.hana.ondemand.com/oauth/token",
"SAC_CLIENT_ID": "your-client-id",
"SAC_CLIENT_SECRET": "your-client-secret"
}
}
}
}Example Usage
"Show me all stories" → calls sac_list_stories
"What data is in the Revenue model?" → calls sac_list_models → sac_get_model_metadata → sac_read_fact_data
"List all users" → calls sac_list_users
"Import this sales data into model X" → calls sac_create_import_job → sac_post_import_data → sac_validate_import → sac_run_import
Architecture
src/
├── index.ts # Entry point (stdio transport)
├── server.ts # Server factory (wires APIs → handlers)
├── auth/
│ ├── oauth.ts # OAuth 2.0 client credentials
│ └── token-manager.ts # Token caching with auto-refresh
├── api/
│ ├── sac-client.ts # Authenticated HTTP client (CSRF handling)
│ ├── stories.ts # /api/v1/stories
│ ├── data-export.ts # /api/v1/dataexport (OData CDI)
│ ├── data-import.ts # /api/v1/dataimport
│ ├── scim.ts # /api/v1/scim2
│ ├── audit.ts # /api/v1/audit
│ └── resources.ts # /api/v1/Resources
├── handlers/
│ ├── BaseHandler.ts # Abstract base (jsonResponse/errorResponse)
│ ├── StoryHandlers.ts
│ ├── DataExportHandlers.ts
│ ├── DataImportHandlers.ts
│ ├── ScimHandlers.ts
│ ├── AuditHandlers.ts
│ ├── ResourceHandlers.ts
│ └── DiagnosticHandlers.ts
├── cache/
│ └── cache-manager.ts # TTL-based in-memory cache
└── types/
└── sac.ts # TypeScript interfacesContributing
Fork the repository
Create a feature branch (
git checkout -b feature/my-feature)Commit your changes (
git commit -am 'Add my feature')Push to the branch (
git push origin feature/my-feature)Open a Pull Request
License
ISC — see LICENSE for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBquality-maintenanceAn MCP server that enables AI assistants to interact with SAP systems via the ABAP Development Tools (ADT) REST API. It allows users to read ABAP source code, inspect DDIC objects, and execute SQL queries directly.66
- AlicenseAqualityAmaintenanceProduction-ready MCP server that enables AI assistants to seamlessly interact with SAP Datasphere environments for real tenant data discovery, metadata exploration, analytics operations, ETL data extraction, database user management, data lineage analysis, and column-level data profiling.3945542MIT
- AlicenseCqualityDmaintenanceEnables interaction with SAP Analytics Cloud through an MCP server, exposing 90 tools for content management, data export/import, user management, and more via natural language.9012MIT
- Alicense-qualityDmaintenanceA config-driven MCP server that exposes OData and REST APIs as MCP tools, enabling AI assistants to query, manage, and monitor SAP backends through natural language.4527MIT
Related MCP Connectors
MCP server for AI access to Swagger by SmartBear.
MCP server for AI dialogue using various LLM models via AceDataCloud
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pmankineni/mcp-sac-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server