[symbols]
Searches symbol index by name pattern (* and ? wildcards). Full-featured: namespace/accessibility filters, sorting, paging. Use for exploration or filtered/sorted results. Returns stable symbolKeys.
C# names are overloaded, scoped, generic, nested, and sometimes duplicated across projects.
Symbol discovery converts fuzzy names or cursor positions into stable identities the model can reuse for later references, callers, and refactors.
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search pattern. Supports '*' and '?', or plain text for substring match. |
| kinds | string | No | Optional kinds filter (comma-separated): 'Type,Method,Property,Field,Event'. |
| namespaceFilter | string | No | Optional namespace prefix filter (e.g., 'MyApp.Services'). |
| projectName | string | No | Optional project name filter. |
| sourceOnly | boolean | No | Only search symbols with source in solution (excludes external assemblies/packages). Default is true. |
| accessibility | string | No | Filter by accessibility: 'Public', 'Internal', 'Private', 'Protected', 'ProtectedOrInternal', 'ProtectedAndInternal'. |
| pathStyle | string | No | Path style: 'absolute' (default) or 'relative' (to solution root). |
| sortBy | string | No | Optional sort: 'name', 'kind', 'filePath', 'projectName', 'namespace'. |
| sortOrder | string | No | Sort order: 'asc' (default) or 'desc'. |
| skip | number | No | Pagination offset. Default is 0. |
| take | number | No | Pagination size. Default is 200. |
Search for service types
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_symbols",
"arguments": {
"query": "*Service",
"kinds": "Type"
}
}
}{
"success": true,
"data": {
"query": "*Service",
"matchCount": 2,
"paging": {
"skip": 0,
"take": 200,
"returned": 2,
"total": 2
},
"matches": [
{
"name": "UserService",
"fullName": "MyApp.Services.UserService",
"kind": "Type",
"containingType": null,
"namespace": "MyApp.Services",
"filePath": "/path/to/UserService.cs",
"lineNumber": 12,
"symbolKey": "...",
"projectName": "MyApp",
"accessibility": "Public"
}
]
},
"error": null
}Search methods containing "Login"
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_symbols",
"arguments": {
"query": "*Login*",
"kinds": "Method"
}
}
}{
"success": true,
"data": {
"query": "*Service",
"matchCount": 2,
"paging": {
"skip": 0,
"take": 200,
"returned": 2,
"total": 2
},
"matches": [
{
"name": "UserService",
"fullName": "MyApp.Services.UserService",
"kind": "Type",
"containingType": null,
"namespace": "MyApp.Services",
"filePath": "/path/to/UserService.cs",
"lineNumber": 12,
"symbolKey": "...",
"projectName": "MyApp",
"accessibility": "Public"
}
]
},
"error": null
}Search public types only
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_symbols",
"arguments": {
"query": "*Manager",
"kinds": "Type",
"accessibility": "Public"
}
}
}{
"success": true,
"data": {
"query": "*Service",
"matchCount": 2,
"paging": {
"skip": 0,
"take": 200,
"returned": 2,
"total": 2
},
"matches": [
{
"name": "UserService",
"fullName": "MyApp.Services.UserService",
"kind": "Type",
"containingType": null,
"namespace": "MyApp.Services",
"filePath": "/path/to/UserService.cs",
"lineNumber": 12,
"symbolKey": "...",
"projectName": "MyApp",
"accessibility": "Public"
}
]
},
"error": null
}Include external assemblies
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_symbols",
"arguments": {
"query": "Task",
"kinds": "Type",
"sourceOnly": false
}
}
}{
"success": true,
"data": {
"query": "*Service",
"matchCount": 2,
"paging": {
"skip": 0,
"take": 200,
"returned": 2,
"total": 2
},
"matches": [
{
"name": "UserService",
"fullName": "MyApp.Services.UserService",
"kind": "Type",
"containingType": null,
"namespace": "MyApp.Services",
"filePath": "/path/to/UserService.cs",
"lineNumber": 12,
"symbolKey": "...",
"projectName": "MyApp",
"accessibility": "Public"
}
]
},
"error": null
}Returns matching symbols (with paging) including stable symbol keys