[
{
"name": "format_document",
"title": "Format Document",
"description": "Format document with language-specific rules. Returns text edits for indentation, spacing, and style. `positions_degraded: true` on the result means some returned edit ranges' `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"insert_spaces": {
"default": true,
"description": "Whether to use spaces instead of tabs (default: true).",
"type": "boolean"
},
"tab_size": {
"default": 4,
"description": "Tab size for formatting (default: 4).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path"
],
"type": "object"
},
"annotations": {
"title": "Format Document",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_cached_diagnostics",
"title": "Cached Diagnostics",
"description": "Cached diagnostics from server notifications. Faster than the pull-model diagnostics tool, no new analysis. `positions_degraded: true` on the result means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
}
},
"required": [
"file_path"
],
"type": "object"
},
"annotations": {
"title": "Cached Diagnostics",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_code_actions",
"title": "Code Actions",
"description": "Code actions for range. Returns quick fixes, refactorings, and source actions with edits. An action's `edit.dropped` field, when non-empty, means some of that edit's changes were withheld (e.g. out-of-workspace files). `positions_degraded: true` on the result means some returned `character` offsets (diagnostic or edit ranges) may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end_character": {
"description": "End character (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"end_line": {
"description": "End line (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"kind_filter": {
"description": "Optional filter by action kind (quickfix, refactor, source, etc.).",
"type": [
"string",
"null"
]
},
"start_character": {
"description": "Start character (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"start_line": {
"description": "Start line (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"start_line",
"start_character",
"end_line",
"end_character"
],
"type": "object"
},
"annotations": {
"title": "Code Actions",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_completions",
"title": "Completions",
"description": "Completion suggestions at position. Returns methods, functions, variables, types, and snippets.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"trigger": {
"description": "Optional trigger character (e.g., '.', ':', '->').",
"type": [
"string",
"null"
]
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"annotations": {
"title": "Completions",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_definition",
"title": "Go to Definition",
"description": "Definition location of symbol at position. Returns file path, line, and character where declared. Capped at a fixed maximum for a pathological case; `truncated: true` on the result means more locations exist than are returned. `positions_degraded: true` means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"outputSchema": {
"$defs": {
"Location": {
"description": "Location in a document.",
"properties": {
"out_of_workspace": {
"description": "Whether this location is not provably inside any configured\nworkspace root (e.g. the standard library or a crates.io dependency).\n\nAdvisory only, not a security/safety guarantee: read-only navigation\nresults are never filtered by workspace containment (see\n`bridge::uri_in_workspace_roots`'s docs for why), so callers that\nwant to apply their own policy toward out-of-workspace locations can\ncheck this flag. The underlying check is purely lexical -- it does\nnot resolve symlinks -- so a location reached through a symlinked\nworkspace root (e.g. macOS's `/var` -> `/private/var`, or a package\nmanager's symlinked dependency store) can read `true` even though it\nis genuinely inside the workspace. Also always `true` when no\nworkspace roots are configured, consistent with\n`bridge::uri_in_workspace_roots`'s fail-closed convention: without a\nconfigured root, nothing can be vouched for as inside the workspace.\nOmitted (defaults to `false`) when serialized.",
"type": "boolean"
},
"range": {
"$ref": "#/$defs/Range",
"description": "Range within the document."
},
"uri": {
"description": "URI of the document.",
"type": "string"
}
},
"required": [
"uri",
"range"
],
"type": "object"
},
"Position2D": {
"description": "Position in a document (1-based for MCP).",
"properties": {
"character": {
"description": "Character offset (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"line",
"character"
],
"type": "object"
},
"Range": {
"description": "Range in a document (1-based for MCP).",
"properties": {
"end": {
"$ref": "#/$defs/Position2D",
"description": "End position."
},
"start": {
"$ref": "#/$defs/Position2D",
"description": "Start position."
}
},
"required": [
"start",
"end"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locations": {
"description": "Locations of the definition.",
"items": {
"$ref": "#/$defs/Location"
},
"type": "array"
},
"positions_degraded": {
"description": "Whether a position in this response could not be resolved for\nencoding conversion -- disk-read budget exhaustion, an unresolvable\nserver-supplied path, a line past EOF, or invalid UTF-8 content can\neach cause this -- meaning some `locations` entries' `character` values may be\nwrong for a non-UTF-16 LSP server (#497). Omitted (defaults to\n`false`) when serialized.",
"type": "boolean"
},
"truncated": {
"description": "Whether `locations` was capped below the LSP server's full response\n(see `MAX_NORMALIZED_LOCATIONS`, #474) -- if `true`, more locations\nexist than are returned here. Omitted (defaults to `false`) when\nserialized.",
"type": "boolean"
}
},
"required": [
"locations"
],
"type": "object"
},
"annotations": {
"title": "Go to Definition",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_diagnostics",
"title": "Diagnostics",
"description": "Diagnostics for a file. Returns errors, warnings, and hints with severity and location. `indexingInProgress: true` means the routed server was indexing at some point during this read, so results may be incomplete. `positions_degraded: true` means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
}
},
"required": [
"file_path"
],
"type": "object"
},
"outputSchema": {
"$defs": {
"Diagnostic": {
"description": "A single diagnostic.",
"properties": {
"code": {
"description": "Optional diagnostic code.",
"type": [
"string",
"null"
]
},
"message": {
"description": "Diagnostic message.",
"type": "string"
},
"range": {
"$ref": "#/$defs/Range",
"description": "Range where the diagnostic applies."
},
"severity": {
"$ref": "#/$defs/DiagnosticSeverity",
"description": "Severity of the diagnostic."
}
},
"required": [
"range",
"severity",
"message"
],
"type": "object"
},
"DiagnosticSeverity": {
"description": "Diagnostic severity.",
"oneOf": [
{
"const": "error",
"description": "Error diagnostic.",
"type": "string"
},
{
"const": "warning",
"description": "Warning diagnostic.",
"type": "string"
},
{
"const": "information",
"description": "Informational diagnostic.",
"type": "string"
},
{
"const": "hint",
"description": "Hint diagnostic.",
"type": "string"
}
]
},
"Position2D": {
"description": "Position in a document (1-based for MCP).",
"properties": {
"character": {
"description": "Character offset (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"line",
"character"
],
"type": "object"
},
"Range": {
"description": "Range in a document (1-based for MCP).",
"properties": {
"end": {
"$ref": "#/$defs/Position2D",
"description": "End position."
},
"start": {
"$ref": "#/$defs/Position2D",
"description": "Start position."
}
},
"required": [
"start",
"end"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"diagnostics": {
"description": "List of diagnostics for the document.",
"items": {
"$ref": "#/$defs/Diagnostic"
},
"type": "array"
},
"indexingInProgress": {
"description": "`true` if the file's diagnostics-route server (resolved via\n[`Translator::diagnostics_route_id_for_path`]) had an active signal\nindicating its initial workspace-load/indexing phase was still in\nprogress at any point during this read -- the returned diagnostics\nmay reflect a partial index. Sampled both before and after the pull\nrequest (see `McplsServer::get_diagnostics`), not just at one point\nin time, so a server that was `Loading` mid-pull but finished by the\ntime the pull settled still reads `true` here. `false` both when the\nserver was done indexing for the whole read (or never reported a\nreadiness signal) and when no route is configured for the file's\nlanguage at all.",
"type": "boolean"
},
"positions_degraded": {
"description": "Whether a position in this response could not be resolved for\nencoding conversion -- disk-read budget exhaustion, an unresolvable\nserver-supplied path, a line past EOF, or invalid UTF-8 content can\neach cause this -- meaning some `diagnostics` ranges' `character` values may be\nwrong for a non-UTF-16 LSP server (#497). Omitted (defaults to\n`false`) when serialized.",
"type": "boolean"
}
},
"required": [
"diagnostics",
"indexingInProgress"
],
"type": "object"
},
"annotations": {
"title": "Diagnostics",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_document_symbols",
"title": "Document Symbols",
"description": "Symbols in a file. Returns hierarchical outline with functions, classes, structs, and locations. `positions_degraded: true` on the result means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
}
},
"required": [
"file_path"
],
"type": "object"
},
"outputSchema": {
"$defs": {
"Position2D": {
"description": "Position in a document (1-based for MCP).",
"properties": {
"character": {
"description": "Character offset (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"line",
"character"
],
"type": "object"
},
"Range": {
"description": "Range in a document (1-based for MCP).",
"properties": {
"end": {
"$ref": "#/$defs/Position2D",
"description": "End position."
},
"start": {
"$ref": "#/$defs/Position2D",
"description": "Start position."
}
},
"required": [
"start",
"end"
],
"type": "object"
},
"Symbol": {
"description": "A document symbol.",
"properties": {
"children": {
"description": "Child symbols.",
"items": {
"$ref": "#/$defs/Symbol"
},
"type": [
"array",
"null"
]
},
"kind": {
"description": "LSP numeric symbol kind (e.g. 12 for Function).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"name": {
"description": "Name of the symbol.",
"type": "string"
},
"range": {
"$ref": "#/$defs/Range",
"description": "Range of the symbol."
},
"selection_range": {
"$ref": "#/$defs/Range",
"description": "Selection range (identifier location)."
}
},
"required": [
"name",
"kind",
"range",
"selection_range"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"positions_degraded": {
"description": "Whether a position in this response could not be resolved for\nencoding conversion -- disk-read budget exhaustion, an unresolvable\nserver-supplied path, a line past EOF, or invalid UTF-8 content can\neach cause this -- meaning some `symbols` ranges' `character` values may be\nwrong for a non-UTF-16 LSP server (#497). Omitted (defaults to\n`false`) when serialized.",
"type": "boolean"
},
"symbols": {
"description": "List of symbols in the document.",
"items": {
"$ref": "#/$defs/Symbol"
},
"type": "array"
}
},
"required": [
"symbols"
],
"type": "object"
},
"annotations": {
"title": "Document Symbols",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_hover",
"title": "Hover",
"description": "Type and documentation info at position. Returns signatures, docs, and inferred types for symbols. `positions_degraded: true` on the result means the returned range's `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"annotations": {
"title": "Hover",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_incoming_calls",
"title": "Incoming Calls",
"description": "Functions calling the specified item. Takes call hierarchy item, returns all callers. `positions_degraded: true` on the result means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"item": {
"description": "The call hierarchy item to get calls for (from prepare response)."
}
},
"required": [
"item"
],
"type": "object"
},
"annotations": {
"title": "Incoming Calls",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_inlay_hints",
"title": "Inlay Hints",
"description": "Inlay hints in range. Returns inferred type/parameter annotations the editor would render inline. `positions_degraded: true` on the result means some returned hint `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end_character": {
"description": "End character (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"end_line": {
"description": "End line (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"start_character": {
"description": "Start character (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"start_line": {
"description": "Start line (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"start_line",
"start_character",
"end_line",
"end_character"
],
"type": "object"
},
"annotations": {
"title": "Inlay Hints",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_outgoing_calls",
"title": "Outgoing Calls",
"description": "Functions called by the specified item. Takes call hierarchy item, returns all callees. `positions_degraded: true` on the result means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"item": {
"description": "The call hierarchy item to get calls for (from prepare response)."
}
},
"required": [
"item"
],
"type": "object"
},
"annotations": {
"title": "Outgoing Calls",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_references",
"title": "Find References",
"description": "References to symbol at position, across workspace. Capped at a fixed maximum for an extremely common symbol; `truncated: true` on the result means more references exist than are returned. `positions_degraded: true` means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"include_declaration": {
"default": false,
"description": "Whether to include the declaration in the results.",
"type": "boolean"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"outputSchema": {
"$defs": {
"Location": {
"description": "Location in a document.",
"properties": {
"out_of_workspace": {
"description": "Whether this location is not provably inside any configured\nworkspace root (e.g. the standard library or a crates.io dependency).\n\nAdvisory only, not a security/safety guarantee: read-only navigation\nresults are never filtered by workspace containment (see\n`bridge::uri_in_workspace_roots`'s docs for why), so callers that\nwant to apply their own policy toward out-of-workspace locations can\ncheck this flag. The underlying check is purely lexical -- it does\nnot resolve symlinks -- so a location reached through a symlinked\nworkspace root (e.g. macOS's `/var` -> `/private/var`, or a package\nmanager's symlinked dependency store) can read `true` even though it\nis genuinely inside the workspace. Also always `true` when no\nworkspace roots are configured, consistent with\n`bridge::uri_in_workspace_roots`'s fail-closed convention: without a\nconfigured root, nothing can be vouched for as inside the workspace.\nOmitted (defaults to `false`) when serialized.",
"type": "boolean"
},
"range": {
"$ref": "#/$defs/Range",
"description": "Range within the document."
},
"uri": {
"description": "URI of the document.",
"type": "string"
}
},
"required": [
"uri",
"range"
],
"type": "object"
},
"Position2D": {
"description": "Position in a document (1-based for MCP).",
"properties": {
"character": {
"description": "Character offset (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"line",
"character"
],
"type": "object"
},
"Range": {
"description": "Range in a document (1-based for MCP).",
"properties": {
"end": {
"$ref": "#/$defs/Position2D",
"description": "End position."
},
"start": {
"$ref": "#/$defs/Position2D",
"description": "Start position."
}
},
"required": [
"start",
"end"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locations": {
"description": "Locations of all references.",
"items": {
"$ref": "#/$defs/Location"
},
"type": "array"
},
"positions_degraded": {
"description": "Whether a position in this response could not be resolved for\nencoding conversion -- disk-read budget exhaustion, an unresolvable\nserver-supplied path, a line past EOF, or invalid UTF-8 content can\neach cause this -- meaning some `locations` entries' `character` values may be\nwrong for a non-UTF-16 LSP server (#497). Omitted (defaults to\n`false`) when serialized.",
"type": "boolean"
},
"truncated": {
"description": "Whether `locations` was capped below the LSP server's full response\n(see `MAX_NORMALIZED_LOCATIONS`, #474) -- if `true`, more references\nexist than are returned here. Omitted (defaults to `false`) when\nserialized.",
"type": "boolean"
}
},
"required": [
"locations"
],
"type": "object"
},
"annotations": {
"title": "Find References",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_server_logs",
"title": "Server Logs",
"description": "Recent server log messages. Filter by level (error, warning, info, debug) for debugging.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"default": 50,
"description": "Maximum number of log entries to return (default: 50).",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"min_level": {
"description": "Minimum log level to include: error, warning, info, debug.",
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"annotations": {
"title": "Server Logs",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_server_messages",
"title": "Server Messages",
"description": "Recent server messages (showMessage notifications). User-facing prompts and status updates.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"default": 20,
"description": "Maximum number of messages to return (default: 20).",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"annotations": {
"title": "Server Messages",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "get_signature_help",
"title": "Signature Help",
"description": "Signature help at position. Returns parameter info, active signature/parameter, and documentation while typing a call.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"annotations": {
"title": "Signature Help",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "go_to_implementation",
"title": "Go to Implementation",
"description": "Implementation locations of trait method or interface member at position. Capped at a fixed maximum for an extremely common trait/interface; `truncated: true` on the result means more implementations exist than are returned. `positions_degraded: true` means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"annotations": {
"title": "Go to Implementation",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "go_to_type_definition",
"title": "Go to Type Definition",
"description": "Type definition location of expression at position. Distinct from go-to-definition for variable bindings. Capped at a fixed maximum for a pathological case; `truncated: true` on the result means more locations exist than are returned. `positions_degraded: true` means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"annotations": {
"title": "Go to Type Definition",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "prepare_call_hierarchy",
"title": "Prepare Call Hierarchy",
"description": "Prepare call hierarchy at position. Returns callable items for incoming/outgoing call analysis. `positions_degraded: true` on the result means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"file_path",
"line",
"character"
],
"type": "object"
},
"annotations": {
"title": "Prepare Call Hierarchy",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "rename_symbol",
"title": "Rename Symbol",
"description": "Rename symbol across workspace. Returns text edits for all files where symbol is used. A non-empty `dropped` field means some edits were withheld (e.g. out-of-workspace files) -- the rename is then incomplete even though `changes` is non-empty. `positions_degraded: true` means some returned edit ranges' `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"character": {
"description": "Character/column number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"file_path": {
"description": "Absolute path to the file.",
"type": "string"
},
"line": {
"description": "Line number (1-based).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"new_name": {
"description": "New name for the symbol.",
"type": "string"
}
},
"required": [
"file_path",
"line",
"character",
"new_name"
],
"type": "object"
},
"annotations": {
"title": "Rename Symbol",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
},
{
"name": "workspace_symbol_search",
"title": "Workspace Symbol Search",
"description": "Search workspace symbols by name. Supports partial matching and fuzzy search. `limit` is capped at a fixed server-side maximum regardless of the value requested; `truncated: true` on the result means more matches exist than are returned. `positions_degraded: true` means some returned `character` offsets may be inexact (only possible for a non-UTF-16 server).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind_filter": {
"description": "Optional filter by symbol kind: a name (function, class, variable, etc.) or the numeric LSP SymbolKind value from a result's kind field. A name is validated against the known kinds; a numeric value is accepted as-is with no validation, so one that matches no symbol returns an empty result rather than an error.",
"type": [
"string",
"null"
]
},
"limit": {
"default": 100,
"description": "Maximum results to return (default: 100).",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Search query for symbol names (supports partial matching).",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"annotations": {
"title": "Workspace Symbol Search",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true
}
}
]