Головна / Статті

Підключення LM Studio до серверів MCP для файлів, GitHub та браузера.

Покрокові конфігурації mcp.json, які дозволяють локальній моделі використовувати файлову систему, інструменти GitHub OAuth та Playwright, з вибором моделей та способами усунення поширених помилок.

Видавець: REACTAPP.TOP7 хв читання1665 слів

Джерела: Connect LM Studio to MCP Servers: Filesystem, GitHub, and Browser Control (3 Working Configs)

Моделі, які працюють виключно на вашому власному комп’ютері, тепер можуть використовувати справжні інструменти, а не лише говорити про них. Раніше для підключення локальної моделі до сервісу на кшталт GitHub доводилося вручну створювати особистий токен доступу та сподіватися, що він потрапить у правильне поле JSON. Більшість цих труднощів зникли. LM Studio можна під’єднати до трьох серверів MCP — для роботи з файловою системою, GitHub та керування браузером, причому для кожного існує готова конфігурація.

Що потрібно підготувати

Перш ніж починати працювати з mcp.json, необхідно підготувати кілька речей.

LM Studio 0.4.10 або новіша версія. Саме в цій версії було додано підтримка OAuth для серверів MCP, і вона повністю покриває версію 0.3.17, коли LM Studio вперше став хостом MCP. Оновлення випускаються часто — останнім часом кілька версій щомісяця, тому найпростіше встановити поточну версію.

Модель, яка може виконувати запити до інструментів. Не кожна локальна модель робить це надійно. Для GPU з 20 ГБ відеопам’яті існує три хороші варіанти:

  • Qwen3-Coder-30B-A3B-Instruct має 30 мільярдів параметрів усього, але через свою архітектуру MoE лише близько 3,3 мільярда активних на токен. У форматі 4-біт вона потребує приблизно 17–20 ГБ та пропонує вікно контексту 262 К.
  • gpt-oss-20b займає менше місця — близько 14 ГБ — та працює значно швидше, що корисно, коли карту ділять з іншими програмами.
  • Qwen3.5-9B — це найлегший варіант, щільний 9B-модель, яка потребує близько 6 ГБ у форматі 4-біт, тож картка середнього класу має достатньо ресурсів. Він поділяє 262 К батьківського контексту з моделлю Coder, використовує інструменти нативно з пристойним балом BFCL-V4 та є моделлю, яка завантажується на скріншотах тут. Це правильний вибір для початку, якщо незрозуміло, чи зможе картка обробити два більші моделі.
  • Базові моделі без налаштувань instruct чи chat здебільшого взагалі не створюватимуть структурованих викликів інструментів. Якщо опис картки моделі нічого не каже про використання інструментів чи виклик функцій, краще обрати варіант із instruct.

    Node.js 18 або новіша версія. І сервер файлової системи, і сервер керування браузером запускаються через npx. Спочатку перевірте версію:

    node --version
    

    Будь-що, що починається з v18 або новішої версії, підходить. Якщо команди немає, це означає, що Node не встановлений, і npx також не буде існувати. Ще одна швидка перевірка стосується самого npx:

    npx --version
    

    Він постачається разом із Node, тому майже завжди проходить перевірку, якщо перша пройшла успішно, але це простий тест на коректність перед тим, як покладатися на нього для конфігурацій файлової системи та браузера.

    Жоден з цих факторів не підтверджує версію самого LM Studio. Це відображається у панелі заголовків у верхній частині додатку, і там має бути написано 0.4.10 або новіша версія.

    На скріншоті вище показано інсталяцію, у панелі заголовків якої вказано 0.4.23 — це була поточна версія на момент зйомки.

    Відкриття файлу конфігурації

    Відкрийте вкладку Integrations у правій панелі LM Studio, натисніть Install, а потім Edit mcp.json. Це редактор, де кожен сервер має свій запис.

    Конфігурація 1: файлова система

    Завдяки цьому елементу з’ясування того, що містить папка, більше не є складною процедурою копіювання та вставки, а стає простим запитом. Офіційний сервер файлової системи дозволяє моделі читати, записувати, шукати та перелічувати каталоги, але лише у межах шляхів, які ви надасте.

    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "/Users/you/projects"
          ]
        }
      }
    }
    

    Замініть /Users/you/projects на папку, яку модель повинна досліджувати. Можна додати більше шляхів. Усе, що знаходиться поза ними, залишається для неї прихованим, і саме в цьому полягає обмеження. Два елементи запису мають значення:

    • command та args означають виконання команди npx -y @modelcontextprotocol/server-filesystem разом із вказаною дозволеною папкою, яку керує підпроцес LM Studio.
    • Аргумент allowed-directory визначає повні межі того, до чого може доступити модель. Проєкт, який охоплює кілька папок, може перелічити їх по черзі.

    Після збереження LM Studio виявляє новий запис. Завантажте модель, яка підтримує виклики інструментів (Qwen 3.5 9B підійде), розпочніть нову розмову та увімкніть mcp/filesystem у бічній панелі.

    Хорошим першим тестом є запит на пошук файлу TODO.md у папці проєктів та узагальнення залишкової роботи. Модель самостійно виконує функції list_directory та read_file. Перед кожним виконанням цих функцій LM Studio показує діалогове вікно з підтвердженням, і доцільно його читати, адже локальна модель з правами запису на диск не повинна працювати без нагляду.

    Конфігурація 2: GitHub

    Ця конфігурація вимагає LM Studio 0.4.10 або новішої версії. Віддалений кінцевий пункт MCP GitHub не підтримує функцію Динамічної реєстрації клієнта, яка зазвичай використовується для самостійної реєстрації клієнта в системі OAuth. У результаті спочатку необхідно вручну створити додаток OAuth. У цьому аспекті LM Studio не є винятком — VS Code та CLI Copilot від GitHub також стикаються з такою обмеженням. Налаштування триває приблизно дві хвилини:

    1. Відкрийте github.com/settings/developers, виберіть OAuth Apps та натисніть New OAuth App.
    2. Введіть будь-яку назву та URL домашньої сторінки, адже вони тут не мають значення. Встановіть Redirect URI саме на http://127.0.0.1:33389/mcp-oauth-callback.
    3. Натисніть Register application, а потім на наступній сторінці — generate a new client secret. Збережіть Client ID та секрет у безпечному місці, оскільки секрет відображається лише один раз.

    Маючи обидві ці значення, конфігурація виглядає так:

    {
      "mcpServers": {
        "github": {
          "url": "https://api.githubcopilot.com/mcp/",
          "auth": {
            "CLIENT_ID": "<your Client ID>",
            "CLIENT_SECRET": "<your client secret>"
          }
        }
      }
    }
    

    Збережіть файл, увімкніть сервер, потім натисніть Authenticate, а після цього — Trust, and Open in Browser. Відкриється вікно браузера на сторінці OAuth GitHub. Як тільки буде надано доступ за допомогою кнопки Authorize <username> у нижній частині сторінки, токен зберігається так само, як і для будь-якого іншого сервера, що підтримує OAuth.

    Сторінка згоди GitHub пропонує лише можливості «затвердити» або «відхилити», без вибору обсягу дозволів. Більш точний контроль знаходиться всередині LM Studio. Відкрийте панель Integrations та знайдіть список інструментів, що належать до сервера mcp/github. Кожен з відображених інструментів перерахований окремо, серед них create_pull_request, delete_file, push_files та merge_pull_request; існує ще десятки інших, причому кожен з них має прапорець та перемикач «Запитати» або «Дозволити».

    Цей список вимагає уваги. Зніміть галочку з усього, чим модель не повинна користуватися; delete_file та push_files є очевидними кандидатами, якщо мета — лише читання та створення резюме.

    У останньому скріншоті цієї групи функція get_me була викликана один раз, а search_repositories — двічі для роботи з активним GitHub, із правильним фільтруванням за датами створення та оновлення. Інструменти лише для читання та власні репозиторії моделі залишилися з позначкою, тоді як руйнівні інструменти, такі як delete_file та push_files, — без позначки.

    Конфігурація 3: керування браузером

    Ця конфігурація надає локальній моделі можливість переглядати активну веб-сторінку замість того, щоб орієнтуватися на дані навчання. Сервер Playwright MCP запускає справжній браузер та надає структурований вміст сторінки замість скріншотів, що дозволяє навіть невеликій локальній моделі надійно навігувати та видобувати текст.

    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": [
            "@playwright/mcp@latest",
            "--headless"
          ]
        }
      }
    }
    

    Дві речі, які варто знати перед тим, як вставити цей код. За замовчуванням сервер відкриває видиме вікно браузера у режимі з відображенням інтерфейсу, а прапорець --headless у конфігурації вимикає цю функцію. На пристрої з дисплеєм видалення цього прапорця дозволяє в реальному часі спостерігати за кліками моделі, що стає корисним, якщо виникають проблеми з вибором елементів. Тут також потрібна версія Node 18 або новіша, як і у випадку з Config 1, і під час першого запуску може бути запропоновано завантажити бінарні файли браузера за допомогою npx playwright install, якщо вони відсутні.

    Простим тестом є запит до моделі відкрити головну сторінку Hacker News та узагальнити п’ять найважливіших новин. Спочатку виконується команда browser_navigate, потім читається дерево доступності сторінки для знаходження заголовків та посилань, без використання моделей розпізнавання зображень чи аналізу скріншотів під час виконання завдання.

    Автоматизація браузера, яка свідомо протидіє визначенню унікальних характеристик користувача, для досліджень чи роботи у стилі OSINT — це інша задача. Сервери на основі Camoufox, такі як Camofox-MCP, покривають цю потребу. Ця конфігурація є загальною базою.

    Усунення проблем

    Ось найімовірніші проблеми, від найпоширеніших до менш поширених.

    Модель ніколи не виконує виклики інструментів. Зазвичай причиною є завантаження базової чи моделі для доповнення замість моделі, налаштованої під виконання інструкцій чи чату. Прочитайте картку моделі; якщо там не згадується використання інструментів чи функцій, замініть її. Qwen 3.5 9B — хороший варіант для локального використання з метою виконання викликів інструментів.

    Сервер не з’являється у бічній панелі чату після змін у mcp.json. Спочатку оновіть список серверів з вкладки „Програма“, а якщо це не допоможе, повністю перезапустіть LM Studio. Файли, які було змінено безпосередньо на диску, а не в вбудованому редакторі, частіше потребують такого перезапуску.

    Пошкоджений JSON для виклику інструментів або неправильні аргументи. Знизьте температуру вибірки, адже виклик інструментів — одна з небагатьох задач, де творчі налаштування шкодять якості. Також переконайтеся, що довжина контексту становить принаймні 4096 токенів. Схеми інструментів швидко споживають контекст, особливо великий набір інструментів GitHub, тож обмежений час є поширеною прихованою причиною неповних викликів.

    Що у результаті отримуєте

    Результатом є три сервери, відсутність API-запитів та локальна модель, яка може читати файлову систему, працювати з реальним репозиторієм GitHub та керувати браузером у реальному часі, причому кожен запит перевіряється та схвалюється у діалогових вікнах підтвердження LM Studio, і жоден з них не працює без нагляду.

    Саме по собі це є корисним локальним агентом, який становить основу для повністю автономного робочого процесу. Наступним логічним кроком є об’єднання цих трьох серверів у один агентський цикл замість керування кожним окремо за допомогою окремих команд.

    Документація для посилання

    Документація LM Studio щодо використання серверів MCP та інтеграції MCP з OAuth визначає формати command, args, url та auth, які використовуються по всій документації. Репозиторій сервера MCP на GitHub та документація з налаштувань від GitHub охоплюють Config 2, офіційний файловий сервер modelcontextprotocol — Config 1, а репозиторій microsoft/playwright-mcp описує поведінку за замовчуванням та прапорці для Config 3.

    Пов’язана література

  • [Практичні нотатки: сервери MCP: від чату з ШІ до дій промислового рівня стаття — детальний огляд Практичних нотаток: сервери MCP: від чату з ШІ до дій промислового рівня [Стаття: контракти, перевірки та слоти для коду для команд, які використовують цю схему.]