
Awesome Core
io.github.twojloginPublished by GitHub account twojloginv2.0.1Updated Oct 24, 2026
Read-only MCP server over a local, offline catalog of tools from GitHub awesome lists.
The publisher's own server: core.blue
Overview
Read-only MCP server over a local, offline SQLite catalog of tools gathered from GitHub awesome lists, with search, ranking and facet tools.
- What you can do
- Search the local tool catalog by keyword with filters for language, platform and domain
- Surface underrated tools and hidden gems, and explain a tool's ranking with its score breakdown
- List every awesome list that mentions a tool, including marked copies
- Report catalog facets such as available languages, platforms and domains
- All results are plain text with stars, independent-list counts and scores, read from a prebuilt database
- When to use it
- Useful when an assistant should recommend developer tools from curated GitHub lists without internet access, and when you want rankings based on agreement across independent curators rather than a single popular list.
- Requirements
- Runs as a local stdio process, typically via uvx from the awesome-core PyPI package. Needs a prebuilt catalog database; the package itself contains no data. Set AWESOME_DATA_DIR to the directory holding the database built by the project's start command. Python 3.8+ for the source install. No API keys or accounts.
Installation
In SourceWeft
- Open Awesome Core in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
🔥 Awesome Core
[PyPI] [Python versions] [License: MIT] [MCP Registry]
Czym to jest, w jednym zdaniu
Ściąga wszystkie awesome listy z GitHuba do jednego katalogu na Twoim dysku i pozwala szybko znaleźć narzędzie — po nazwie, języku, systemie albo temacie — całkowicie bez internetu.
Na przykład chcesz „coś do OSINT-a działające pod Windows". Wpisujesz:
i dostajesz narzędzia z kilku różnych awesome list naraz, posortowane tak, że na górze są te, które niezależni kuratorzy wskazali w wielu listach (a nie tylko te z jednej głośnej listy).
Filtry łączy AND, więc kumulują się szybko.
--os windows --lang PowerShellzostawia z „osint" jedno narzędzie — i to nie to, czego szukałeś, tylko skrypt PowerShell, który akurat też nazywa się „Sherlock". Program wie, że filtr jest za wąski, i mówi wprost, który odpuścić:Zasada: dodawaj filtr tylko wtedy, gdy wyników jest więcej niż kilka.
Jeśli nie masz czasu — trzy komendy
./awesome start mówi w każdym kroku, co robi i ile to potrwa. Nic działa się
samo w tle — zawsze widzisz postęp.
Co musisz mieć zanim zaczniesz
Jedna rzecz: Python 3.8 lub nowszy. To wszystko.
Nie potrzebujesz jq, curl, GitHub CLI ani samodzielnego python -m venv:
- pobieranie list działa przez zwykły HTTPS (
core/api.py) — bezghjest wolniej, bo GitHub limituje wyszukiwanie do 10 zapytań na minutę, ale działa; - Flask do web UI instaluje się sam przy pierwszym
./awesome web; - program sam mówi, gdy brakuje czegoś (
./awesome doctor).
Jeśli masz gh i się zalogujesz (gh auth login), wszystko idzie 30× szybciej
i enrich w ogóle się odblokuje. Ale to przyspieszenie, nie warunek.
Instalacja na Linuksie:
Opcjonalnie, dla 30× szybszego pobierania i metadanych narzędzi:
Windows działa bez basha. W katalogu jest awesome.cmd, więc w PowerShellu
albo po podwójnym kliknięciu piszesz po prostu:
download.sh został, ale to już tylko nakładka wywołująca Pythona — w nim nie
ma już ani jq, ani curl, ani pętli w shellu.
W PowerShellu odpowiedniki reszty komend:
Flask do web UI instaluje się sam, przy pierwszym ./awesome web:
Jeśli z jakiegoś powodu to się nie uda (brak sieci, proxy), program wypisze instrukcję ręczną — ale nie musisz jej pamiętać na co dzień.
Nie musisz znać SQL, programować, nic konfigurować w środku i nie musisz
nic aktualizować automatycznie. Jak coś nie działa — ./awesome status powie
Ci, co dokładnie odpalić.
Pierwsze uruchomienie, krok po kroku
./awesome start
Program sprawdza, czy masz wszystko, potem:
Jeśli baza już jest zbudowana, start nie pobiera nic od nowa. Wypisuje
liczbę narzędzi i od razu włącza interfejs. Przebudowa wymaga świadomej decyzji:
Dzięki temu przypadkowe ./awesome start nie kasuje Ci 2 minuty pracy.
Uwaga, uczciwie: start nie odpytuje GitHuba o repozytoria samych
narzędzi. Ranking od razu działa (na zgodzie kuratorów), ale gwiazdka przy
narzędziu to na razie szacunek z listy, nie prawdziwa liczba. Jedna komenda
to naprawia:
Albo jednym poleceniem od zera:
Robisz to raz. Przerwać można w każdej chwili (Ctrl+C) — postęp jest zapisywany
i odpalanie komendy drugi raz jedzie dalej. Bez zalogowania do GitHuba enrich
odmawia z wyjaśnieniem zamiast udawać, że zrobił swoją robotę.
Jeśli masz mało czasu, krok 1 możesz pominąć i nadrobić później:
Codzienne użycie
Twoja własna lista
Jak coś znajdziesz i działa — włóż to od razu na swoją listę, a na końcu wklej gotowy Markdown:
W web UI jest to samo: przycisk ☆ Do mojej listy na stronie narzędzia,
lista i Markdown pod linkiem Moja lista w menu. W TUI klawisz k.
Osobno istnieje watch — lista repozytoriów list, które chcesz śledzić
(nowe narzędzia w ulubionej liście), a nie lista narzędzi:
Obie listy są lokalne i żadna nie odpytuje się sama w tle.
TUI — klawisze
Cztery interfejsy, ten sam katalog
Codzienna pielęgnacja (nic nie leci samo)
./awesome status po odświeżeniu podpowiada dokładną komendę, np.
./awesome enrich. To samo w przeglądarce: strona /refresh
z czterema przyciskami. Żadnych cronów, daemonów ani procesów w tle.
Ważne przy liczbach: status nie mówi „X narzędzi bez gwiazdek", tylko ile repozytoriów zostało do odpytania. Różnica jest ogromna, bo kilka narzędzi często wskazuje na to samo repo, a linki poza GitHubem (artykuły, filmy, dokumentacja) nie mają i nigdy nie będą miały gwiazdek — nie licz ich jako brakującej pracy.
Co jest w środku
Aktualne liczby zawsze sprawdzisz: ./awesome status.
Uczciwa uwaga: nie ma tu żadnego AI. Żadne modele językowe nie wybierają,
nie oceniają ani nie rankują narzędzi. To zwykły Python, który parsuje README
z list GitHuba i liczy rzeczy na surowo. Jeśli liczby w README różnią się od
bazy — ktoś zapomniał odświeżyć blok STAN. Zrób ./awesome status i popraw.
Podłącz agenta AI (MCP) — lokalnie, bez kluczy API
Katalog można dać do dyspozycji lokalnemu agentowi (Claude, Cursor, cokolwiek mówi „Model Context Protocol”) jako źródło narzędzi. Agent dostaje ranking oparty o zgodę niezależnych kuratorów, a nie o to, co jest najczęściej wypisane w jednym README.
Serwer daje 5 narzędzi: search_tools (szukanie z filtrami),
find_undiscovered_tools (niedoceniane i ukryte perełki), explain_tool
(uzasadnienie rankingu: z jakich list, ile punktów, co ważyło),
lists_with_tool (wszystkie listy + oznaczone kopie) i catalog_facets
(co jest w bazie: języki, platformy, domeny).
Wpisz to do konfiguracji klienta, np. claude_desktop_config.json:
Albo bez klonowania — prosto z PyPI (paczka awesome-core, obecna też
w oficjalnym rejestrze MCP jako io.github.twojlogin/awesome-core):
uvx pobierze i uruchomi serwer z PyPI. AWESOME_DATA_DIR musi wskazywać
katalog z bazą zbudowaną przez ./awesome start — sama paczka nie zawiera
danych (baza ma ~194 MB i rośnie z każdym pobraniem).
Co warto wiedzieć:
- Nic nie wychodzi do sieci. Zero kluczy API, zero kont, tylko odczyt lokalnej bazy SQLite. Serwer nie ma narzędzi z efektem ubocznym.
- Start jest natychmiastowy — baza jest już zbudowana, serwer tylko czyta.
- Wyniki to zwykły tekst z liczbami (gwiazdki, liczba niezależnych list, score), więc agent może je cytować i porównywać.
- Protokół jest czystym JSON-RPC 2.0 po stdin/stdout; logi idą na stderr, żeby nie psuły kanału.
Skąd to wszystko pochodzi — i czy mi szkodzi
Pytanie, które powinien zadać każdy: co jeśli ktoś wrzuci złośliwą listę?
Skąd listy: download.sh pyta publiczne API GitHuba o repozytoria
oznaczone topic:awesome-list (plus topic:awesome i topic:curated-list
w trybie --wide), posortowane po gwiazdkach. Nic więcej — żadnych
„polecanych" repozytoriów, żadnych losowych adresów.
Nic z obcego repozytorium nigdy nie jest wykonywane:
- README jest danymi. Parser wyciąga z niego linki regexem i tyle.
Nie ma miejsca, w którym treść README trafiłaby do
eval,exec,shell=Trueczy któregokolwiek wywołania systemowego. awesome installrobi dokładniegit clone --depth 1. Git nie uruchamia kodu z zdalnego repozytorium (żadnych hooków).- Przeglądarka escapuje HTML, a renderer Markdown w
core/md.pyteż —<script>w opisie wychodzi jako tekst, nie jako tag.
Jedyny realny wektor: opisy trafiające do kontekstu modelu. Serwer MCP zamienia opisy narzędzi w tekst, który czyta agent. Opis napisał ktoś nieznany, w repozytorium niesprawdzonym. Dlatego:
- Opisy przechodzą przez
core/untrusted.py, które wycina instrukcje wyglądające na polecenia, znaczniki ról (system:,assistant:), tagi HTML,curl … | shirm -rf— zostawiając przy tym znacznik[odfiltrowano: …], żeby dało się zauważyć. initializew MCP mówi agentowi wprost: to treść trzecia, nie rozkazy.- Sprawdź sam, kiedy chcesz:
Stan na dziś: 0 wykrytych ataków w 186 861 narzędziach (3 trafienia to
fałszywe alarmy — rimraf ma w opisie „like rm -rf", a safety-net to
narzędzie, które rm -rf blokuje). Ciekawa ironia: katalog zawiera trzy
narzędzia do obrony przed dokładnie tym problemem (nvidia/skillspector,
vaporif/parry-guard, safety-net).
Czego nie obiecuję: skaner łapie znane wzorce, nie jest dowodem niezawodności. Dlatego traktuj opisy jako dane, a nie polecenia.
Zasada: rdzeń bez AI
Właściciel projektu dopuścił MCP, ale nie chce sztucznej inteligencji wszędzie — szczególnie nie w narzędziu, które miało być lokalne. Zapisuję to, bo obietnica bez pilnowania wyparuje się przy pierwszym refaktorze:
Z tego wynika reszta decyzji:
- Cała zależność zewnętrzna to
flask(web UI). Rdzeń to czysty stdlib. - Zero modeli, embeddingów, sieci neuronowych czy LLM w rankingu. Sortowanie
to jawna arytmetyka (
core/scoring.py), którą da się wypisać i podważyć. - Ranking nie zależy od usługi firmy trzeciej. Nikt nie może Ci podsunąć wyników ani zobaczyć, czego szukałeś.
- MCP jest adapterem na brzegu, nie logiki w środku. Możesz go wywalić i nic nie przestanie działać.
- Test
test_no_ai_in_corepilnuje tego mechanicznie: rdzeń nie zaimportuje biblioteki AI ani sieciowej modułu bez zgody, a jedynym plikiem znającym protokół MCP jestcore/mcp.py.
Czy katalog można zatruć — i co z tym robimy
Katalog powstaje z cudzych repozytoriów. To znaczy, że ktoś może celowo wstawić fałszywą listę, która zbiera wejścia, a jej „narzędzia" prowadzą do podszywanych domen albo do szkodliwego kodu. Czy to się zdarzyło?
Stan na dziś (6 października 2026, 1 032 listy, 186 861 narzędzi): 7 list warte obejrzenia, 1 podejrzany link. Zero potwierdzonych ataków.
Co sygnał ma złapać:
Przykładowe trafienie z naszej bazy: laoma2053/awesome-zhuiju-free — 25 narzędzi,
0 gwiazdek, brak opisu, żaden link nie potwierdzony przez inną listę.
Czego nie robimy i dlaczego warto to wiedzieć:
- To nie jest skaner złośliwego oprogramowania. Nie rozpoznajemy droppera w repozytorium ani złośliwego kodu w kodzie narzędzia. Nie obiecujemy, że przepuścimy wszystko.
- Sygnały nie są wyrokiem. Flag oznacza „obejrzyć ręcznie", nie „złośliwe". Trzy z siedmiu trafień okazały się uczciwymi, choć dziwnymi listami.
- Ranking już się przed tym broni: narzędzie potrzebuje zgody co najmniej dwóch niezależnych list, a kopie list nie liczą się do tej zgody. Jedna nowa fałszywa lista nie wypchnie niczego na szczyt.
awesome installto tylkogit clone. Nie uruchamia skryptów, nie pyta o hasło do Twojego GitHuba, nie wykonuje kodu zdalnego repozytorium. Ale potem to Ty decydujesz, co z tym kodem zrobisz — i tego program nie kontroluje.- Opisy z obcych list trafiają do kontekstu modelu przez MCP, więc są
przepuszczane przez
core/untrusted.py(patrz sekcja o bezpieczeństwie).
Najprostsza zasada: narzędzie z jednej nowej listy, o którym nigdy nie słyszałeś, to znak sprawdzenia — nie polecenia instalacji.
Czego nie wiem — słowniczek
Program niczego nie rekomenduje. Nie ma w nim „polecam", „najlepszy wybór" ani LLM, który podpowiada narzędzia. Jest za to: policzone liczby (zgoda niezależnych kuratorów, gwiazdki, jakość listy, z jakich list narzędzie pochodzi) i filtry o jawnych kryteriach. Wybór zostaje po Twojej stronie — dlatego wszystko, co program mówi, da się sprawdzić liczbą. | backfill | dociąganie brakujących metadanych list | | enrich | sprawdzanie repozytoriów narzędzi (batch po 50 na zapytanie do API) | | build | przebudowa bazy z lokalnych plików README (~2 min) | | fasetka | klikalny filtr boczny, np. „język: Python” |
Licencja
MIT — LICENSE w katalogu. Kod jest mój, ale nazwy, linki i krótkie opisy
narzędzi pochodzą z cudzych awesome list i należą do ich autorów. W bazie
są tylko adresy i nazwy repozytoriów (fakty, nie czyjeś treści), a same
README nie są dołączane do repo — pobierasz je na swój dysk przez
./download.sh.
Znane ograniczenia (uczciwie)
Ranking czyta to, co napisał autor — nie kod. Nazwa, opis, gwiazdki, tematy, README: wszystko to można napisać dowolnie i wszystko wchodzi do score. Program nigdy nie zagląda do kodu repozytorium, więc nie odróżnia narzędzia od kolekcji skryptów o tej samej nazwie ani oryginału od kopii.
Mierzalny skutek: awesome selfcheck sprawdza 15 znanych narzędzi
(nazwa → właściwe repozytorium) i zwykle trafia 13/15 na pozycji #1.
Dwie porażki to zawsze ten sam mechanizm — repozytorium fanowskie, które
powtarza nazwę narzędzia w opisie, wyprzedza oryginał.
To jest granica tego podejścia, nie do poprawienia strojeniem wag: do jej przekroczenia trzeba by patrzeć na zawartość repozytorium (importy, pliki wejściowe, tagi wydań), a to osobny projekt. Świadomie tego nie udaję.
Mniej poważne, ale też powiedziane:
- 91% narzędzi występuje w jednej liście, więc dla nich „zgoda kuratorów" wynosi zero — teza działa na głowie katalogu, nie na ogonie
- 75 571 wpisów to linki poza GitHubem (artykuły, filmy, dokumentacja): nigdy nie dostaną gwiazdek i nie są narzędziami
- Wyszukiwarka GitHuba oddaje maks. 1000 wyników na jedno zapytanie.
Dlatego pobieranie używa kilku zapytań naraz (
--wide) i skaluje wyniki. - Prawdziwy język narzędzia znamy tylko dla repozytoriów sprawdzonych przez
./awesome enrich. Reszta zgadywana jest z adresu i opisu — stąd?tam, gdzie nie wiadomo. Ranking celowo nie ufa temu zgadywaniu. - Linki poza GitHubem sprawdzamy tylko na żądanie:
./awesome validate --non-github --limit 500. - Nie sprawdzamy, czy narzędzie jest bezpieczne. Sygnały przy repozytoriach (archiwalne, dawno nieaktualizowane) to wskazówki do sprawdzenia, nie etykieta. Przeczytaj kod i release'y, zanim cokolwiek zainstalujesz.
Dla tych, którzy chcą wejść głębiej
Struktura projektu
Jak liczymy ranking
score (0–100) to świadoma korekta nad „sortuj po gwiazdkach listy”:
Dodatkowo underrated (dobra jakość, mało gwiazdek) i hidden_gem (mało list,
wysoki score). ./awesome why <nazwa> pokazuje rozkład punktów.
Wymagania i licencja
- Python 3.8+ (SQLite z FTS5; bez FTS5 działa fallback na LIKE)
- Flask ≥ 3.0 — tylko dla web UI
gh,jq,curl— tylko do pobierania i enrichmentucursesz biblioteki standardowej — tylko dla TUI
MIT — używaj, zmieniaj, dziel się. Autor: Arkadiusz Słowik — @twojlogin
Source: README.md at commit 1256467
Tools
0Version history
2- v2.0.1LatestOct 19, 2026
- v2.0.0Oct 12, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Core integrations
core.blue
blue.coreOfficial publisher
Remote MCP endpoint for core.blue's private per-customer agent memory "houses": read its manual, try a sandbox, get pricing and recommendations, and request a…

Brevio Core
Published by GitHub account Brevio-Ventures
Local code-rule scanner for coding agents: scan diffs or files, explain rules, apply safe fixes, and turn a fix into a guard, with no model call.

brain-core
Published by GitHub account xy-claude
Local MCP server that gives a Claude Code agent persistent memory across sessions, stored as markdown files plus a SQLite and vector index on your disk.

Scovant Core
Published by GitHub account Scovant
Passive AI-agent readiness scan of a website: robots, llms.txt, JSON-LD, MCP discovery, security.

ProofCore
Published by GitHub account ProofCore-Protocol
Zero-Auth Cryptographic Notarization & Evidence Layer on TON Blockchain for AI Agents.