lsp-mcp

jonrad/lsp-mcp

4.1

lsp-mcp is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.

If you are the rightful owner of lsp-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

LSP MCP is a Model Context Protocol server that provides LLMs/AI Agents with the capabilities of a language server protocol server, enabling language-aware context from the codebase.

Try lsp-mcp with chat:

Tools

Functions exposed to the LLM to take actions

lsp_info

Returns information about the the LSP tools available. This is useful for debugging which programming languages are supported.

file_contents_to_uri

Creates a URI given some file contents to be used in the LSP methods that require a URI. This is only required if the file is not on the filesystem. Otherwise you may pass the file path directly.

codeLens_resolve

method: codeLens/resolve A request to resolve a command for a given code lens.

completionItem_resolve

method: completionItem/resolve Request to resolve additional information for a given completion item.The request's parameter is of type {@link CompletionItem} the response is of type {@link CompletionItem} or a Thenable that resolves to such.

documentLink_resolve

method: documentLink/resolve Request to resolve additional information for a given document link. The request's parameter is of type {@link DocumentLink} the response is of type {@link DocumentLink} or a Thenable that resolves to such.

textDocument_codeAction

method: textDocument/codeAction A request to provide commands for the given text document and range.

textDocument_codeLens

method: textDocument/codeLens A request to provide code lens for the given text document.

textDocument_colorPresentation

method: textDocument/colorPresentation A request to list all presentation for a color. The request's parameter is of type {@link ColorPresentationParams} the response is of type {@link ColorInformation ColorInformation[]} or a Thenable that resolves to such.

textDocument_completion

method: textDocument/completion Request to request completion at a given text document position. The request's parameter is of type {@link TextDocumentPosition} the response is of type {@link CompletionItem CompletionItem[]} or {@link CompletionList} or a Thenable that resolves to such.

The request can delay the computation of the {@link CompletionItem.detail detail} and {@link CompletionItem.documentation documentation} properties to the completionItem/resolve request. However, properties that are needed for the initial sorting and filtering, like sortText, filterText, insertText, and textEdit, must not be changed during resolve.

textDocument_declaration

method: textDocument/declaration A request to resolve the type definition locations of a symbol at a given text document position. The request's parameter is of type {@link TextDocumentPositionParams} the response is of type {@link Declaration} or a typed array of {@link DeclarationLink} or a Thenable that resolves to such.

textDocument_definition

method: textDocument/definition A request to resolve the definition location of a symbol at a given text document position. The request's parameter is of type {@link TextDocumentPosition} the response is of either type {@link Definition} or a typed array of {@link DefinitionLink} or a Thenable that resolves to such.

textDocument_documentColor

method: textDocument/documentColor A request to list all color symbols found in a given text document. The request's parameter is of type {@link DocumentColorParams} the response is of type {@link ColorInformation ColorInformation[]} or a Thenable that resolves to such.

textDocument_documentHighlight

method: textDocument/documentHighlight Request to resolve a {@link DocumentHighlight} for a given text document position. The request's parameter is of type {@link TextDocumentPosition} the request response is an array of type {@link DocumentHighlight} or a Thenable that resolves to such.

textDocument_documentLink

method: textDocument/documentLink A request to provide document links

textDocument_documentSymbol

method: textDocument/documentSymbol A request to list all symbols found in a given text document. The request's parameter is of type {@link TextDocumentIdentifier} the response is of type {@link SymbolInformation SymbolInformation[]} or a Thenable that resolves to such.

textDocument_foldingRange

method: textDocument/foldingRange A request to provide folding ranges in a document. The request's parameter is of type {@link FoldingRangeParams}, the response is of type {@link FoldingRangeList} or a Thenable that resolves to such.

textDocument_formatting

method: textDocument/formatting A request to format a whole document.

textDocument_hover

method: textDocument/hover Request to request hover information at a given text document position. The request's parameter is of type {@link TextDocumentPosition} the response is of type {@link Hover} or a Thenable that resolves to such.

textDocument_implementation

method: textDocument/implementation A request to resolve the implementation locations of a symbol at a given text document position. The request's parameter is of type {@link TextDocumentPositionParams} the response is of type {@link Definition} or a Thenable that resolves to such.

textDocument_onTypeFormatting

method: textDocument/onTypeFormatting A request to format a document on type.

textDocument_prepareRename

method: textDocument/prepareRename A request to test and perform the setup necessary for a rename.

@since 3.16 - support for default behavior

textDocument_rangeFormatting

method: textDocument/rangeFormatting A request to format a range in a document.

textDocument_references

method: textDocument/references A request to resolve project-wide references for the symbol denoted by the given text document position. The request's parameter is of type {@link ReferenceParams} the response is of type {@link Location Location[]} or a Thenable that resolves to such.

textDocument_rename

method: textDocument/rename A request to rename a symbol.

textDocument_signatureHelp

method: textDocument/signatureHelp

textDocument_typeDefinition

method: textDocument/typeDefinition A request to resolve the type definition locations of a symbol at a given text document position. The request's parameter is of type {@link TextDocumentPositionParams} the response is of type {@link Definition} or a Thenable that resolves to such.

textDocument_willSaveWaitUntil

method: textDocument/willSaveWaitUntil A document will save request is sent from the client to the server before the document is actually saved. The request can return an array of TextEdits which will be applied to the text document before it is saved. Please note that clients might drop results if computing the text edits took too long or if a server constantly fails on this request. This is done to keep the save fast and reliable.

window_showMessageRequest

method: window/showMessageRequest The show message request is sent from the server to the client to show a message and a set of options actions to the user.

workspace_applyEdit

method: workspace/applyEdit A request sent from the server to the client to modified certain resources.

workspace_configuration

method: workspace/configuration The 'workspace/configuration' request is sent from the server to the client to fetch a certain configuration setting.

This pull model replaces the old push model were the client signaled configuration change via an event. If the server still needs to react to configuration changes (since the server caches the result of workspace/configuration requests) the server should register for an empty configuration change event and empty the cache if such an event is received.

workspace_executeCommand

method: workspace/executeCommand A request send from the client to the server to execute a command. The request might return a workspace edit which the client will apply to the workspace.

workspace_symbol

method: workspace/symbol A request to list project-wide symbols matching the query string given by the {@link WorkspaceSymbolParams}. The response is of type {@link SymbolInformation SymbolInformation[]} or a Thenable that resolves to such.

@since 3.17.0 - support for WorkspaceSymbol in the returned data. Clients need to advertise support for WorkspaceSymbols via the client capability workspace.symbol.resolveSupport.

workspace_workspaceFolders

method: workspace/workspaceFolders The workspace/workspaceFolders is sent from the server to the client to fetch the open workspace folders.

Prompts

Interactive templates invoked by user choice

No prompts

Resources

Contextual data attached and managed by the client

No resources