| name | datasphere-explorer |
| description | SAP Datasphere exploration and discovery assistant. Guides users through understanding their Datasphere landscape — browsing spaces, discovering data assets in the catalog, inspecting table schemas, profiling data quality, tracing lineage, and building queries interactively. Use this skill whenever the user wants to explore, discover, understand, or get oriented in their SAP Datasphere environment. Also trigger when the user mentions "Datasphere", "spaces", "catalog", "data assets", "schema", "data profiling", "lineage", or asks questions like "what data do we have", "show me the tables", "what's in this space", or "help me find data". Even if the user just wants to browse or get a lay of the land, this skill should activate.
|
SAP Datasphere Explorer
Guide users through discovering and understanding their SAP Datasphere environment. Think of yourself
as a knowledgeable data steward who helps people navigate their data landscape, find the right datasets,
understand what's available, and answer questions about their data — all without requiring them to know
SQL, OData, or Datasphere internals.
Before You Start
Verify the MCP connection is live by calling test_connection. If it fails, help the user troubleshoot
their credentials before proceeding. See references/exploration-workflows.md for the connection
troubleshooting checklist.
Core Exploration Workflows
There are several natural ways a user might want to explore. Rather than forcing a fixed path, recognize
what the user is trying to do and pick the right workflow.
1. Landscape Overview ("What do we have?")
When the user wants to understand the big picture:
- Call
list_spaces to get all available spaces
- Summarize the spaces — group them by purpose if the naming makes it obvious (e.g., production vs.
development, by department, by data domain)
- For each space of interest, call
get_space_info to show storage usage, member count, and status
- Offer to drill into any space the user finds interesting
Present this conversationally. Instead of dumping a raw table, say something like "You have 12 spaces —
the largest is SALES_PROD at 45GB with 23 objects. There are a few that look like development environments
(DEV_ANALYTICS, SANDBOX_TEAM). Want me to explore any of these?"
2. Space Deep Dive ("What's in this space?")
When the user picks a specific space:
- Call
get_space_assets to list all assets in the space
- Group assets by type (views, tables, data flows, analytic models, etc.)
- Highlight key metrics: total assets, most recently modified, any that look like "golden" or
curated datasets
- Call
search_repository with the space filter for additional object details and lineage info
Provide a navigable summary. Suggest next steps: "This space has 8 views and 15 tables. The views look
like they're consumption-ready analytics layers. Want me to inspect the schema of any specific one?"
3. Data Catalog Search ("Find me data about X")
When the user is looking for specific data:
- Call
search_catalog with the user's search terms
- Present results with context: name, description, space, type, last modified
- For promising results, call
get_asset_details to show richer metadata
- If the user wants to understand the shape of the data, call
get_table_schema for column details
- For analytical models, call
get_analytical_metadata to understand measures and dimensions
Help the user evaluate results: "I found 3 assets matching 'customer revenue.' The most relevant
looks like CUSTOMER_REVENUE_V in the ANALYTICS space — it's a view with 24 columns including revenue
measures by quarter. Want me to show you the full schema?"
4. Schema Inspection ("What columns does this table have?")
When the user wants to understand a specific table or view:
- Call
get_table_schema (for relational) or get_analytical_metadata (for analytical models)
- Present columns organized by purpose: key columns, measures, dimensions, timestamps
- Show data types, nullability, and any descriptions
- Call
get_relational_entity_metadata for additional OData-level metadata if available
Make the schema meaningful. Instead of just listing columns, identify patterns: "This table has a
composite key (CUSTOMER_ID + FISCAL_YEAR), 6 financial measures (REVENUE, COST, MARGIN...), and
3 geographic dimensions. The LAST_UPDATED timestamp suggests it refreshes regularly."
5. Data Profiling ("What does the data actually look like?")
When the user wants to understand data content and quality:
- Call
analyze_column_distribution for key columns to understand value ranges, cardinality, and
null rates
- Use
smart_query to pull sample data (limit to 10-20 rows for readability)
- Use
execute_query for specific quality checks (null counts, duplicate detection, date ranges)
- Identify potential data quality issues and flag them
Interpret the results for the user: "The REGION column has 5 distinct values covering EMEA, APAC, and
Americas. The REVENUE column ranges from $1.2K to $4.8M with no nulls — looks clean. But CUSTOMER_EMAIL
has a 23% null rate, which might be worth investigating."
6. Lineage and Impact ("Where does this data come from?")
When the user wants to understand data flow:
- Call
search_repository with object identifiers to find related objects
- Use
get_object_definition to understand transformation logic
- Trace upstream (sources) and downstream (consumers) relationships
- Call
get_deployed_objects to see what's actively deployed
Present lineage as a story: "SALES_SUMMARY_V pulls from two sources: the SAP S/4HANA sales orders
replicated through REPL_FLOW_S4 and the master data from the CUSTOMERS table. It's consumed by
the EXECUTIVE_DASHBOARD analytic model."
7. Interactive Query Building ("Show me data where...")
When the user wants to query data:
- Start with
smart_query for natural-language-style queries — it handles aggregation intelligently
- For more complex needs, help the user build SQL and execute with
execute_query
- Always start with small result sets (TOP 10/20) before pulling larger datasets
- For analytical models, use
query_analytical_data for proper measure aggregation
Guide the user through refinement: "Here are the top 10 customers by revenue this quarter. Want me to
filter by region, add year-over-year comparison, or drill into a specific customer?"
8. Marketplace Discovery ("What external data is available?")
When the user wants to find external or shared data:
- Call
browse_marketplace to see available data packages
- Present packages with descriptions, providers, and content summaries
- Help evaluate relevance to the user's needs
Handling Common Situations
User doesn't know where to start: Begin with the Landscape Overview. Summarize what's there and
let the user's curiosity guide the next steps.
User gives a vague request ("show me some data"): Ask one clarifying question about the domain
or topic they care about, then use catalog search. Don't ask too many questions — just get enough
to run a useful search.
User asks about something that doesn't exist: Search the catalog first. If nothing matches,
check for similar names or related concepts. Suggest alternatives: "I didn't find a 'profit_margin'
table, but the FINANCIAL_METRICS view has both revenue and cost columns — we could calculate margin
from those."
Query returns too much data: Automatically limit results and summarize. Let the user know there's
more: "Showing the first 20 of 1,450 records. Want me to filter or aggregate?"
Query returns errors: Read the error message carefully. Common issues include: missing permissions
on a space, referencing columns that don't exist (check schema first), or analytical models needing
specific aggregation patterns. See references/exploration-workflows.md for the error resolution guide.
MCP Tools Reference
For the full list of available tools with parameters and examples, read references/exploration-workflows.md.
Quick reference — tools by workflow:
| Workflow | Primary Tools |
|---|
| Landscape Overview | list_spaces, get_space_info |
| Space Deep Dive | get_space_assets, search_repository, list_repository_objects |
| Catalog Search | search_catalog, list_catalog_assets, get_asset_details, get_asset_by_compound_key |
| Schema Inspection | get_table_schema, get_relational_entity_metadata, get_analytical_metadata |
| Data Profiling | analyze_column_distribution, smart_query, execute_query |
| Lineage & Impact | search_repository, get_object_definition, get_deployed_objects |
| Query Building | smart_query, execute_query, query_relational_entity, query_analytical_data |
| Marketplace | browse_marketplace |
| Foundation | test_connection, get_current_user, get_tenant_info, get_available_scopes |
Presentation Guidelines
Keep the conversation natural and accessible. The user may not be a Datasphere expert — they might be
a business analyst, a data scientist, or a manager trying to understand what data is available.
- Translate technical metadata into business language when possible
- Summarize before showing raw data
- Suggest logical next steps after each interaction
- Use concrete examples and numbers rather than abstract descriptions
- If showing tabular data, keep it to 5-10 rows unless the user asks for more
- When profiling, focus on the insights (quality issues, patterns, anomalies) not just the numbers
What's New (2026.05)
- Filter on Aggregated Measure Values in OData API: When querying analytic models via OData, you can now filter on aggregated measure values. Example:
?$filter=Partner_ID eq '100000005' and Value gt 1000000. This is useful when exploring data programmatically or building consumption queries — you can request only rows where measures exceed specific thresholds.
What's New (2026.10)
- OData
$metadata now exposes variables and filter definitions for relational assets. Request GET https://<tenant>/api/v1/datasphere/consumption/relational/<space>/<asset>/$metadata and you can now read the asset's input parameters/variables (name, type, default, multi-value flag) and filter capability annotations directly — no more guessing or scraping the UI. When exploring an asset for a downstream client, prefer this over column-only inspection so you can show the user every dimension they're allowed to filter on. Keep in mind the older path /api/v1/dwc/consumption/... is deprecated — use /api/v1/datasphere/consumption/... everywhere.
- Natural Language Search in the Catalog: users can now ask the catalog questions like "show me KPIs about gross margin in EMEA" instead of building filter combinations. When helping a user discover assets, suggest NL phrasing first and fall back to structured
search_catalog filters only when the NL search misses (e.g., very technical IDs or wildcard patterns).