resolve_symbol
[symbols]
Quick lookup: resolves a name or pattern into candidate symbols with stable symbolKeys. Use when you already know the symbol name. Lightweight alternative to search_symbols.
Try it locally in the Glider playground
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Name fragment or fully qualified name. |
| kinds | string | No | Optional kinds filter (comma-separated). Type, Class, Interface, Struct, Enum, Delegate, Method, Property, Field, Event, Namespace. Type means any named type; the rest match the kind a result reports. |
| projectName | string | No | Optional project name to limit scope. |
| maxCandidates | number | No | Max candidates to return. Default is 25. Default: 25 |
| pathStyle | string | No | Path style: 'absolute' (default) or 'relative' (to solution root). Default: "absolute" |
| 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.
Resolve an ambiguous type name
{
"query": "SolutionManager",
"kinds": "Type"
}Full MCP request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "resolve_symbol",
"arguments": {
"query": "SolutionManager",
"kinds": "Type"
}
}
}{
"success": true,
"query": "SolutionManager",
"candidateCount": 2,
"candidates": [
{
"symbolKey": "...",
"fullName": "MyApp.Services.SolutionManager",
"kind": "Type",
"filePath": "/path/to/SolutionManager.cs",
"lineNumber": 12,
"projectName": "MyProject"
}
],
"hints": {
"nextSteps": [
"Use get_symbol_info with a candidate symbolKey for details",
"Use find_references with symbolKey to locate usages"
]
}
}Resolve a method name
{
"query": "Login",
"kinds": "Method"
}Full MCP request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "resolve_symbol",
"arguments": {
"query": "Login",
"kinds": "Method"
}
}
}Response Notes
Returns candidate symbols with stable symbol keys. Candidates come from one name-match tier - exact name, else name prefix, else substring - reported as matchTier, with suppressedMatches counting what a weaker tier held, so a precise query is not diluted by symbols that merely contain it. Add * or ? to the query to match loosely on purpose. A query that already contains a wildcard reports matchTier Glob, which is its own tier: every hit is equally what you asked for, so nothing is suppressed and no tier note is returned. Namespaces are returned only when kinds asks for them. Results use top-level fields with success. Compact is the default; full adds responseDiagnostics. Both modes retain errors, coverage, partial state, and recovery advice.