github / github/copilot-cli

Support per-agent LSP server configuration in agent frontmatter

Aberta
#2,728 0 comentários 0 reações 0 responsáveis Ver no GitHub
area:agents area:configuration
Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
14h 16min
PRs com merge (30d)
6

Descrição

### Feature request

**Is your feature request related to a problem?**

I am building a multi-agent system where each agent has a different specialization. Agents already support per-agent MCP server configs via `mcp-servers` in the YAML frontmatter, which is excellent — each agent only sees the external tools it needs.

However, LSP servers are configured globally (user-level `~/.copilot/lsp-config.json` or repo-level `.github/lsp.json`). There is no way to scope LSP servers to a specific agent.

This matters because different agents work with different languages and file types:

- A **morning-command-center** agent works primarily with Markdown and YAML (agent definitions, skill files, documentation). It needs `yaml-language-server` but has no use for `typescript-language-server`.
- A **deep-work-planner** agent investigates codebases and would benefit from TypeScript, Python, and SQL LSP servers for code navigation.
- A **communication-triage** agent classifies messages and drafts responses — it has no need for any LSP server at all.

With global-only LSP config, every agent loads every configured LSP server regardless of whether it will use them. This wastes resources and increases startup time, especially when you have 7+ agents and 9+ LSP servers configured globally.

**Describe the solution you would like**

Allow agents to declare LSP servers in their `.agent.md` frontmatter, similar to `mcp-servers`:

```yaml
---
name: deep-work-planner
lsp-servers:
typescript:
command: npx
args: ["--yes", "typescript-language-server", "--stdio"]
fileExtensions:
.ts: typescript
.tsx: typescript
python-typecheck:
command: npx
args: ["--yes", "pyright-langserver", "--stdio"]
fileExtensions:
.py: python
---
```

When an agent declares `lsp-servers`, only those LSP servers would be started for that agent session. If no `lsp-servers` block is present, fall back to the existing global/repo config.

**Describe alternatives you have considered**

- Maintaining separate repo-level `.github/lsp.json` files per project — but this does not solve per-agent isolation within the same repo.
- Not configuring LSP servers globally and relying only on agents that need them — but this breaks the default CLI experience outside of agents.

**Additional context**

This would bring LSP config parity with MCP config, which already supports per-agent scoping. The pattern is already established in the agent frontmatter format — this would extend it to LSP.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece comparando o tratamento existente de mcp-servers no frontmatter de .agent.md com os caminhos de configuração global ~/.copilot/lsp-config.json e no nível do repositório .github/lsp.json. Defina como um bloco lsp-servers é analisado e delimitado a uma sessão do agente, preservando o fallback global/do repositório existente quando ele estiver ausente. O trabalho estará concluído quando os servidores LSP por agente estiverem isolados sem alterar o comportamento padrão da CLI.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
yaml
Domínio
cli, tooling
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.