find_references
[references]
Finds all references to a symbol. Requires a symbolKey (use find_code to get one). Supports scope/filtering/grouping/paging.
Try it locally in the Glider playground
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbolKey | string | Yes | Opaque symbolKey from find_code, get_symbol_at_position, or any tool that returns symbolKey. Not a name. |
| scope | json | No | Optional scope. Omit scope to search the solution. When supplied, set mode to solution, project, document, or pathPrefix. project requires projectName. document requires filePath. pathPrefix requires pathPrefix. Paths can be absolute or relative to solutionRoot. Set includeExternal to true when the tool supports external symbols. |
| referenceKinds | string | No | Comma-separated filter: Read, Write, Invocation, TypeArgument, NameOf, Attribute. Write includes assignments inside callbacks. Invocation identifies the call target. |
| includeLineText | boolean | No | Include lineText for each reference. Default is true. Default: true |
| maxLineTextChars | number | No | Max characters for lineText. Use 0 for unlimited. Default is 200. Default: 200 |
| groupBy | string | No | Grouping: 'file', 'project', 'containingSymbol', or 'none' (default). Default: "none" |
| pathStyle | string | No | Path style: 'absolute' (default) or 'relative' (to solution root). Default: "absolute" |
| skip | number | No | Pagination offset. Default is 0. Default: 0 |
| take | number | No | Pagination size. Default is 200. Default: 200 |
| responseDetail | string | No | compact returns results and actionable state. full adds diagnostic metadata under responseDiagnostics. Default: "compact" |
Examples
Replace sample paths and symbol keys with values from your workspace.
Find references for a symbolKey
{
"symbolKey": "..."
}Full MCP request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "find_references",
"arguments": {
"symbolKey": "..."
}
}
}{
"success": true,
"symbolKey": "...",
"referenceCount": 15,
"paging": {
"total": 15
},
"references": [
{
"filePath": "/path/to/Program.cs",
"lineNumber": 9,
"column": 35,
"lineText": "builder.Services.AddSingleton<ISolutionManager, SolutionManager>();",
"projectName": "MyProject",
"referenceKind": "TypeArgument"
}
]
}Find field writes, including assignments inside event callbacks
{
"symbolKey": "...",
"referenceKinds": "Write",
"scope": {
"mode": "solution"
}
}Full MCP request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "find_references",
"arguments": {
"symbolKey": "...",
"referenceKinds": "Write",
"scope": {
"mode": "solution"
}
}
}
}Response Notes
Returns reference locations (with paging) Results use top-level fields with success. Compact is the default; full adds responseDiagnostics. Both modes retain errors, coverage, partial state, and recovery advice.
For a failed symbol-key request, success=false includes errorCode, parameter, error, and suggestions in compact, full, and batch operation results. Batch keeps a bounded summary outside the requested detail budget. If the hard server limit omits details, failureDetailsOmitted or writeStateOmitted identifies the omission. errorCode is invalid_symbol_key, symbol_not_found, ambiguous_symbol_key, wrong_symbol_kind, source_unavailable, unsupported_symbol, or invalid_arguments. Follow the suggestions for the specific failure. Correct the named selector for invalid_arguments. For symbol_not_found, repeat discovery in the selected workspace and pass a returned key unchanged. An absent identity does not prove that a key is stale.