Skip to main content
Glama
JumenEngels

sap_analytics_cloud_mcp

by JumenEngels

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SAC_BASE_URLYesTenant root URL (no trailing slash)
SAC_CLIENT_IDYesOAuth Client ID
SAC_TOKEN_URLYesOAuth token endpoint
SAC_CLIENT_SECRETYesOAuth Client Secret

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Returns pong — useful for verifying connectivity

sac_stories_listA

List stories via GET /api/v1/stories. WARNING: This endpoint does NOT support OData filtering. All query parameters ($filter, $top, $orderby, etc.) are silently ignored by the SAC API — it always returns every story on the tenant (3000+). The response does NOT include an 'owner' field. Response fields per story: storyId, name, createdBy, changedBy (and optionally model metadata). TO FILTER STORIES BY USER OR TYPE use sac_filerepository_list instead, which supports real OData $filter on createdBy, modifiedBy, resourceType, createdTime, etc.

sac_stories_copyD

Copy a story.

sac_stories_renameC

Rename a story.

sac_stories_deleteB

Delete a story.

sac_metadata_getA

Get OData metadata document for the SAC REST API.

sac_resources_listA

List resources via GET /api/v1/Resources (OData v2, returns XML/Atom format — not recommended for filtering). Use sac_filerepository_list for JSON responses with working OData $filter support.

sac_resources_getC

Get a single resource by ID.

sac_filerepository_listA

List story types, enumerate content types, and filter file repository resources via GET /api/v1/filerepository/Resources. Use to list all story types (standard story, story template, analytic application), enumerate design experiences (Classic vs Optimized), or filter stories/apps by user, date, or type. OData $filter, $top, $orderby, $select, $count all work. IMPORTANT — visibility scope: By default (applyManagePrivilege=false), only content the service account has Read access to is returned (typically a small subset of tenant content). Set applyManagePrivilege=true to get ALL tenant content (all users' private folders, public folders, workspaces) — requires the service account to have the "Manage" permission for Private Files and Public Files. Always use applyManagePrivilege=true when the user wants to search/list across the whole tenant. Response fields: resourceId, objectId, name, description, resourceType, resourceSubtype, createdTime, createdBy, modifiedTime, modifiedBy, folderType, workspaceId, workspaceName, openURL, isMobile, isFeatured. Filterable fields: resourceType (values: STORY, APPLICATION, DATAACTION, PLANNINGSEQUENCE, MULTIACCOUNT, DIMENSION, ANALYTIC_MODEL), createdBy (exact username/ID), modifiedBy, createdTime, modifiedTime, name, folderType (PUBLIC, PRIVATE, SYSTEM, INPUT_SCHEDULE). STORY TYPES — resourceSubtype and objectId encoding: resourceSubtype="" (empty) → standard story (covers both Classic and Optimized design experience) resourceSubtype="TEMPLATE" → story template resourceSubtype="APPLICATION" → Analytic Application (scripted, code-based) Design experience is NOT in resourceSubtype — it is encoded in the objectId prefix: objectId prefix "t.D:" → Classic design experience (legacy) objectId prefix "t.B:" → Optimized design experience (recommended, newer) To list story types: $select=name,resourceSubtype,objectId and $orderby=resourceSubtype asc — groups stories by subtype and lets you read the objectId prefix for design experience. Filter examples: $filter=resourceType eq 'STORY' — all stories $filter=resourceType eq 'STORY' and createdBy eq 'USERNAME' — stories by a specific user $filter=resourceType eq 'STORY' and modifiedBy eq 'USERNAME' — stories last modified by user $filter=resourceType eq 'STORY' and createdTime gt 2024-01-01T00:00:00Z — recently created WORKSPACE / TEAM FILES: To list all workspaces (team files spaces), filter by folderType eq 'INPUT_SCHEDULE' and workspaceId ne null. This returns exactly one entry per workspace with its workspaceId and workspaceName. Example: $filter=folderType eq 'INPUT_SCHEDULE' and workspaceId ne null with $select=workspaceId,workspaceName and $orderby=workspaceName asc.

sac_repositories_listC

List repositories. Supports OData query params.

sac_widget_get_dataC

Get widget data from a story.

sac_export_list_namespacesA

List data export namespaces (sac, sac_currency_tables, sac_public_dimensions, sac_unit_conversion).

sac_export_get_namespaceC

Get namespace details.

sac_export_list_providersB

List data providers (models) in a namespace.

sac_export_list_subscriptionsA

List all data export subscriptions.

sac_export_get_subscriptionC

Get subscription by composite key.

sac_export_list_provider_subscriptionsC

List subscriptions for a provider.

sac_export_create_subscriptionB

Create data export subscription for delta tracking.

sac_export_delete_subscriptionB

Delete data export subscription(s).

sac_export_admin_metadataC

Get OData metadata for admin service.

sac_export_get_provider_metadataB

Get OData metadata (EDMX) for a provider.

sac_export_get_provider_entitiesC

List available entity sets for a provider.

sac_export_get_fact_dataC

Get fact data. Supports OData params, delta tracking (trackChanges/deltaid/externalid), CSV export.

sac_export_get_fact_data_aggregationA

Get aggregated fact data grouped by dimensions and measures. PREREQUISITE: call sac_import_get_model_metadata first to discover valid dimension and measure names for $select. Use $select for dims/measures. 'provider' is the model ID — resolve name→ID via sac_filerepository_list ($filter=name eq 'MODEL_NAME' and resourceType eq 'ANALYTIC_MODEL'). Namespace for analytic models is 'sac'.

sac_export_get_fact_data_differenceB

Get measure value differences over subscription period. Requires trackChanges or deltaid.

sac_export_get_master_dataB

Get master data and level-based hierarchies for all dimensions.

sac_export_get_dimension_masterC

Get master data for a single dimension ({DimensionName}Master entity set).

sac_export_get_dimension_master_hierarchyC

Get master data with parent-child hierarchy for a dimension.

sac_export_get_audit_dataB

Get audit data (change history). Requires Data Audit enabled on model.

sac_export_get_currency_tableC

Get currency conversion rates. Namespace: sac_currency_tables.

sac_export_get_conversion_ratesC

Get unit conversion rates. Namespace: sac_unit_conversion.

sac_export_get_public_dimension_dataB

Get public dimension master data. Namespace: sac_public_dimensions.

sac_export_get_dataC

Generic: get data from any provider entity set. For Distinct queries use '{col}___Distinct'.

sac_import_list_modelsA

List models available for data import. Does NOT support name filtering — returns all models. To find a model ID by name, use sac_filerepository_list with $filter=name eq 'MODEL_NAME' and resourceType eq 'ANALYTIC_MODEL' — the returned resourceId is the model ID.

sac_import_get_modelB

Get model import types, versions, settings, and metadata URL.

sac_import_get_model_metadataA

Get model dimension names, measure names and field types. Call this BEFORE sac_export_get_fact_data_aggregation to discover valid $select fields (e.g. PD_O_BusinessUnit, SignedData). Required whenever field names are unknown. Use when: aggregating fact data, exporting by dimension, querying model structure.

sac_import_create_jobC

Create import job for a model. Returns JobID/JobURL.

sac_import_list_jobsC

List all import jobs.

sac_import_upload_dataB

Upload data to an import job. Returns upserted/failed row counts.

sac_import_validate_jobB

Validate import job before running.

sac_import_run_jobC

Execute validated import job.

sac_import_get_job_statusB

Get job status: READY_FOR_DATA, READY_FOR_WRITE, PROCESSING, COMPLETED, FAILED.

sac_import_get_invalid_rowsB

Get rejected rows with rejection reasons.

sac_import_delete_jobC

Delete an import job.

sac_import_oneclickB

One-click: create job, upload, validate, run in one request.

sac_import_list_public_dimensionsA

List public dimensions available for import.

sac_import_get_public_dimensionB

Get public dimension import types and metadata URL.

sac_import_get_public_dimension_metadataB

Get public dimension metadata: columns, types, keys.

sac_import_create_public_dimension_jobB

Create import job for a public dimension.

sac_import_list_currency_conversionsC

List currency conversion tables for import.

sac_import_get_currency_conversionC

Get currency conversion import types and settings.

sac_import_get_currency_conversion_metadataB

Get currency conversion metadata: columns, types, keys.

sac_import_create_currency_conversion_jobB

Create import job for a currency conversion table.

sac_import_list_unit_conversionsC

List unit conversion tables for import.

sac_import_get_unit_conversionC

Get unit conversion import types and settings.

sac_import_get_unit_conversion_metadataA

Get unit conversion metadata: columns, types, keys.

sac_import_create_unit_conversion_jobC

Create import job for a unit conversion table.

sac_multi_action_executeB

Execute a multi action. ID format: :. Body requires parameterValues array (empty if none).

sac_multi_action_get_statusC

Get execution status of a multi action.

sac_calendar_get_eventB

Get a calendar event by ID.

sac_calendar_update_eventC

Update a calendar event (partial).

sac_calendar_copy_eventC

Copy/create a calendar event.

sac_transport_create_export_jobC

Create a content transport export job.

sac_transport_get_job_statusB

Get content transport job status.

sac_transport_create_import_jobC

Create a content transport import job.

sac_transport_delete_contentC

Delete a content item.

sac_transport_get_content_itemB

Get content item details within a wave.

sac_transport_get_permissionsB

Get permissions for a content item.

sac_transport_move_itemC

Move a content item to a target location.

sac_users_listC

List users (SCIM v2).

sac_users_getA

Get a user by UUID.

sac_users_createB

Create a user (SCIM v2).

sac_users_updateB

Full replace of a user (SCIM v2 PUT).

sac_users_patchC

Partial update of a user (SCIM v2 PATCH).

sac_users_deleteC

Delete a user.

sac_teams_listA

List user security groups via SCIM v2 (/api/v1/scim2/Groups). Returns groups used for role assignments and access control (e.g. T_SALES, T_HR). These are identity/authorization groups, not file storage folders.

sac_teams_createB

Create a team/group (SCIM v2).

sac_teams_patchB

Partial update of a team/group (SCIM v2 PATCH).

sac_users_bulkB

Bulk SCIM operations (create/update/delete multiple users/groups).

sac_audit_exportC

Export audit activity logs with OData query params.

sac_monitoring_getC

Get monitoring data for a model.

sac_schedule_get_templateB

Get schedule creation template with defaults.

sac_schedule_createC

Create a publication schedule.

sac_schedule_updateC

Update a publication schedule (partial).

sac_schedule_deleteB

Delete a publication schedule.

sac_translation_list_artifactsC

List translatable artifacts.

sac_translation_get_artifactC

Get metadata for a translatable artifact.

sac_translation_download_xliffB

Download XLIFF translation file for an artifact.

sac_translation_download_xliff_bulkC

Download XLIFF files for multiple artifacts.

smart_queryB

Execute a SQL-like query against SAC. Auto-selects OData vs Widget Query based on query type.

Prompts

Interactive templates invoked by user choice

NameDescription
explore_content
analyze_story
system_health_check
audit_user_activity

Resources

Contextual data attached and managed by the client

NameDescription
server-info

Latest Blog Posts

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/JumenEngels/sap_analytics_cloud_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server