Skip to main content
Glama

Where Used

where_used
Read-onlyIdempotent

Find where an ABAP object or a specific symbol inside its source is used. Returns each usage location with snippets or name, type and URL; pass line and column for symbol-level search.

Instructions

List where an ABAP object, or a symbol inside it, is used (the where-used list). Returns each usage as a location with a source snippet when SAP provides snippets, otherwise as name, type and URL. For symbol-level search pass line and column of the symbol in the object's source. Use search_abap_object_lines to search text inside one object instead. Read-only.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "where_used"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesADT URL of the object (e.g. /sap/bc/adt/oo/classes/zcl_order_api) or, for a symbol, its source URL ending in /source/main
lineNoLine of the symbol in the source; give together with column for a symbol-level search, omit for the whole object
columnNoColumn of the symbol in that line; give together with line
connectionIdNoSAP system connection ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.16.2
    • changedInput schema / properties / column / description
      Previous value: -"Column number for symbol-level where-used"New value: +"Column of the symbol in that line; give together with line"
    • changedInput schema / properties / line / description
      Previous value: -"Line number for symbol-level where-used"New value: +"Line of the symbol in the source; give together with column for a symbol-level search, omit for the whole object"
    • changedInput schema / properties / url / description
      Previous value: -"ADT URL of the object to find usages of"New value: +"ADT URL of the object (e.g. /sap/bc/adt/oo/classes/zcl_order_api) or, for a symbol, its source URL ending in /source/main"
  2. First observedv1.16.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered and the trailing 'Read-only' is partly redundant. The description does add real value beyond annotations by describing the return shape (locations with source snippets when SAP provides them, otherwise name/type/URL) and the condition under which snippet detail varies.

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

Conciseness4/5

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

Front-loaded with the core purpose, then return shape, then symbol-level mechanics, then the alternative. Four compact sentences with little waste, though the trailing 'Read-only' repeats what the annotations already assert.

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?

There is no output schema, and the description compensates by explaining what each result looks like and how it can vary. Combined with 100% schema coverage and read-only annotations, an agent has what it needs; only minor details such as result volume or pagination are absent.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents url, line, column and connectionId, including the '/source/main' form and the line+column pairing. The description restates these semantics without adding new constraints or formats, which is the baseline case for a fully documented schema.

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?

States a specific verb and resource ('List where an ABAP object, or a symbol inside it, is used') and immediately identifies itself as the where-used list. It distinguishes itself from the sibling search_abap_object_lines by scoping that tool to text search inside one object.

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

Usage Guidelines5/5

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

Gives explicit routing: use this tool for usage lookup at object or symbol level, and use search_abap_object_lines instead when searching text inside a single object. It also states the precondition for symbol-level search (pass line and column of the symbol in the object's source).

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