EA
Ekosystem Aion
← Wróć do katalogu
aionflow-mcp (search_leads)active
Slugaionflow-mcp
Wzorzec deploynone
Ścieżka repo/var/www/aionflow-mcp
Timeline2026-07-09 → 2026-07-09

Zbudowany 2026-07-09. Stdio MCP, 1 narzędzie: search_leads (dbfirmy.aionflow.pl leads).

Serwer MCP: aionflow-mcpstdio1 narzędzi

/var/www/aionflow-mcp/aionflow-mcp.mjs

KategoriaWartość
namessearch_leads

Ostatnia synchronizacja: 2026-07-13T09:23:47.580Z

Głębsze spojrzenie

inspiracja

Świadomie wzorowany na innym serwerze MCP ekosystemu, zero zależnościinsight

Nagłówek: 'ten sam wzorzec co agent.aionflow.pl/mcp/aion-router-mcp.mjs' — potwierdzono istnienie tego pliku. Świadomy wybór zera zależności: tylko wbudowany fetch i moduły node:.

źródło: aionflow-mcp.mjs (linie 2-16)

cel

Jedno narzędzie search_leads odpytujące dbfirmy.aionflow.pl po firmach/leadachgoal

search_leads filtruje kolekcję 'leads' w Directus REST po query (_icontains), opcjonalnie city i pkd, limit 1-100. Opis narzędzia ostrzega o nierównym pokryciu geograficznym bazy.

źródło: aionflow-mcp.mjs (TOOLS, searchLeads)

zależności

Brak package.json — wyłącznie wbudowane moduły Node, sekrety z .env panel.aionflow.pldependency

Cały katalog to jeden plik .mjs bez package.json/node_modules. Jeśli DBFIRMY_URL/TOKEN nie są w env, kod czyta je bezpośrednio z panel.aionflow.pl/.env własnym parserem.

źródło: aionflow-mcp.mjs (readEnvVar), ls (brak package.json)

znaczenie

Zarejestrowany jako aktywne narzędzie MCP w Claude Code — cienka warstwa nad danymi CRMinsight

Wpis w ~/.claude.json (type stdio) potwierdza, że Claude Code może wywołać search_leads bezpośrednio w rozmowie, współdzieli sekret Directus z panel.aionflow.pl CRM.

źródło: grep 'aionflow-mcp' w ~/.claude.json

co działa

Pełen round-trip JSON-RPC przetestowany na żywotested-ok

initialize zwraca poprawne serverInfo; search_leads z query='sklep' zwróciło realne rekordy; dbfirmy.aionflow.pl/server/ping odpowiada 200 'pong'.

źródło: bezpośredni test JSON-RPC, curl ping

co nie działa

Wymagany parametr 'query' nie jest faktycznie wymuszanytested-broken

Wywołanie search_leads z samym {city:'Tarnów'} (bez query) NIE zwróciło błędu mimo że schemat deklaruje query jako required — filtr zbudował się na undefined i dopasował wszystkie rekordy. Brak timeoutu na fetch.

źródło: test JSON-RPC z pominiętym query, przegląd directusFilterParams

co do przetestowania

Zakres uprawnień tokena Directus i realne użycie poza testami tej sesji nieznaneuntested

Nie zweryfikowano czy DBFIRMY_TOKEN ma least-privilege. Plik wygląda na powstały dziś rano — testy tej sesji mogą być pierwszym realnym użyciem narzędzia.

źródło: porównanie backup ~/.claude.json vs aktualny, mtime pliku

rekomendacja

Wymuś walidację pola 'query' i dodaj timeout do fetchrecommendation

Dodać jawne sprawdzenie obecności query przed budową filtra oraz AbortController z limitem czasu. Napisać brakujący README.md, do którego odwołuje się komentarz w nagłówku pliku.

źródło: przegląd kodu (brak walidacji, brak AbortController, brak README)