# Spec reference: docs/adr/ADR-040-lsp-resource-types.md lines 69-88
schema_version: "1.0"
name: lsp-server
description: "LSP server definition and running process. Provides semantic services for one or more languages."
resource_kind: physical
sandbox_strategy: none
user_addable: true
built_in: true
cli_args:
  - name: server-name
    type: string
    required: true
    description: Unique server name
  - name: command
    type: string
    required: true
    description: Path to server executable or command
  - name: language-ids
    type: string
    required: true
    description: "Comma-separated language identifiers (e.g. python,typescript)"
  - name: transport
    type: string
    required: false
    description: "Transport protocol: stdio | tcp | pipe (default: stdio)"
  - name: args
    type: string
    required: false
    description: Additional command-line arguments
  - name: port
    type: string
    required: false
    description: TCP port (required when transport=tcp)
  - name: initialization-options
    type: string
    required: false
    description: JSON initialization options for the server
parent_types: ["container-instance", "container-exec-env"]
child_types: ["lsp-workspace"]
handler: "cleveragents.resource.handlers.lsp:LSPServerHandler"
capabilities:
  read: true
  write: false
  sandbox: false
  checkpoint: false
