Archiwum Czerwonej Księgi

[rozwiązane] [Zmiana] [Pozostałe] serwer MCP dla deweloperskiego Eltena

Założony przez mikolajholysz 5 wpisów ostatni wpis 2 dni temu Zamknięty

#1

MCP jest ni mniej ni więcej standardem łączenia wszelkego rodzaju AI agentów z narzędziami zewnętrznymi, powiedzmy odpowiednik tego, czym SAPI jest dla syntezatorów i aplikacji syntezatorów potrzebujących.

Ewidentnie widać, że w społeczności niewidomych sporo mamy osób, które tak w gruncie rzeczy nie programują, ale mają na tyle o wszystkim pojęcia, że są w stanie napisać z AI coś całkiem, całkiem sensownego. Nawet dla tych z nas, co programować umieją, sporo przyspiesza pracę z AI, jeśli nie musimy mu wszystkiego podawać na tacy i dajemy mu możliwość samodzielnego sprawdzania oraz testowania tego co robi.

Stąd propozycja, żeby Elten wystawiał, w trybie deweloperskim, parę potencjalnie przydatnych agentom narzędzi jako serwer MCP, na z góry określonym porcie na localhost. Najważniejszy był by tutaj oczywiście repl, do tego dodał bym narzędzie do przeładowania / uruchomienia programu z pliku, dokumentacje dla klas / metod jeśli jest, dostęp bezpośredni do tabelek programu na serwerze w celu debuggingu, może nawet możliwość wydawania skrótów klawiszowych i obserwowania loga mowy, a nawet czytania (deweloperskich) forów. Oczywiście gdzieś w dokumentacje wsadzić linka do Eltenowego Githuba (gdy już będzie), co by sobie agent mógł sklonować i popatrzeć na oryginalną implementację tego, co nie jest udokumentowane. Akurat z czytaniem i ogarianiem się w zależnościach to one sobie całkiem całkiem radzą.

Alternatywą było by wystawienie czegoś podobnego jako małe narzędzie CLI, które poza AI, użyteczne było by też dla ludzi.

IMO, na chwile obecną, nie ma fajnej, cross-platformowej biblioteki do pisania wygodnych, ergonomicznych, dobrze dostępnych i w miarę natywnie desktopowych aplikacji dla nas. Webowi jest do tego najbliżej, ale zrobienie z Electronowej aplikacji czegoś, co w miarę wygląda jak desktop, o ile możliwe, do prostych nie należy. Elten ma w sumie wszystko, czego blind-friendly UI potrzebuje, a po przejściu na nowoczesny i szeroko wspierany język Programowania, jakim nowe wersje Ruby są, integracja z czymkolwiek zewnętrznym i "wyjście zza krat" też nie powinna sprawiać problemu. Kombinacja tłumu pomysłowych niewidomych, Claude Code / Codexa i fajnej, prostej, przyjaznej AI metody robienia prostych programików może, moim zdaniem, dać całkiem ciekawe rezultaty.
undefined method 'signature' for # (NoMethodError)

#2

Brzmi bardzo fajnie. Przyjrzę się temu.
#StandWithUkraine

Shoot for the Moon. Even if you miss, you'll land among the stars.

#3

I gotowe, przynajmniej w wersji bardzo testowej. Początkowo pisałem go jako część samego Eltena, ale dochodzę do wniosku, że lepsze będzie udostępnianie go jako program.
Jeszcze kilka błędów i smaczków do poprawy, ale będzie i będzie działał ładnie.

Serwer posiada szereg uprawnień, które można przyznawać, rozdzielając na czytanie i edycję. Może przeglądać w naszym imieniu fora, postować i moderować, zajmować się blogami, wiadomościami, ustawieniami itd.
Oczywiście może też otrzymać przyznany dostęp do narzędzi deweloperskich (naturalnie to daje możliwość robienia wszystkiego). Wtedy może pisać programy itd. itp.

Kilka testów na zamkniętych grupach typu: zamknij wszystkie wątki, które mają w nazwie słowo masło i nie były aktywne od 8 godzin, udało się w pełni.

Oczywiście, i tu jest problem, agentom nie można ufać bez zastrzeżeń i boję się, że prędzej czy później ktoś się spali, wydając głupie polecenie. I na to nie mam pomysłu. Ale ogólnie narzędzie wygląda obiecująco.
#StandWithUkraine

Shoot for the Moon. Even if you miss, you'll land among the stars.

#4

Pamiętaj, że możesz niektóre narzędzia schować za approval promptem, z tego co pamiętam, gdzieś tam nawet oficjalne wsparcie do tego jest. Przy okazji, rzeczy które podałeś powinny być, w celu przewidywalności i uniknięcia pomyłek właśnie, robione kodem, nie bezpośrednim wywołaniem narzędzi w kontekście, ale to już raczej problem prompt-engineeringu.
undefined method 'signature' for # (NoMethodError)

#5

No gotowe, jakby nie patrzeć xD
Happy hacking