Перейти до основного вмісту

Підключення VS Code до сервера Casdoor MCP

У цьому посібнику пояснюється, як підключити GitHub Copilot у VS Code до MCP-сервера Casdoor або до MCP-сервера за шлюзом Casdoor MCP, щоб Copilot міг викликати його інструменти в агентному режимі.


Результати навчання​

  • Дозвольте VS Code ідентифікувати себе перед Casdoor без створеного вручну додатка.
  • Додайте MCP-сервер у mcp.json.
  • Увійдіть, перевірте інструменти та вийдіть із системи.

Що потрібно​

  • Працюючий екземпляр Casdoor. Використовуйте HTTPS у продакшн-середовищі.
  • VS Code із GitHub Copilot
  • Глобальний доступ адміністратора до адміністративної консолі Casdoor

Про з'єднання​

VS Code підключається до віддалених MCP-серверів через HTTP і самостійно виконує потік авторизації за кодом OAuth 2.0 з PKCE. Коли MCP-сервер відповідає помилкою HTTP 401, VS Code читає метадані захищеного ресурсу сервера, знаходить Casdoor як свій сервер авторизації та отримує ідентифікатор клієнта першим доступним способом:

  1. Ідентифікатор клієнта в mcp.json: додаток, який ви створюєте в Casdoor. Див. Використання створеного вами додатка.
  2. Документ метаданих ідентифікатора клієнта (CIMD): VS Code використовує URL документа, який він публікує, https://vscode.dev/oauth/client-metadata.json, як свій ідентифікатор клієнта. Casdoor читає цей документ, і реєстрація не потрібна.
  3. Динамічна реєстрація клієнтів (DCR): VS Code реєструє себе через кінцеву точку реєстрації Casdoor.

У документі VS Code зазначено два URI переспрямування: http://127.0.0.1:33418/ для настільного додатка та https://vscode.dev/redirect для VS Code у браузері. Див. Посібник розробника MCP у документації VS Code.

Приймання VS Code в Casdoor​

CIMD і DCR регулюються налаштуванням Enable dynamic client registration організації.

  1. У адміністративній консолі Casdoor перейдіть до User Management > Organizations і відкрийте організацію, користувачі якої входять у VS Code: built-in для сервера Casdoor MCP або організацію сервера для сервера за шлюзом MCP.
  2. Увімкніть Enable dynamic client registration.
  3. Збережіть організацію.

При першому вході Casdoor створює додаток з ідентифікатором клієнта https://vscode.dev/oauth/client-metadata.json, назвою, що починається з cimd_, і тегом cimd. Усі організації спільно використовують цей один додаток. Див. Приймання клієнтів, ідентифікованих за URL документа метаданих.

Додавання MCP-сервера до VS Code​

  1. Відкрийте Command Palette і виконайте команду MCP: Open User Configuration для всіх робочих просторів або створіть файл .vscode/mcp.json у робочому просторі.

  2. Додайте сервер. Замініть your-casdoor.com на домен вашого екземпляра Casdoor.

    Для MCP-сервера Casdoor:

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

    Для сервера за шлюзом MCP використовуйте URL шлюзу https://your-casdoor.com/api/server/<organization>/<server-name>:

    {
    "servers": {
    "acme-tools": {
    "type": "http",
    "url": "https://your-casdoor.com/api/server/acme/tools"
    }
    }
    }
  3. Збережіть файл. VS Code показує CodeLens Start над сервером. Виберіть його.

Вхід у систему​

  1. VS Code запитує, чи може сервер входити через Casdoor. Виберіть Allow.
  2. У вашому браузері відкриється сторінка входу Casdoor. Увійдіть.
  3. Якщо Casdoor показує екран надання згоди, натисніть Allow.
  4. Браузер поверне вас до VS Code, і сервер запуститься.

Перевірте результат​

  1. Відкрийте подання Chat і перемикайтеся в режим Agent.
  2. Натисніть кнопку Tools і переконайтеся, що інструменти сервера перелічені.
  3. Попросіть Copilot використати їх, наприклад «Список усіх додатків у Casdoor».

Щоб перевірити клієнт на стороні Casdoor, відкрийте Identity > Applications і знайдіть додаток cimd_, ідентифікатором клієнта якого є https://vscode.dev/oauth/client-metadata.json, або відкрийте Tokens і знайдіть токен вашого користувача.

Використання створеного вами додатка​

Якщо ви не хочете вмикати динамічну реєстрацію клієнтів, створіть клієнт самостійно:

  1. У адміністративній консолі Casdoor перейдіть до Identity > Applications і додайте додаток в організацію ваших користувачів, наприклад vscode-mcp.

  2. Додайте http://127.0.0.1:33418/ і https://vscode.dev/redirect до Redirect URLs.

  3. Збережіть додаток і скопіюйте його Client ID.

  4. Вставте ідентифікатор клієнта у mcp.json:

    {
    "servers": {
    "casdoor": {
    "type": "http",
    "url": "https://your-casdoor.com/api/mcp",
    "oauth": {
    "clientId": "<client-id>"
    }
    }
    }
    }
  5. Якщо додатку потрібен секретний ключ клієнта, виберіть CodeLens Set Client Secret над сервером і вставте Client Secret. VS Code зберігає його у своєму сховищі секретів, а не в mcp.json.

Вихід із системи​

  • Щоб вийти, відкрийте меню Accounts внизу Activity Bar, виберіть обліковий запис Casdoor і натисніть Sign Out.
  • Щоб змусити VS Code забути клієнт, зареєстрований через DCR, виконайте команду Authentication: Remove Dynamic Authentication Providers.
  • Щоб відключити клієнт на стороні Casdoor, видаліть його токени на сторінці Tokens.

Усунення несправностей​

Casdoor повідомляє про невідповідність URL-адреси перенаправлення​

VS Code очікує зворотний виклик на порту 33418. Якщо інший процес використовує цей порт, URI переспрямування більше не збігатиметься. Звільніть порт і спробуйте ще раз.

Casdoor відхиляє документ метаданих ідентифікатора клієнта​

Помилка "client ID metadata documents are not accepted" означає, що для організації вимкнено опцію Enable dynamic client registration. Див. Accept VS Code in Casdoor. Casdoor також повинен мати доступ до https://vscode.dev через Інтернет.

VS Code запитує ідентифікатор клієнта​

VS Code запитує його, коли не може використовувати ні CIMD, ні DCR. Увімкніть Enable dynamic client registration або введіть ідентифікатор клієнта створеного вами застосунку.

Шлюз відповідає кодом 401 після входу​

Див. Troubleshooting у посібнику шлюзу MCP.

Див. також​