Pular para o conteúdo principal

Conectar o VS Code ao servidor MCP do Casdoor

Este guia explica como conectar o GitHub Copilot no VS Code ao servidor MCP do Casdoor, ou a um servidor MCP atrás do gateway MCP do Casdoor, para que o Copilot possa chamar suas ferramentas no modo agente.


Resultados da aprendizagem​

  • Permita que o VS Code se identifique junto ao Casdoor sem uma aplicação criada manualmente.
  • Adicione o servidor MCP ao mcp.json.
  • Faça login, verifique as ferramentas e faça logout.

O que você precisa​

  • Uma instância do Casdoor em execução. Use HTTPS em produção.
  • VS Code com GitHub Copilot
  • Acesso de administrador global ao console de administração do Casdoor

Sobre a conexão​

O VS Code conecta-se a servidores MCP remotos via HTTP e executa sozinho o fluxo de código de autorização OAuth 2.0 com PKCE. Quando um servidor MCP responde com HTTP 401, o VS Code lê os metadados de recurso protegido do servidor, encontra o Casdoor como seu servidor de autorização e obtém um ID de cliente da primeira forma que funcionar:

  1. Um ID de cliente em mcp.json: uma aplicação que você cria no Casdoor. Veja Usar uma aplicação que você criou.
  2. Documento de metadados do ID do cliente (CIMD): o VS Code usa a URL de um documento que ele publica, https://vscode.dev/oauth/client-metadata.json, como seu ID de cliente. O Casdoor lê o documento e não requer registro.
  3. Registro dinâmico de clientes (DCR): o VS Code registra-se através do endpoint de registro do Casdoor.

O documento do VS Code lista duas URIs de redirecionamento: http://127.0.0.1:33418/ para o aplicativo desktop e https://vscode.dev/redirect para o VS Code na Web. Veja MCP developer guide na documentação do VS Code.

Aceitar o VS Code no Casdoor​

CIMD e DCR são ambos governados por Enable dynamic client registration de uma organização.

  1. No console de administração do Casdoor, vá para User Management > Organizations e abra a organização cujos usuários fazem login no VS Code: built-in para o servidor MCP do Casdoor, ou a organização do servidor para um servidor atrás do gateway MCP.
  2. Ative Enable dynamic client registration.
  3. Salve a organização.

No primeiro login, o Casdoor cria uma aplicação com o ID de cliente https://vscode.dev/oauth/client-metadata.json, um nome que começa com cimd_ e a tag cimd. Todas as organizações compartilham esta única aplicação. Veja Accept clients identified by a metadata document URL.

Adicionar o servidor MCP ao VS Code​

  1. Abra a Command Palette e execute MCP: Open User Configuration para todos os workspaces, ou crie .vscode/mcp.json em um workspace.

  2. Adicione o servidor. Substitua your-casdoor.com pelo domínio da sua instância do Casdoor.

    Para o servidor MCP do Casdoor:

    {
    "servers": {
    "casdoor": {
    "type": "http",
    "url": "https://your-casdoor.com/api/mcp"
    }
    }
    }

    Para um servidor atrás do gateway MCP, use a URL do gateway https://your-casdoor.com/api/server/<organization>/<server-name>:

    {
    "servers": {
    "acme-tools": {
    "type": "http",
    "url": "https://your-casdoor.com/api/server/acme/tools"
    }
    }
    }
  3. Salve o arquivo. O VS Code mostra um CodeLens Start acima do servidor. Selecione-o.

Fazer login​

  1. O VS Code pergunta se o servidor pode fazer login com o Casdoor. Selecione Allow.
  2. Seu navegador abre a página de login do Casdoor. Faça login.
  3. Se o Casdoor mostrar uma tela de consentimento, clique em Allow.
  4. O navegador retorna você ao VS Code e o servidor inicia.

Verificar o resultado​

  1. Abra a Chat view e mude para o modo Agent.
  2. Selecione o botão Tools e verifique se as ferramentas do servidor estão listadas.
  3. Peça ao Copilot para usá-las, por exemplo "List all applications in Casdoor".

Para verificar o cliente no lado do Casdoor, abra Identity > Applications e encontre a aplicação cimd_ cujo ID de cliente é https://vscode.dev/oauth/client-metadata.json, ou abra Tokens e encontre o token do seu usuário.

Usar uma aplicação que você criou​

Se você não quiser ativar o registro dinâmico de clientes, crie o cliente você mesmo:

  1. No console de administração do Casdoor, vá para Identity > Applications e adicione uma aplicação na organização dos seus usuários, por exemplo vscode-mcp.

  2. Adicione http://127.0.0.1:33418/ e https://vscode.dev/redirect a Redirect URLs.

  3. Salve a aplicação e copie seu Client ID.

  4. Coloque o ID de cliente em mcp.json:

    {
    "servers": {
    "casdoor": {
    "type": "http",
    "url": "https://your-casdoor.com/api/mcp",
    "oauth": {
    "clientId": "<client-id>"
    }
    }
    }
    }
  5. Se a aplicação precisar de um segredo de cliente, selecione o CodeLens Set Client Secret acima do servidor e cole o Client Secret. O VS Code mantém isso em seu armazenamento de segredos, não em mcp.json.

Logout​

  • Para fazer logout, abra o menu Accounts na parte inferior da Activity Bar, selecione a conta do Casdoor e selecione Sign Out.
  • Para fazer o VS Code esquecer um cliente que registrou através do DCR, execute Authentication: Remove Dynamic Authentication Providers.
  • To cut the client off on the Casdoor side, delete its tokens on the Tokens page.

Solução de problemas​

O Casdoor reporta uma incompatibilidade de redirect URL​

VS Code listens on port 33418 for the callback. If another process uses the port, the redirect URI no longer matches. Free the port and try again.

Casdoor rejects the client ID metadata document​

The error "client ID metadata documents are not accepted" means that Enable dynamic client registration is off for the organization. See Accept VS Code in Casdoor. Casdoor must also reach https://vscode.dev over the Internet.

VS Code asks for a client ID​

VS Code asks when it can use neither CIMD nor DCR. Turn on Enable dynamic client registration, or enter the client ID of an application that you created.

The gateway answers 401 after sign-in​

See Troubleshooting in the MCP gateway guide.

Veja também​