[hierarchy]
Gets base types, interfaces, and derived types for a type. Requires a symbolKey.
Behavior in C# often lives behind inheritance, interfaces, overrides, and member chains.
The model can map base and derived relationships before editing contracts or investigating polymorphic behavior.
Try it locally in the GliderMCP playground
| Name | Type | Required | Description |
|---|---|---|---|
| symbolKey | string | Yes | Opaque symbolKey from search_symbols, resolve_symbol, get_symbol_at_position, or any tool that returns symbolKey. Not a name. |
| includeBaseTypes | boolean | No | Include base types. Default is true. |
| includeInterfaces | boolean | No | Include interfaces. Default is true. |
| includeDerivedTypes | boolean | No | Include derived types. Default is true. |
| scope | json | No | Optional scope applied to derived type search. |
| derivedSkip | number | No | Derived type paging offset. Default is 0. |
| derivedTake | number | No | Derived type paging size. Default is 200. |
| pathStyle | string | No | Path style: 'absolute' (default) or 'relative' (to solution root). |
Get type hierarchy for a type symbolKey
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_type_hierarchy",
"arguments": {
"symbolKey": "..."
}
}
}{
"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
}Returns base types, interfaces, and derived types (derived types support paging)