python-lsp-server
Python Language Server for the Language Server Protocol
What it is and what it does
Python LSP Server is a Language Server Protocol implementation that bridges Python development tools and editors. It exposes a `pylsp` command-line server that listens for LSP requests from editors and IDEs, providing code intelligence features like completion, definition lookup, hover information, linting, and formatting. The server requires Jedi as its core dependency for semantic analysis and can optionally integrate with tools like flake8, pylint, black, yapf, and others when installed.
The package is designed for editor integration rather than direct use by end developers. It runs as a background process that your editor connects to, translating between the editor's requests and Python analysis tools. Configuration flows from the editor client, workspace settings, and user home directory in a layered override pattern. It supports both stdio and WebSocket communication modes, making it flexible for different editor architectures and remote development scenarios.
Use it for:
- Enable code completion and symbol navigation in editors that support LSP but lack native Python support
- Provide unified linting and formatting across multiple Python tools (flake8, pylint, black) through a single server interface
- Support remote Python development by running the server on a remote machine and connecting via WebSocket
- Integrate Python code analysis into custom development tools or build systems that speak the LSP protocol
- Detect and report code style issues and complexity metrics in real-time as developers write code
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements the Language Server Protocol for Python, providing code completion, linting, formatting, and navigation features to editors and IDEs through a standardized server interface.
Yes. This is a mature, actively maintained implementation of a standard protocol with low install friction and no security vulnerabilities. Install it if you need LSP-based Python tooling integration in an editor or IDE, or if you are building a tool that needs to speak LSP for Python analysis. The permissive MIT license and broad optional provider support make it suitable for both open-source and commercial use.
Install
python-lsp-server on PyPI
pip
pip install python-lsp-serveruv
uv add python-lsp-serverpoetry
poetry add python-lsp-serverInstalling python-lsp-server
Before you install
Low friction install via wheel distribution. Actively maintained with recent releases; 2592 repository stars and active development signal. Requires Python 3.9+. Seven runtime dependencies are all well-established packages; optional providers (flake8, pylint, yapf, black, etc.) can be added via extras syntax.
License in practice
MIT license permits commercial and private use with minimal restrictions. No copyleft obligations or proprietary constraints.
Quickstart
pip install python-lsp-server
pylsp --help
# In your editor/IDE, configure LSP client to connect to pylsp server
# Basic usage: pylsp listens on stdio or network socket for LSP requests
Requires Python 3.9 or later. Jedi is a required runtime dependency for core completion and navigation features.
Verify before relying
- Performance characteristics when handling large Python projects or workspaces
- Compatibility matrix with specific editor/IDE LSP client implementations
- Memory footprint and resource usage under typical development workloads
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — docstring-to-markdown, importlib_metadata, jedi, pluggy, python-lsp-jsonrpc, ujson, black |
| Maintenance | actively maintained — 18 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,532,376/month — #3,804 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python_lsp_server-1.15.0-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
pylsp-mypyIntegrates mypy static type checking into the…
permissive · top 15,000 on PyPI
python-language-serverImplements the Language Server Protocol for…
unclear · top 15,000 on PyPI
python-lsp-ruffIntegrates ruff's linting, formatting, and…
permissive · top 15,000 on PyPI
jupyterlab-lspAdds Language Server Protocol (LSP) integration…
permissive · top 15,000 on PyPI
ruff-lspProvides a Language Server Protocol bridge to…
permissive · top 15,000 on PyPI
python-lsp-jsonrpcImplements a JSON RPC 2.0 server for Python…
permissive · top 5,000 on PyPI
lsprotocolProvides Python object types and converters for…
permissive · top 5,000 on PyPI
zubanZuban is a Rust-based Python language server…
agpl · top 15,000 on PyPI
wemake-python-styleguideA flake8 plugin that enforces strict,…
permissive · top 15,000 on PyPI
dlintDlint is a flake8 plugin that adds…
permissive · top 15,000 on PyPI