Strona główna / Artykuły

Połączenie LM Studio z serwerami MCP dla plików, GitHub oraz przeglądarki

Krok po kroku konfiguracje mcp.json, które umożliwiają lokalnemu modelowi korzystanie z systemu plików, narzędzi GitHub OAuth oraz Playwright, wraz z wyborem modeli i rozwiązaniami dla częstych błędów.

Wydawca: REACTAPP.TOP7 min czytania1665 słów

Źródła: Connect LM Studio to MCP Servers: Filesystem, GitHub, and Browser Control (3 Working Configs)

Modele, które działają wyłącznie na twoim własnym komputerze, mogą teraz korzystać z rzeczywistych narzędzi, a nie tylko o nich mówić. Połączenie lokalnego modelu z czymś takim jak GitHub wymagało wcześniej ręcznego utworzenia osobistego tokena dostępu i nadziei, że trafi on do właściwego pola JSON. Większość tych trudności zniknęła. LM Studio może być połączone z trzema serwerami MCP – do zarządzania systemem plików, GitHub i przeglądarką – przy czym dla każdego z nich dostępna jest gotowa konfiguracja.

Czego potrzebujesz

Zanim zaczniesz edytować plik mcp.json, kilka rzeczy musi być już przygotowanych.

LM Studio 0.4.10 lub nowsza wersja. To właśnie ta wersja dodała obsługę OAuth dla serwerów MCP i kompatybilna jest również z wersją 0.3.17, w której LM Studio po raz pierwszy stało się hostem MCP. Aktualizacje pojawiają się często – ostatnio kilka wersji punktowych miesięcznie – więc najprościej jest pobrać najnowszą wersję.

Model, który może wysyłać żądania do narzędzi. Nie każdy lokalny model radzi sobie z tym niezawodnie. Dla karty GPU z 20 GB pamięci wideo istnieją trzy solidne opcje:

  • Qwen3-Coder-30B-A3B-Instruct ma łącznie 30 miliardów parametrów, ale ze względu na swoją architekturę typu MoE tylko około 3,3 miliarda z nich jest aktywnych na token. W formacie 4-bit potrzebuje około 17–20 GB pamięci i oferuje okno kontekstowe o wielkości 262 tysięcy tokenów.
  • gpt-oss-20b zajmuje mniej pamięci – około 14 GB – i jest znacznie szybszy, co jest przydatne, gdy karta jest dzielona z innymi aplikacjami.
  • Qwen3.5-9B jest najlżejszy – to gęsty model 9B wymagający około 6 GB pamięci w formacie 4-bitowym, więc karta średniej klasy ma wystarczająco dużo zasobów. Dzieli się 262K natywnego kontekstu modelu Coder, uruchamia narzędzia w sposób natywny z przyzwoitym wynikiem BFCL-V4 i to właśnie ten model jest pokazany na tutaj dostępnych zrzutach ekranu. To dobry punkt wyjścia, jeśli nie jest jasne, czy karta poradzi sobie z dwoma większymi modelami.

Modele podstawowe bez dostosowań typu instruct lub chat prawie w ogóle nie będą generować strukturyzowanych wywołań narzędzi. Jeśli opis karty modelu nic nie mówi o używaniu narzędzi lub wywoływaniu funkcji, lepiej wybrać wariant z funkcją instruct.

Node.js 18 lub nowsza wersja. Zarówno serwer systemu plików, jak i serwer sterujący przeglądarką uruchamiają się za pomocą npx. Najpierw sprawdź wersję:

node --version

Każda wersja zaczynająca się od v18 lub nowsza będzie działać. Jeśli polecenie nie zostanie znalezione, oznacza to, że Node nie jest zainstalowany, a npx również nie będzie dostępny. Kolejna szybka weryfikacja dotyczy samego npx:

npx --version

Dostarczane jest wraz z Node, więc prawie zawsze przechodzi test, jeśli pierwszy przeszedł pomyślnie, ale jest to tanie sprawdzenie przed poleganiem na nim dla konfiguracji systemu plików i przeglądarki.

Żadne z tych elementów nie potwierdza wersji dostarczonej przez sam LM Studio. Informację tę pokazuje pasek tytułowy u góry aplikacji – powinien wyświetlać 0.4.10 lub nowszą wersję.

Zdjęcie ekranu powyżej pokazuje instalację, w której pasek tytułowy wskazywał 0.4.23, co odpowiadało ówczesnej najnowszej wersji.

Otwieranie pliku konfiguracyjnego

Otwórz zakładkę Integrations w prawej kolumnie LM Studio, kliknij Install, a następnie Edit mcp.json. To właśnie edytor, w którym znajduje się wpis dla każdego serwera.

Konfiguracja 1: system plików

Dzięki temu wpisowi sprawdzanie zawartości folderu przestaje być męczącym zadaniem polegającym na kopiowaniu i wklejaniu, a staje się prostym zapytaniem. Oficjalny serwer systemu plików umożliwia modelowi czytanie, zapisywanie, wyszukiwanie i wyświetlanie katalogów, ale tylko w ścieżkach, które mu przyznasz.

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

Zamień /Users/you/projects na folder, który model powinien przeszukiwać. Można dodać więcej ścieżek. Wszystko poza nimi jest dla niego ukryte, i to właśnie stanowi istotę tej ograniczenia. W wpisie istotne są dwie części:

  • command i args oznaczają uruchomienie npx -y @modelcontextprotocol/server-filesystem wraz z określoną ścieżką katalogu, która jest zarządzana jako podproces przez LM Studio.
  • Argument allowed-directory określa pełne granice tego, do czego model może dotrzeć. Projekt obejmujący kilka folderów można wymienić jeden po drugim.

Po zapisaniu LM Studio wykryje nowy wpis. Załaduj model, który obsługuje wywoływanie narzędzi (Qwen 3.5 9B nadaje się), rozpocznij nową rozmowę i włącz mcp/filesystem w pasku bocznym.

Dobrym pierwszym testem jest prośba o znalezienie pliku TODO.md w folderze projektów oraz podsumowanie pozostałych zadań. Model samodzielnie wykonywa funkcje list_directory i read_file. Przed każdym wykonaniem tych funkcji LM Studio pokazuje okno potwierdzenia, więc warto je czytać, ponieważ lokalny model mający dostęp do zapisu na dysku nie powinien działać bez nadzoru.

Konfiguracja 2: GitHub

Ta konfiguracja wymaga wersji LM Studio 0.4.10 lub nowszej. Koncepcja zdalnego punktu końcowego MCP w GitHub nie obejmuje funkcji Dynamic Client Registration, która normalnie umożliwiałaby klientowi samodzielne zarejestrowanie się w systemie OAuth. W rezultacie aplikację OAuth trzeba najpierw stworzyć ręcznie. LM Studio nie różni się w tym względzie od VS Code czy Copilot CLI z GitHub – wszystkie napotykają tę samą ograniczenie. Proces konfiguracji trwa około dwóch minut:

  1. Otwórz stronę github.com/settings/developers, wybierz OAuth Apps i kliknij New OAuth App.
  2. Wpisz dowolną nazwę oraz adres strony głównej, ponieważ nie mają one tutaj znaczenia. Ustaw Redirect URI dokładnie na http://127.0.0.1:33389/mcp-oauth-callback.
  3. Na następnej stronie kliknij Register application, a potem generate a new client secret. Przechowaj Client ID oraz sekret w bezpiecznym miejscu, ponieważ sekret jest wyświetlany tylko raz.

Gdy masz obie te wartości, konfiguracja wygląda następująco:

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

Zapisz plik, włącz serwer, a następnie naciśnij Authenticate, a potem Trust, and Open in Browser. Otworzy się okno przeglądarki na stronie OAuth GitHuba. Gdy dostęp zostanie przyznany poprzez Authorize <username> u dołu strony, token zostanie zapisany tak jak w przypadku każdego innego serwera opartego na OAuth.

Strona zgody GitHuba oferuje jedynie opcje zatwierdzenia lub odrzucenia, bez możliwości wyboru zakresu uprawnień. Precyzyjniejsza kontrola znajduje się natomiast w LM Studio. Otwórz panel Integrations i znajdź listę narzędzi należących do serwera mcp/github. Każde z nich jest wymienione osobno, w tym create_pull_request, delete_file, push_files i merge_pull_request, a także dziesiątki innych; każde z nich ma pole wyboru oraz przełącznik „Ask” lub „Allow”.

Ta lista wymaga chwili uwagi. Zaznacz wszystko, czego model nie powinien dotykać; delete_file i push_files to oczywiste pierwsze kandydaci, jeśli celem jest jedynie odczyt i streszczanie.

Na ostatnim zrzutku ekranu z tej grupy funkcja get_me została wywołana raz, a search_repositories dwa razy wobec żywego konta na GitHubie, z prawidłowym filtrowaniem według dat utworzenia i aktualizacji. Narzędzia tylko do odczytu oraz własne repozytoria modelu pozostają zaznaczone, natomiast narzędzia niszczące, takie jak delete_file i push_files, są niezaznaczone.

Konfiguracja 3: kontrola przeglądarki

Ta konfiguracja daje lokalnemu modelowi możliwość inspekcji żywej strony internetowej zamiast domyślania się na podstawie danych treningowych. Serwer Playwright MCP uruchamia rzeczywistą przeglądarkę i dostarcza ustrukturyzowany treść strony zamiast zrzutków ekranu, co umożliwia nawet małemu lokalnemu modelowi niezawodne nawigowanie i wydobywanie tekstu.

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

Dwie rzeczy, które należy wiedzieć przed wklejeniem tekstu. Serwer domyślnie otwiera widzialne okno przeglądarki, co nazywa się trybem z interfejsem, a flaga --headless w konfiguracji wyłącza tę funkcję. Na komputerze z ekranem usunięcie tej flagi umożliwia na bieżąco obserwowanie kliknięć modelu, co jest przydatne, gdy selektor nie działa poprawnie. Tutaj również wymagany jest Node 18 lub nowszy, podobnie jak w przypadku Konfiguracji 1, a przy pierwszym uruchomieniu może zostać zaproponowane pobranie binarnych plików przeglądarki za pomocą npx playwright install, jeśli są brakujące.

Prostym testem jest poproszenie modelu o otwarcie głównej strony Hacker News i streszczenie pięciu najważniejszych artykułów. W tym przypadku wykonywana jest funkcja browser_navigate, a następnie odczytywany jest drzewo dostępności strony w celu znalezienia tytułów i linków, bez wykorzystania modeli wzroku czy analizy zrzutów ekranu w tym procesie.

Autoryzacja przeglądarki, która celowo opiera się identyfikacji poprzez „fingerprinting”, przeznaczona do badań lub pracy w stylu OSINT, to zupełnie inna kategoria zadań. Serwery oparte na Camofox, takie jak Camofox-MCP, służą do tego celu. Ten konfiguracja stanowi ogólny standard.

Rozwiązywanie problemów

Oto najprawdopodobniejsze problemy, uszeregowane mniej więcej od najczęstszych do najrzadszych.

Model nigdy nie wywołuje narzędzi. Zwykłą przyczyną jest załadunek modelu bazowego lub uzupełniającego w miejscu, gdzie powinien znajdować się model dostosowany do poleceń lub rozmów. Przeczytaj kartę modelu – jeśli nie wspomina się o używaniu narzędzi lub wywoływaniu funkcji, zastąp go odpowiednim modelem. Qwen 3.5 9B to solidny wybór lokalny do wywoływania narzędzi.

Serwer nie pojawia się w bocznym pasku czatu po edycji pliku mcp.json. Najpierw odśwież listę serwerów z karty Program, a jeśli to nie pomoże, uruchom ponownie LM Studio w pełni. Pliki edytowane bezpośrednio na dysku, a nie w wbudowanym edytorze aplikacji, wydają się bardziej narażone na konieczność takiego restartu.

Zepsuty JSON wywołania narzędzia lub wymyślone argumenty. Zmniejsz temperaturę próbkowania, ponieważ wywoływanie narzędzi należy do nielicznych zadań, w których kreatywne ustawienia szkodzą. Upewnij się również, że długość kontekstu wynosi co najmniej 4096 tokenów. Schematy narzędzi szybko zużywają kontekst, szczególnie duże zestawy narzędzi GitHuba, a mały okno czasowe jest częstą ukrytą przyczyną skróconych wywołań.

Co ostatecznie uzyskujesz

W rezultacie mamy trzy serwery, brak wywołań API oraz lokalny model zdolny do czytania systemu plików, pracy z rzeczywistym repozytorium na GitHubie oraz uruchamiania przeglądarki w czasie rzeczywistym, przy czym każde wywołanie jest sprawdzane i zatwierdzane w oknach potwierdzeń LM Studio, a żaden z nich nie działa bez nadzoru.

Sam w sobie stanowi to przydatnego lokalnego agenta, który tworzy podstawę dla pełnie autonomicznego procesu pracy. Rozsądnym krokiem dalej jest połączenie tych trzech serwerów w jeden obieg agenta, zamiast sterować każdym z nich oddzielnymi poleceniami.

Dokumentacja referencyjna

Dokumentacja LM Studio dotycząca używania serwerów MCP oraz integracji MCP z OAuth określa struktury command, args, url i auth stosowane we wszystkich przypadkach. Repozytorium serwera MCP na GitHubie oraz dokumentacja konfiguracji tego serwera omawiają Config 2, oficjalny serwer plików modelcontextprotocol obejmuje Config 1, natomiast repozytorium microsoft/playwright-mcp dokumentuje zachowanie domyślnego użycia nagłówków oraz flagi dla Config 3.