Skip to main content
Glama

sap_read_where_used

Trace SAP object dependencies via cross-reference tables to show where an object is used or what it uses, supporting wildcard filters and result limits for efficient where-used analysis.

Instructions

Queries SAP's cross-reference tables (WBCROSSGT/WBCROSSI) to find what objects use a given object (forward) or what a given object uses (inverse). Equivalent to SAP's 'Where-Used List' functionality. IMPORTANT: For heavily-used tables (MARA, KNA1, LFA1), use name_filter='Z*' to avoid timeout!

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
directionNoQuery direction: 'forward' finds what uses this object, 'inverse' finds what this object usesforward
max_resultsNoMaximum number of results to return (max: 1000)
name_filterNoFilter pattern for object names (e.g., 'Z*' for custom objects, 'Y*' for Y namespace). Supports * as wildcard. REQUIRED for heavily-used tables like MARA to avoid timeout!
object_nameYesName of the object to look up (e.g., MARA, BAPI_PO_CREATE, ZCL_MY_CLASS)
object_typeNoType of the objectTABL

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed19 schema fields changedv0.1.2
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / direction / default
      Added value: +"forward"
    • changedInput schema / properties / direction / description
      Previous value: -"'forward' (what uses X, default) or 'inverse' (what X uses)"New value: +"Query direction: 'forward' finds what uses this object, 'inverse' finds what this object uses"
    • addedInput schema / properties / direction / enum
      Added value: +[
      +  "forward",
      +  "inverse"
      +]
    • addedInput schema / properties / direction / example
      Added value: +"forward"
    • addedInput schema / properties / max_results / default
      Added value: +100
    • changedInput schema / properties / max_results / description
      Previous value: -"Maximum results (default 100)"New value: +"Maximum number of results to return (max: 1000)"
    • addedInput schema / properties / max_results / example
      Added value: +100
    • addedInput schema / properties / max_results / maximum
      Added value: +1000
    • addedInput schema / properties / max_results / minimum
      Added value: +1
    • changedInput schema / properties / max_results / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / name_filter
      Added value: +{
      +  "description": "Filter pattern for object names (e.g., 'Z*' for custom objects, 'Y*' for Y namespace). Supports * as wildcard. REQUIRED for heavily-used tables like MARA to avoid timeout!",
      +  "example": "Z*",
      +  "type": "string"
      +}
    • changedInput schema / properties / object_name / description
      Previous value: -"Object name, e.g. MARA, ZCL_MY_CLASS"New value: +"Name of the object to look up (e.g., MARA, BAPI_PO_CREATE, ZCL_MY_CLASS)"
    • addedInput schema / properties / object_name / example
      Added value: +"MARA"
    • addedInput schema / properties / object_type / default
      Added value: +"TABL"
    • changedInput schema / properties / object_type / description
      Previous value: -"TABL, VIEW, DTEL, DOMA, STRU, PROG, INCL, FUNC, CLAS or FUGR (default TABL)"New value: +"Type of the object"
    • addedInput schema / properties / object_type / enum
      Added value: +[
      +  "TABL",
      +  "VIEW",
      +  "DTEL",
      +  "DOMA",
      +  "STRU",
      +  "PROG",
      +  "INCL",
      +  "FUNC",
      +  "CLAS",
      +  "FUGR"
      +]
    • addedInput schema / properties / object_type / example
      Added value: +"TABL"
  2. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the underlying tables, the forward/inverse behavior, and the 'Where-Used List' equivalence. The explicit warning about timeouts on tables like MARA, KNA1, and LFA1 adds valuable performance context. It does not detail return format or pagination, but the query nature is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a critical warning, with no redundancy. The core purpose and direction semantics are front-loaded, and the timeout warning is placed at the end where it serves as an actionable note. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description provides enough context to understand what the tool does and how to avoid common failures. It explains the result concept ('what objects use a given object' or 'what a given object uses') and covers the important performance caveat. It could be more complete with explicit return-value or pagination details, but the current coverage is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all five parameters with descriptions and examples, so baseline is 3. The description adds value beyond the schema by explicitly warning that name_filter should be used for heavily-used tables like MARA to avoid timeouts, which is non-obvious operational guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Queries'), a resource (SAP's cross-reference tables WBCROSSGT/WBCROSSI), and a well-known SAP concept ('Where-Used List'). It clearly defines forward vs inverse semantics, making it easy to distinguish from generic SAP read tools like sap_read_object_details or sap_search_tables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool by explaining it queries cross-reference tables and provides a timeout-avoidance guideline for heavy tables. However, it does not explicitly state when not to use it or compare it with sibling tools, so the agent has to infer the boundary from the function name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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/NicoHern/abapilot-mcp'

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