get_type_hierarchy

[hierarchy]

Gets base types, interfaces, and derived types for a type. Requires a symbolKey.

Why this tool exists

Behavior in C# often lives behind inheritance, interfaces, overrides, and member chains.

How it helps the agent

The model can map base and derived relationships before editing contracts or investigating polymorphic behavior.

Parameters

NameTypeRequiredDescription
symbolKeystringYesOpaque symbolKey from search_symbols, resolve_symbol, get_symbol_at_position, or any tool that returns symbolKey. Not a name.
includeBaseTypesbooleanNoInclude base types. Default is true.
includeInterfacesbooleanNoInclude interfaces. Default is true.
includeDerivedTypesbooleanNoInclude derived types. Default is true.
scopejsonNoOptional scope applied to derived type search.
derivedSkipnumberNoDerived type paging offset. Default is 0.
derivedTakenumberNoDerived type paging size. Default is 200.
pathStylestringNoPath style: 'absolute' (default) or 'relative' (to solution root).

Examples

Get type hierarchy for a type symbolKey

Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_type_hierarchy",
    "arguments": {
      "symbolKey": "..."
    }
  }
}
Response
{
  "success": true,
  "data": {
    "symbolKey": "...",
    "baseTypes": [
      {
        "name": "ControllerBase",
        "fullName": "Microsoft.AspNetCore.Mvc.ControllerBase",
        "symbolKey": "..."
      }
    ],
    "interfaces": [],
    "derivedPaging": {
      "skip": 0,
      "take": 200,
      "returned": 1,
      "total": 1
    },
    "derivedTypes": [
      {
        "name": "UsersController",
        "fullName": "MyApp.Controllers.UsersController",
        "symbolKey": "...",
        "filePath": "/path/to/UsersController.cs",
        "lineNumber": 5
      }
    ]
  },
  "error": null
}

Response Notes

Returns base types, interfaces, and derived types (derived types support paging)

↑/↓ NavigateEnter OpenSpace Expand