Solução para MCP Server no WSL
Ao tentar usar o método padrão de criação do mcp.json
na pasta .vscode
, encontrei o erro Connection state: Error spawn .... ENOENT
. Após alguma pesquisa, descobri que este é um problema conhecido no VS Code, que será resolvido em uma atualização futura.
Você pode acompanhar o problema aqui: https://github.com/microsoft/vscode/issues/251308
A Solução
Como a atualização pode demorar um pouco, estou usando uma solução temporária no meu settings.json
. Como uso o VS Code no WSL e não queria modificar o settings.json
do Windows, estou usando a seguinte configuração:
"mcp": {
"servers": {
"DevOpsUtilityCommands": {
"type": "stdio",
"command": "wsl.exe", // Invoca o subsistema WSL
"args": [
"/home/edipof/Documents/repo/mcp-lab/code/python-mcp/.venv/bin/python", // Comando a ser executado dentro do WSL
"/home/edipof/Documents/repo/mcp-lab/code/python-mcp/server-mcp.py" // Caminho dentro do WSL
]
}
}
}
Configuração Padrão (para quando o problema for resolvido)
Se não fosse por este problema, o mcp.json
poderia ser criado assim:
{
"servers": {
"DevOpsUtilityCommands": {
"type": "stdio",
"command": "${workspaceFolder}/code/python-mcp/.venv/bin/python",
"args": [
"${workspaceFolder}/code/python-mcp/server-mcp.py"
]
}
}
}
Considerações Importantes
Depois de aplicar esta solução, tudo funciona como esperado. O Copilot consegue detectar o servidor MCP, e eu consigo listar contêineres Docker, executar comandos do Kubernetes e até mesmo controlar o Jenkins perfeitamente.
Um aviso: Estes comandos são simples e fáceis de implementar, mas devem ser usados com extremo cuidado. Neste repositório, eles são para fins de teste. Em um ambiente com acesso a sistemas críticos, a melhor abordagem é criar funções altamente restritivas.
Planos Futuros
Este repositório é um trabalho em andamento. Adicionarei mais ferramentas ao longo do tempo, incluindo uma versão em TypeScript do servidor MCP.