TL;DR
Get business pricing on monitors, keyboards and dev gear
- Business-only prices and quantity discounts
- Tax-exempt purchasing
- Multiple users, one account, clear invoices
Microsoft’s Pylance-release documentation defines the Type Server Protocol (TSP), a JSON-RPC interface for clients to request Python type-analysis data from a type server. It specifies version compatibility, workspace snapshots and an optional negotiated IPC mode for concurrent read-only requests; the documentation does not announce a new product launch or adoption.
Microsoft’s Pylance-release repository documents the Type Server Protocol (TSP), a JSON-RPC interface that lets a client request Python analysis data from a type server. The specification sets out how clients check protocol compatibility, obtain workspace snapshots and request type information, and describes an optional IPC feature for handling read-only work across extra connections.
TSP uses the typeServer/ method prefix and supports requests for the server’s protocol version, workspace snapshots, Python search paths, import resolution, and computed, declared or expected types. It draws on familiar Language Server Protocol (LSP) data shapes, including positions and ranges, and represents URIs as strings. The repository identifies three protocol artifacts as authoritative: TypeScript interfaces and request types in typeServerProtocol.ts, a machine-readable model in tsp.json, and its JSON schema in tsp.schema.json.
The documented startup sequence begins with a client starting or connecting to a type server and initializing shared workspace state, often through LSP initialization and document synchronization. The client then calls typeServer/getSupportedProtocolVersion, checks whether the returned semantic version is compatible, and requests an initial snapshot with typeServer/getSnapshot. Type queries and related requests use the snapshot where required; the server can send typeServer/snapshotChanged when earlier type results are no longer valid.
The version history lists releases from 0.1.0 through 0.4.1. The document warns that while TSP remains in the 0.x series, a minor-version change may be breaking, whereas patch changes remain backward compatible within the same minor line. The listed updates include changes to request types, type shapes and stub-based type payloads, as well as multi-connection negotiation and a connection-control request.
How TSP Separates Analysis Requests
The document gives implementers a shared contract for requesting type-analysis information without making every client depend on private server interfaces. That matters to tools that need Python import resolution or type results: a defined request format and compatibility check can help clients and servers determine whether they can communicate as expected.
The optional multi-connection feature addresses a specific performance constraint. A client can use additional local channels for concurrent read-only requests, such as high-volume type queries or background work, while the main connection remains responsible for workspace state and state-changing messages. The specification says servers must still work in single-connection mode, so this performance option is not a prerequisite for protocol correctness.
Products Worth Considering

Logitech MX Mechanical Wireless Illuminated Keyboard, Tactile Quiet, Graphite

Logitech MX Keys S Wireless Keyboard, Graphite

Logitech MX Master 4 for Mac, Ergonomic Bluetooth Mouse with Haptic Feedback, Ultra-Fast Scrolling, USB-C Charging, for MacOS, iPadOS, Windo
As an affiliate, we earn on qualifying purchases.
LSP-Based Startup and Versioning
TSP is designed to operate alongside established LSP initialization and document synchronization, not to replace the main workspace connection. The type server needs sufficient workspace and document state to answer the requests a client sends. The main connection owns that state, initialization, notifications that change state, and control of extra connections.
Extra connections are opened only after a capability exchange during initialization. The client and server each advertise supported transport types in an experimental LSP capability. The feature is enabled only if both advertise the capability and share at least one transport; the document lists IPC as the currently supported built-in transport for these extra channels. If negotiation fails or either party omits the capability, the session remains on one connection and the client must not issue the connection-control request.
Adoption and Support Remain Unspecified
The supplied documentation describes a protocol design, but does not establish which clients or type servers currently implement TSP, how widely it is used, or whether it has been adopted beyond the repository’s intended tools. It gives no performance measurements showing what gains multi-connection mode provides in practice.
The source excerpt also ends during its explanation of closing an extra connection. It therefore does not provide the complete close procedure or all request and response definitions. Although it names protocol artifacts as the authoritative definitions, this report is based on the supplied documentation summary rather than a review of each artifact. The document says minor changes in the 0.x series may break compatibility, so the protocol version alone does not guarantee compatibility across every release.
Implementers Must Check the Protocol Files
Clients and server authors using TSP will need to consult the repository’s TypeScript definitions, JSON model and schema for full message shapes, then compare supported semantic versions during startup. Implementations considering extra channels must first complete the capability handshake, confirm a shared transport and use the main connection to request that an IPC channel be opened.
The supplied material does not identify a release schedule, adoption milestone or future protocol version. Whether TSP becomes a common interface across Python analysis tools, and how its definitions change beyond version 0.4.1, remains to be seen.
Key Questions
What is the Type Server Protocol?
TSP is a JSON-RPC protocol for clients to request Python type-analysis information from a type server that maintains analysis state for a workspace.
What information can a client request?
The documented request categories include protocol version, snapshots, Python search paths, import resolution, and computed, declared or expected types.
Does TSP require multiple connections?
No. Multi-connection mode is an optional performance feature. The specification requires servers to work correctly over a single connection.
How are extra connections negotiated?
During LSP initialization, client and server advertise supported transports. The client can open an extra channel only when both advertise the capability and have a transport in common; the document currently lists IPC for extra connections.
Is this a new product launch?
The supplied source is protocol documentation in Microsoft’s Pylance-release repository. It does not announce a product launch or report how broadly TSP has been adopted.
Source: github.com
