Enables product search on AliExpress with filters for price range, ratings, reviews, categories, seller region, product condition, and sorting options.
Provides product search capabilities on Allegro marketplace with support for price filtering, ratings, availability, and various sorting criteria.
Allows searching for products on Amazon with advanced filters including price range, minimum ratings, review counts, categories, shipping options, and product condition.
Enables searching scientific publications on arXiv with filters for date ranges, author affiliations, publication types, fields of study, citation counts, and language.
Mentioned as a recommended tool for secrets management in the security best practices section.
Used as the HTTP client library for making API requests with interceptors, retry logic, and error handling.
Supports web searches through Brave Search engine with filters for file types, language, region, date ranges, domains, and safe search settings.
Used for server-side HTML parsing and web scraping with jQuery-like API for extracting text, links, metadata, and images from web pages.
Provides search capabilities for Docker images and containers on Docker Hub with filters for tags, stars, and last update dates.
Enables web searches through DuckDuckGo with support for file type filtering, language/region settings, date ranges, and domain restrictions.
Allows product search on eBay with filtering by price, ratings, reviews, categories, condition, and sorting by various criteria.
Used as the code linting tool with TypeScript rules for maintaining code quality.
Provides product search functionality on Etsy marketplace with price, rating, and availability filters.
Enables searching repositories on GitHub with filters for programming language, minimum stars, last update date, license type, topics, and contributor counts.
Provides repository search capabilities on GitLab with similar filtering options as GitHub including language, stars, and activity metrics.
Supports general web searches through Google Search API with filters for file types, language, region, date ranges, domains, and safe search.
Enables searching academic publications on Google Scholar with filters for dates, citations, and relevance sorting.
HashiCorp Vault is mentioned as a recommended secrets management solution for secure credential storage.
Provides access to IEEE Xplore database for searching technical publications, conference papers, and standards with academic filters.
Used as the testing framework with coverage report capabilities for the MCP server.
Enables searching for npm packages with filters for minimum downloads, last update date, and sorting by popularity or relevance.
Used for automatic code formatting to maintain consistent code style across the project.
Provides search capabilities for medical and biomedical publications on PubMed with filters for publication dates, types, and citation counts.
Allows searching for Python packages on PyPI with filters for downloads, last update, and license information.
Enables searching posts and comments on Reddit with filters for time range, language, author, minimum interactions, hashtags, and content type.
Provides access to ResearchGate for searching academic publications, research papers, and author profiles.
Supports conversion between TOML and other data formats (JSON, XML, YAML, CSV) with structure validation.
Used as the TypeScript execution environment for development and running the server.
Primary programming language used for building the MCP server with full type safety and modern ES2023 features.
Supports parsing and conversion between XML and other formats (JSON, YAML, CSV, TOML) using xml2js library.
Enables conversion between YAML and other data formats (JSON, XML, CSV, TOML) with parsing and generation capabilities.
Provides search capabilities for YouTube videos with filters for time range, author/channel, minimum interactions, and content type.
Used for schema validation and type-safe parameter validation for all MCP tool inputs with JSON Schema support.
🤖 MCP Server - Specialized AI Search Tools
Zaawansowany Model Context Protocol (MCP) Server z wyspecjalizowanymi narzędziami wyszukiwania dla agentów AI, zbudowany w Node.js i TypeScript.
🚀 Implementation Status
✅ Phase 1: Core Infrastructure (COMPLETED)
✅ MCP Server setup with STDIO transport
✅ BaseTool class with Zod validation
✅ Logging system
✅ TypeScript configuration
✅ Development environment (ESLint, Prettier)
✅ Phase 2: Basic Search Tools (COMPLETED)
✅ WebSearchTool - Search with DuckDuckGo, Brave, Google, Bing
✅ WebFetchTool - Fetch and parse HTML content
✅ TypeConversionTool - Convert between JSON, XML, YAML, CSV, TOML
⏳ Unit tests (pending)
⏸️ Phase 3: Specialized Search Tools (PLANNED)
⏸️ E-commerce search (Amazon, eBay, Allegro, AliExpress, Etsy)
⏸️ Scientific publications (arXiv, PubMed, Google Scholar, IEEE)
⏸️ Code repositories (GitHub, GitLab, npm, PyPI, Docker Hub)
⏸️ Social media (Twitter/X, Reddit, LinkedIn, YouTube, Hacker News)
⏸️ Phase 4: Advanced Features (PLANNED)
⏸️ Multi-layer caching (L1/L2/L3)
⏸️ Request optimization and deduplication
⏸️ Rate limiting and circuit breaker
⏸️ Data aggregation and ranking
📖 O Model Context Protocol (MCP)
Czym jest MCP?
Model Context Protocol (MCP) to otwarty standard wprowadzony przez Anthropic, który standaryzuje sposób, w jaki aplikacje AI komunikują się z zewnętrznymi narzędziami, usługami i źródłami danych. MCP eliminuje potrzebę tworzenia dedykowanych integracji dla każdego narzędzia, oferując uniwersalny protokół komunikacji.
Kluczowe Założenia Projektowe
Standardyzacja Integracji: MCP zapewnia jednolity sposób łączenia AI z różnymi systemami, eliminując fragmentację w ekosystemie AI
Modularność: Serwery MCP są niezależnymi modułami, które można łatwo dodawać, usuwać i konfigurować
Bezpieczeństwo: Protokół został zaprojektowany z myślą o bezpieczeństwie, z kontrolą dostępu i walidacją danych
Elastyczność: Obsługa różnych transportów (STDIO, HTTP+SSE) i formatów danych
Open Source: Otwarty standard dostępny dla wszystkich, promujący interoperacyjność
Architektura MCP
MCP składa się z trzech głównych komponentów:
1. Tools (Narzędzia)
Funkcje, które AI może wywołać do wykonania konkretnych akcji:
Definicja: Każde narzędzie ma nazwę, opis i schemat parametrów (JSON Schema)
Wykonanie: Narzędzie przyjmuje parametry i zwraca wynik
Przykłady: Wyszukiwanie w bazie danych, wysyłanie emaili, wykonywanie obliczeń
2. Resources (Zasoby)
Dane, do których AI może uzyskać dostęp:
Definicja: Zasób ma URI, nazwę, opis i typ MIME
Dostęp: AI może odczytać zawartość zasobu na żądanie
Przykłady: Pliki w systemie, wpisy w bazie danych, dokumenty w chmurze
3. Prompts (Prompty)
Szablony promptów, które AI może wykorzystać:
Definicja: Prompt ma nazwę, opis i opcjonalne argumenty
Użycie: AI może wywołać prompt z argumentami, aby wygenerować gotowy prompt
Przykłady: Szablony do code review, generowania dokumentacji, analizy danych
Jak Działa MCP?
Inicjalizacja: Klient AI łączy się z serwerem MCP przez wybrany transport (STDIO/HTTP+SSE)
Odkrywanie: Klient pobiera listę dostępnych narzędzi, zasobów i promptów
Użycie: AI wywołuje narzędzia lub odczytuje zasoby w odpowiedzi na zapytania użytkownika
Wyniki: Serwer MCP wykonuje operacje i zwraca wyniki do klienta AI
Transporty MCP
STDIO (Standard Input/Output): Dla lokalnych integracji, proces komunikuje się przez stdin/stdout
HTTP+SSE (Server-Sent Events): Dla zdalnych serwerów, komunikacja przez HTTP z SSE dla strumieniowania
WebSocket: (Planowane) Dla aplikacji webowych wymagających dwukierunkowej komunikacji
Zalety MCP
✅ Uniwersalność: Jeden protokół dla wszystkich integracji
✅ Bezpieczeństwo: Kontrola dostępu i walidacja na poziomie protokołu
✅ Skalowalność: Łatwe dodawanie nowych narzędzi bez modyfikacji klienta
✅ Interoperacyjność: Różne klienty AI mogą używać tych samych serwerów MCP
✅ Modularność: Każdy serwer MCP jest niezależnym modułem funkcjonalności
✨ Wyspecjalizowane Narzędzia Wyszukiwania
🛒 E-commerce Search
Wyszukiwanie produktów w popularnych sklepach internetowych:
Obsługiwane platformy: Amazon, eBay, Allegro, AliExpress, Etsy
Filtry:
💰 Zakres cenowy (min-max)
⭐ Oceny (minimalna ocena, liczba opinii)
🚚 Dostępność i opcje wysyłki
🏷️ Kategorie produktów
🌍 Region sprzedawcy
📦 Stan produktu (nowy, używany, odnowiony)
Sortowanie: cena, popularność, oceny, data dodania
Zwraca: tytuł, cena, ocena, link, zdjęcie, dostępność
🔬 Scientific Publications Search
Wyszukiwanie publikacji naukowych i artykułów badawczych:
Obsługiwane bazy: arXiv, PubMed, Google Scholar, IEEE Xplore, ResearchGate
Filtry:
📅 Zakres dat publikacji
🏫 Afiliacja autorów
📄 Typ publikacji (artykuł, konferencja, preprint)
🔬 Dziedzina nauki
📊 Liczba cytowań (minimum)
🌐 Język publikacji
Sortowanie: relevancja, data, cytowania
Zwraca: tytuł, autorzy, abstrakt, DOI, PDF link, cytowania
💻 Hosting & Repositories Search
Wyszukiwanie kodu, pakietów i zasobów deweloperskich:
Obsługiwane platformy: GitHub, GitLab, npm, PyPI, Docker Hub, Maven Central
Filtry:
💻 Język programowania
⭐ Minimalna liczba gwiazdek/pobrań
📅 Ostatnia aktualizacja (aktywność projektu)
📜 Licencja (MIT, Apache, GPL, itp.)
🏷️ Tagi i tematy
👥 Liczba kontrybutorów
Sortowanie: gwiazdki, forki, ostatnia aktualizacja, relevancja
Zwraca: nazwa, opis, autor, gwiazdki, język, licencja, link
📱 Social Media Search
Wyszukiwanie treści w mediach społecznościowych:
Obsługiwane platformy: Twitter/X, Reddit, LinkedIn, YouTube, Hacker News
Filtry:
📅 Zakres czasowy (ostatnia godzina, dzień, tydzień, miesiąc)
🌍 Język i lokalizacja
👤 Autor/kanał
💬 Minimalna liczba interakcji (lajki, komentarze, udostępnienia)
🏷️ Hashtagi i słowa kluczowe
📊 Typ treści (tekst, obraz, wideo, link)
Sortowanie: popularność, data, relevancja
Zwraca: treść, autor, data, interakcje, link, media
🌐 General Web Search
Uniwersalne wyszukiwanie w internecie:
Obsługiwane silniki: Google, Bing, DuckDuckGo, Brave Search
Filtry:
📄 Formaty plików (PDF, DOCX, XLSX, CSV, JSON, XML, PPT)
🌍 Język i region
📅 Zakres dat
🔒 SafeSearch
🌐 Domena (np. tylko .edu, .gov)
📍 Dokładna fraza vs. podobne wyniki
Sortowanie: relevancja, data
Zwraca: tytuł, URL, snippet, data publikacji, typ pliku
🔧 Dodatkowe Funkcjonalności
🌐 WebFetch Tool
Pobieranie i parsowanie treści stron internetowych:
Pobieranie HTML z dowolnego URL
Parsowanie z wykorzystaniem Cheerio
Ekstrakcja: tekst, nagłówki, linki, metadane, obrazy
Obsługa selektorów CSS
Timeout i error handling
User-agent customization
Alternatywa: Firecrawl Integration Rozważ użycie Firecrawl jako zaawansowanej alternatywy lub uzupełnienia dla WebFetch. Zobacz sekcję Firecrawl Integration poniżej.
🔄 Type Conversion Tools
Konwersja między różnymi formatami danych:
Obsługiwane formaty: JSON, XML, YAML, CSV, TOML
Konwersje: JSON ↔ XML ↔ YAML ↔ CSV ↔ TOML
Pretty printing i minification
Walidacja struktury danych
Obsługa zagnieżdżonych struktur
📊 Data Aggregation
Agregacja wyników z wielu źródeł:
Równoległe wyszukiwanie w wielu platformach
Deduplikacja wyników
Normalizacja formatów odpowiedzi
Ranking i sortowanie zagregowanych wyników
Statystyki i podsumowania
🛠️ Extensible Architecture
Łatwe dodawanie własnych narzędzi:
Bazowa klasa
BaseToolz wspólną logikąAutomatyczna walidacja z Zod
Centralna rejestracja narzędzi
Standardowy error handling
Plugin system dla nowych źródeł danych
⚡ Cache'owanie i Optymalizacja Zapytań
Strategie Cache'owania
1. Multi-Layer Caching
L1 Cache (In-Memory): Szybki dostęp do często używanych wyników (node-cache/lru-cache)
L2 Cache (Redis): Dzielony cache między instancjami serwera
L3 Cache (HTTP Cache Headers): Wykorzystanie cache'u przeglądarki/CDN
2. Cache Patterns
Cache-Aside (Lazy Loading): Aplikacja sprawdza cache, jeśli brak - pobiera z API i zapisuje
Write-Through: Zapis do cache i API jednocześnie
Stale-While-Revalidate: Zwracanie przestarzałych danych podczas aktualizacji w tle
Time-Based Invalidation: Automatyczne wygaszanie po określonym czasie (TTL)
Tag-Based Invalidation: Inwalidacja po tagach dla precyzyjnej kontroli
3. Request Optimization
Request Deduplication: Grupowanie identycznych równoległych żądań
Batching: Łączenie wielu zapytań w jedno żądanie (gdy API wspiera)
Pagination: Pobieranie danych w mniejszych porcjach
Field Filtering: Pobieranie tylko wymaganych pól z API
4. Rate Limiting & Circuit Breaker
Token Bucket: Kontrola przepustowości z tokenami
Sliding Window: Ograniczenie liczby żądań w oknie czasowym
Circuit Breaker: Automatyczne wyłączanie usługi przy błędach
Exponential Backoff: Stopniowe zwiększanie opóźnień przy ponawianiu
5. Monitoring & Metrics
Cache hit/miss ratio
API response times
Rate limit usage tracking
Error rates per API endpoint
Queue depth monitoring
📚 Dokumentacja Funkcjonalności i Przykłady
🎯 Scenariusze Użycia
Scenariusz 1: Research Assistant
Cel: Pomoc w badaniach naukowych poprzez agregację informacji z wielu źródeł
Przepływ:
Użytkownik: "Znajdź najnowsze publikacje o quantum computing"
AI wywołuje
scientific_publications_searchz parametrami:{ query: "quantum computing", database: "arxiv", dateFrom: "2024-01-01", sortBy: "date" }AI następnie wywołuje
repositories_search:{ query: "quantum computing implementation", platform: "github", language: "python", minStars: 100 }AI agreguje wyniki i generuje podsumowanie
Wartość: Automatyczna agregacja informacji z różnych źródeł w jednym miejscu
Scenariusz 2: Product Research & Comparison
Cel: Porównanie produktów z różnych platform e-commerce
Przepływ:
Użytkownik: "Porównaj ceny iPhone 15 Pro na różnych platformach"
AI równolegle wywołuje narzędzia dla każdej platformy:
ecommerce_search(platform: "amazon")ecommerce_search(platform: "ebay")ecommerce_search(platform: "allegro")
AI agreguje wyniki, normalizuje formaty i porównuje ceny
Zwraca tabelę porównawczą z najlepszymi ofertami
Wartość: Oszczędność czasu na ręcznym przeszukiwaniu wielu sklepów
Scenariusz 3: Developer Tool Discovery
Cel: Znalezienie odpowiednich bibliotek i narzędzi dla projektu
Przepływ:
Użytkownik: "Znajdź biblioteki do walidacji danych w TypeScript"
AI wywołuje
repositories_search:{ query: "data validation", platform: "github", language: "typescript", minStars: 500, sortBy: "stars" }AI następnie używa
webfetchdo pobrania dokumentacji najlepszych wynikówZwraca listę z opisami, ocenami i linkami do dokumentacji
Wartość: Szybkie znalezienie sprawdzonych narzędzi
📋 Szczegółowa Dokumentacja Narzędzi
🛒 E-commerce Search Tool
Funkcjonalność: Wyszukiwanie produktów w popularnych sklepach internetowych z zaawansowanymi filtrami
Parametry wejściowe:
Format odpowiedzi:
Przykład użycia:
🔬 Scientific Publications Search Tool
Funkcjonalność: Wyszukiwanie publikacji naukowych w bazach danych z filtrowaniem po datach, autorach i cytowaniach
Parametry wejściowe:
Format odpowiedzi:
💻 Repositories Search Tool
Funkcjonalność: Wyszukiwanie projektów, bibliotek i pakietów w repozytoriach kodu
Parametry wejściowe:
Format odpowiedzi:
📱 Social Media Search Tool
Funkcjonalność: Wyszukiwanie treści w mediach społecznościowych z filtrowaniem po czasie i popularności
Parametry wejściowe:
🌐 General Web Search Tool
Funkcjonalność: Uniwersalne wyszukiwanie w internecie z filtrowaniem po typach plików i domenach
Parametry wejściowe:
🔄 Type Conversion Tool
Funkcjonalność: Konwersja między różnymi formatami danych (JSON, XML, YAML, CSV, TOML)
Przykład użycia:
🌐 WebFetch Tool
Funkcjonalność: Pobieranie i parsowanie treści stron internetowych
Parametry:
Format odpowiedzi:
🔧 Development
Struktura projektu
Skrypty npm
Dodawanie nowego źródła wyszukiwania
Utwórz nowy plik w odpowiednim katalogu, np.
src/tools/ecommerce/shopify.ts:
Zarejestruj w
src/tools/index.ts:
Implementacja Cache'owania
Przykład: Multi-Layer Cache z keyv
Przykład: Request Deduplication
Przykład: Rate Limiting z bottleneck
Przykład: Circuit Breaker Pattern
Przykład: Integracja z BaseTool
🧪 Testing
🏗️ Architektura Projektu
Założenia Architektoniczne
Modularność: Każde narzędzie wyszukiwania jest niezależnym modułem, łatwym do dodania/usunięcia
Walidacja Schematów: Wszystkie parametry narzędzi są walidowane przez Zod przed wykonaniem
Error Handling: Centralny system obsługi błędów z informatywnymi komunikatami
Multi-Layer Caching: Inteligentne cachowanie wyników wyszukiwań w wielu warstwach (L1: in-memory, L2: Redis) dla poprawy wydajności
Request Optimization: Deduplikacja żądań, batching, i paginacja dla minimalizacji wywołań API
Rate Limiting & Resilience: Rate limiting per API, circuit breaker pattern, i exponential backoff retry
Extensibility: Bazowa klasa
BaseToolumożliwia łatwe dodawanie nowych narzędzi z automatycznym cache'owaniem
Struktura Komunikacji
Wzorce Projektowe
1. Strategy Pattern
Każde narzędzie wyszukiwania implementuje wspólny interfejs BaseTool, ale ma własną strategię wykonania:
2. Factory Pattern
Centralna rejestracja narzędzi w tools/index.ts:
3. Adapter Pattern
Normalizacja różnych formatów odpowiedzi API do jednolitego formatu MCP:
Przepływ Danych z Cache'owaniem i Optymalizacją
Żądanie od AI: Klient AI wysyła żądanie wywołania narzędzia z parametrami
Walidacja: Parametry są walidowane przez schemat Zod
Cache Check (L1): Sprawdzenie in-memory cache dla szybkiego dostępu
Request Deduplication: Sprawdzenie, czy identyczne żądanie jest już w trakcie przetwarzania
Rate Limiting Check: Weryfikacja limitów dla danego API endpoint
Cache Check (L2): Jeśli L1 miss, sprawdzenie Redis cache
Circuit Breaker Check: Weryfikacja stanu circuit breakera dla API
Wykonanie: Narzędzie wykonuje zapytanie do zewnętrznego API (z retry logic)
Przetwarzanie: Odpowiedź API jest parsowana i normalizowana
Caching: Wynik jest cachowany w L1 i L2 (z TTL i tagami)
Odpowiedź: Znormalizowany wynik jest zwracany do klienta AI
Metrics: Aktualizacja metryk (cache hit/miss, response time, error rate)
Obsługa Błędów
Walidacja Parametrów: Błędy walidacji są zwracane przed wykonaniem
API Errors: Błędy zewnętrznych API są przechwytywane i konwertowane na format MCP
Timeout Protection: Wszystkie żądania mają timeouty, aby uniknąć zawieszenia
Retry Logic: Automatyczne ponawianie z exponential backoff i jitter (axios-retry)
Circuit Breaker: Automatyczne wyłączanie usługi przy wysokim wskaźniku błędów
Fallback to Cache: W przypadku błędów API, zwracanie danych z cache (jeśli dostępne)
Graceful Degradation: Stopniowe obniżanie funkcjonalności zamiast całkowitego błędu
🛠️ Tech Stack
Core Technologies
Runtime: Node.js 20+ - Najnowsze funkcje ES2023, wydajność i stabilność
Language: TypeScript 5.7+ - Type safety, lepsze IDE support, refactoring
MCP SDK:
@modelcontextprotocol/sdk- Oficjalne SDK dla protokołu MCP
Validation & Schema
Zod: Walidacja schematów JSON Schema dla parametrów narzędzi
Type Safety: Pełne typowanie TypeScript dla wszystkich komponentów
HTTP & Networking
Axios: HTTP client z interceptors, retry logic i error handling
axios-retry: Automatyczne ponawianie żądań z konfigurowalnymi strategiami
axios-cache-interceptor: Cache interceptor dla Axios z obsługą HTTP cache headers
Cheerio: Server-side HTML parsing (jQuery-like API) dla web scraping
undici: Wysokowydajny HTTP client (alternatywa dla Axios, natywny w Node.js 18+)
Data Processing
xml2js: Parsowanie XML do obiektów JavaScript
js-yaml: Parsowanie i generowanie YAML
csv-parse: Parsowanie plików CSV
Performance & Caching
keyv: Uniwersalny key-value store z adapterami dla Redis, Memcached, MongoDB, PostgreSQL, SQLite
cache-manager: Elastyczny system cache'owania z wieloma backendami (Redis, Memcached, memory)
node-cache: In-memory caching dla wyników wyszukiwań (lightweight alternative)
ioredis: Zaawansowany Redis client z cluster support, pub/sub, pipeline
lru-cache: Wysokowydajna implementacja LRU cache z TypeScript support
p-limit: Kontrola współbieżności dla równoległych operacji API
bottleneck: Zaawansowany rate limiter z queue management
axios-retry: Automatyczne ponawianie żądań z exponential backoff
Development Tools
Jest: Framework testowy z coverage reports
ESLint: Linting kodu z regułami TypeScript
Prettier: Automatyczne formatowanie kodu
ts-node: TypeScript execution environment dla development
Security & Rate Limiting
dotenv: Zarządzanie zmiennymi środowiskowymi
helmet: (Planowane) Security headers dla HTTP transport
bottleneck: Rate limiting z queue management i priority support
p-limit: Kontrola współbieżności i rate limiting dla równoległych operacji
express-rate-limit: Rate limiting middleware (dla HTTP transport)
📖 Zasoby
MCP Protocol - Oficjalne Źródła
Model Context Protocol Documentation - Oficjalna dokumentacja MCP
MCP SDK GitHub - Oficjalne SDK dla różnych języków
MCP Specification - Pełna specyfikacja protokołu
Cursor AI MCP Integration - Integracja MCP z Cursor AI
Claude Desktop MCP Guide - Przewodnik integracji z Claude Desktop
OpenAI MCP Server Documentation - Dokumentacja OpenAI dotycząca MCP Server
Open-Source Repozytoria MCP Server
TypeScript/Node.js Implementacje
MCP SDK TypeScript - Oficjalne SDK TypeScript
Learn MCP by Building - Przewodnik krok po kroku z przykładami
OPNsense MCP Server - Przykład integracji z OPNsense API
Flutter/Dart Implementacje (dla integracji z AI Code Box)
flutter_mcp_server - Open-source implementacja MCP dla Flutter/Dart
mcp_dart - SDK MCP w Dart, umożliwiające tworzenie serwerów i klientów
mcp_flutter - MCP Server i Toolkit dla Flutter z dynamiczną rejestracją narzędzi
figma-flutter-mcp - MCP Server konwertujący projekty Figma na kod Flutter
Flutter MCP Server Documentation - Oficjalna dokumentacja Flutter dotycząca MCP
Integracja z Flutter/Dart (AI Code Box)
Dla projektu AI Code Box w Flutter, możesz zintegrować ten MCP Server na kilka sposobów:
Opcja 1: HTTP/SSE Transport
Uruchom Node.js MCP Server jako osobny proces i połącz się przez HTTP+SSE używając mcp_dart:
Opcja 2: Native Dart MCP Server
Użyj biblioteki mcp_dart do stworzenia natywnego serwera MCP w Dart, portując narzędzia z tego projektu.
Opcja 3: Bridge Pattern Stwórz bridge między Node.js MCP Server a Flutter aplikacją przez REST API.
Zalecane biblioteki:
mcp_dart - Pełne SDK MCP dla Dart
mcp_flutter - Flutter-specific MCP toolkit
dio - HTTP client dla komunikacji z Node.js serverem
Inne Implementacje
Java MCP Server - Implementacja w Javie
Python MCP Examples - Przykłady w Pythonie
Artykuły i Najlepsze Praktyki
Podstawowe Wprowadzenie do MCP
MCP Explained: The New Standard Connecting AI to Everything - Polecany! Kompleksowe wyjaśnienie MCP, jego architektury, komponentów (tools, resources, prompts) oraz jak MCP standaryzuje integrację AI z zewnętrznymi systemami. Artykuł zawiera praktyczne przykłady i case studies.
Model Context Protocol (MCP) in AI - Polecany! Szczegółowe omówienie MCP jako otwartego standardu łączącego AI z systemami danych. Artykuł opisuje założenia projektowe, architekturę i praktyczne zastosowania MCP w ekosystemie AI.
Zaawansowane Implementacje
Advanced MCP Implementation and Best Practices for Scaling AI Systems - Zaawansowane techniki implementacji i skalowania systemów AI z MCP
MCP Security: Best Practices & Implementation Guide - Wytyczne dotyczące zabezpieczania serwera MCP
MCP Security Best Practices - Najlepsze praktyki bezpieczeństwa
Przeglądy i Analizy
The Future of AI Applications: MCP Servers - Przegląd przyszłości aplikacji AI z MCP
What is Model Context Protocol (MCP)? - Wprowadzenie do MCP
Model Context Protocol - Wikipedia - Ogólne informacje o protokole
Badania i Benchmarki
MCP-Bench: Benchmarking LLM Agents with MCP - Narzędzie do benchmarkingu agentów LLM wykorzystujących MCP
MCP Safety Audit - Analiza bezpieczeństwa LLM korzystających z MCP
Cache'owanie i Optymalizacja API - Najnowsze Źródła (2024-2025)
Biblioteki i Narzędzia
keyv - Uniwersalny key-value store z adapterami dla Redis, Memcached, MongoDB, PostgreSQL, SQLite. Idealny do multi-layer caching.
cache-manager - Elastyczny system cache'owania z wieloma backendami i strategiami TTL.
ioredis - Zaawansowany Redis client z cluster support, pub/sub, pipeline i TypeScript support.
lru-cache - Wysokowydajna implementacja LRU cache z TypeScript, idealna dla in-memory caching.
axios-cache-interceptor - Cache interceptor dla Axios z obsługą HTTP cache headers (ETag, Last-Modified, Cache-Control).
axios-retry - Automatyczne ponawianie żądań z exponential backoff i konfigurowalnymi strategiami.
bottleneck - Zaawansowany rate limiter z queue management, priority support i distributed rate limiting.
p-limit - Kontrola współbieżności dla równoległych operacji API z Promise-based API.
Wzorce i Strategie Cache'owania
Stale-While-Revalidate Pattern - Strategia cache'owania zapewniająca szybkie odpowiedzi przy jednoczesnej aktualizacji danych w tle.
Cache-Aside Pattern - Wzorzec cache'owania, gdzie aplikacja zarządza cache'em niezależnie od źródła danych.
HTTP Caching Best Practices - Najlepsze praktyki wykorzystania HTTP cache headers (Cache-Control, ETag, Last-Modified).
Redis Caching Patterns - Oficjalne wzorce cache'owania w Redis z przykładami użycia.
Rate Limiting i Circuit Breaker
Rate Limiting Strategies - Przegląd strategii rate limiting (Token Bucket, Sliding Window, Fixed Window).
Circuit Breaker Pattern - Wzorzec projektowy dla odporności na błędy w systemach rozproszonych.
Exponential Backoff and Jitter - Strategie ponawiania żądań z losowym opóźnieniem.
Optymalizacja Zapytań API
Request Deduplication - Wzorzec eliminujący duplikaty równoległych żądań.
API Batching Best Practices - Najlepsze praktyki grupowania zapytań (GraphQL, REST).
Pagination Strategies - Strategie paginacji i filtrowania w API.
Monitoring i Performance
Node.js Performance Best Practices - Oficjalne wytyczne optymalizacji wydajności Node.js.
Redis Performance Optimization - Optymalizacja wydajności Redis dla cache'owania.
Application Performance Monitoring - Monitorowanie wydajności aplikacji i identyfikacja wąskich gardeł.
Artykuły i Przewodniki (2024-2025)
Node.js Caching Strategies: A Complete Guide - Kompleksowy przewodnik po strategiach cache'owania w Node.js.
Building Resilient APIs with Rate Limiting - Budowanie odpornych API z rate limiting w Node.js.
Optimizing External API Calls in Node.js - Optymalizacja wywołań zewnętrznych API w Node.js.
Redis vs Memcached: Which Caching Solution is Right for You? - Porównanie rozwiązań cache'owania.
Firecrawl Integration - Analiza i Rekomendacje
🔥 Czym jest Firecrawl?
Firecrawl to zaawansowany serwis API do konwersji całych stron internetowych na czysty markdown lub strukturalne dane gotowe dla LLM. Projekt ma 68.6k gwiazdek na GitHub i jest aktywnie rozwijany.
Kluczowe funkcjonalności:
🔍 Crawling całych stron - Automatyczne przechodzenie przez wszystkie dostępne podstrony
📄 Markdown conversion - Konwersja HTML do czystego markdown
🤖 LLM Extraction - Ekstrakcja strukturalnych danych z użyciem LLM (Zod/Pydantic schemas)
🎯 Actions support - Interakcje z dynamicznymi stronami (kliknięcia, wpisywanie tekstu, screenshoty)
📦 Batch scraping - Równoległe przetwarzanie wielu URL
🔄 MCP Support - Oficjalne wsparcie dla Model Context Protocol
⚖️ Self-Hosted vs Cloud - Analiza
Status Self-Hosted (2024-2025):
⚠️ Ważne: Według oficjalnego README: "This repository is in development, and we're still integrating custom modules into the mono repo. It's not fully ready for self-hosted deployment yet, but you can run it locally."
Self-Hosted - Zalety:
✅ Kontrola nad danymi - Wszystkie dane pozostają w Twojej infrastrukturze
✅ Brak limitów API - Nieograniczone użycie (zależne od zasobów)
✅ Customizacja - Możliwość modyfikacji kodu pod własne potrzeby
✅ Koszty - Brak opłat za użycie (tylko koszty infrastruktury)
✅ AGPL-3.0 License - Open source, możliwość modyfikacji
Self-Hosted - Wady:
❌ Nie gotowy do produkcji - Projekt wciąż w development
❌ Wymaga zasobów - Większe zapotrzebowanie na CPU/RAM niż prosty WebFetch
❌ Maintenance - Wymaga własnej konserwacji i aktualizacji
❌ Brak niektórych funkcji - Cloud wersja ma więcej funkcji (Actions, advanced extraction)
❌ Kompleksowość - Większa złożoność niż obecny WebFetch z Cheerio
Cloud Offering - Zalety:
✅ Gotowe do użycia - Natychmiastowa dostępność
✅ Więcej funkcji - Actions, advanced extraction, lepsze wsparcie dla dynamicznych stron
✅ Maintenance - Brak konieczności utrzymywania infrastruktury
✅ Skalowalność - Automatyczne skalowanie
✅ MCP Server - Gotowy MCP server dostępny
Cloud Offering - Wady:
❌ Koszty - Płatne API (z darmowym tierem)
❌ Limity - Ograniczenia w darmowym planie
❌ Zależność zewnętrzna - Zależność od zewnętrznego serwisu
❌ Dane poza infrastrukturą - URL są wysyłane do zewnętrznego API
🎯 Rekomendacja dla MCP Server
Dla obecnego projektu MCP Server:
Krótkoterminowo (Faza 1-2):
✅ Zostań przy WebFetch + Cheerio - Prostsze, lżejsze, wystarczające dla większości przypadków
✅ Dodaj Firecrawl jako opcjonalną integrację - Dla zaawansowanych przypadków użycia
Średnioterminowo (Faza 3-4):
🔄 Rozważ Firecrawl Cloud API - Jako uzupełnienie dla:
Crawling całych stron (nie tylko pojedyncze URL)
LLM extraction (strukturalne dane)
Dynamiczne strony wymagające interakcji
🔄 Monitoruj rozwój self-hosted - Gdy będzie gotowy do produkcji, rozważ migrację
Długoterminowo:
🎯 Hybrid approach - WebFetch dla prostych przypadków, Firecrawl dla zaawansowanych
🎯 Self-hosted Firecrawl - Gdy będzie stabilny, rozważ jako alternatywę
💡 Proponowana Implementacja
Opcja 1: Firecrawl jako opcjonalne narzędzie
Opcja 2: Integracja z istniejącym WebFetch
WebFetch używa prostego Cheerio (szybkie, lekkie)
Firecrawl jako fallback dla trudnych przypadków (dynamiczne strony, crawling)
📚 Zasoby Firecrawl
Firecrawl GitHub - Oficjalne repozytorium (68.6k ⭐)
Firecrawl Documentation - Kompleksowa dokumentacja API
Firecrawl Cloud - Hosted version z playground
Firecrawl MCP - Oficjalny MCP server dla Firecrawl
Node.js SDK -
@mendable/firecrawl-jsPython SDK -
firecrawl-py
⚠️ Uwagi Prawne
Ważne: Firecrawl domyślnie respektuje
robots.txt. Użytkownicy są odpowiedzialni za przestrzeganie polityk stron internetowych podczas scrapingu. Zawsze sprawdzaj Terms of Service i robots.txt przed crawlingiem.
API Documentation
🔒 Bezpieczeństwo
Najlepsze Praktyki
Implementacja serwera MCP wymaga szczególnej uwagi na bezpieczeństwo, ponieważ serwer może mieć dostęp do wrażliwych danych i zewnętrznych systemów.
1. Uwierzytelnianie i Autoryzacja
API Keys: Przechowuj klucze API w zmiennych środowiskowych, nigdy w kodzie
Szyfrowanie: Używaj szyfrowania dla wrażliwych danych (np.
flutter_secure_storagedla Flutter)Role-Based Access Control (RBAC): Implementuj kontrolę dostępu do narzędzi i zasobów
Rate Limiting: Ogranicz liczbę żądań na użytkownika/IP, aby zapobiec nadużyciom
2. Walidacja Danych
Input Validation: Waliduj wszystkie dane wejściowe używając Zod lub podobnych narzędzi
Sanitization: Oczyszczaj dane przed przetwarzaniem (szczególnie dla web scraping)
Schema Validation: Używaj silnych schematów walidacji dla wszystkich parametrów narzędzi
3. Bezpieczeństwo API
HTTPS Only: Wymuszaj połączenia HTTPS dla wszystkich zewnętrznych API calls
Timeout Protection: Ustaw rozsądne timeouty dla wszystkich żądań zewnętrznych
Error Handling: Nie ujawniaj wrażliwych informacji w komunikatach błędów
Request Signing: Podpisuj żądania do zewnętrznych API (np. Amazon Product Advertising API)
4. Ochrona przed Atakami
Prompt Injection: Waliduj i filtruj dane przed wysłaniem do LLM
SQL Injection: Używaj parametryzowanych zapytań (jeśli używasz bazy danych)
XSS Protection: Sanityzuj dane HTML przed wyświetleniem
CSRF Protection: Implementuj tokeny CSRF dla operacji modyfikujących dane
5. Monitoring i Logging
Audit Logs: Loguj wszystkie operacje na wrażliwych danych
Error Tracking: Monitoruj błędy i nieprawidłowe próby dostępu
Performance Monitoring: Śledź wydajność i wykrywaj anomalie
6. Konfiguracja Środowiska
Environment Variables: Używaj
.envdla konfiguracji, dodaj.envdo.gitignoreSecrets Management: Rozważ użycie narzędzi do zarządzania sekretami (np. AWS Secrets Manager, HashiCorp Vault)
Least Privilege: Nadawaj minimalne wymagane uprawnienia
Zasoby Bezpieczeństwa
MCP Security Best Practices - Kompleksowy przewodnik
MCP Safety Audit Research - Analiza luk bezpieczeństwa
OpenAI Platform Security - Wytyczne bezpieczeństwa OpenAI
Zawsze testuj swoje narzędzia w środowisku izolowanym przed wdrożeniem produkcyjnym. Nie ufaj danym wejściowym i zawsze waliduj parametry przed wykonaniem operacji.
🚧 Roadmap
Faza 1: Core Infrastructure ✅
Struktura projektu
Bazowa klasa narzędzi
System walidacji
Logging
Faza 2: Basic Search Tools (W trakcie)
General web search (Google, Bing)
WebFetch tool
Type conversion tools
MCP server setup
Faza 3: Specialized Search
E-commerce search (Amazon, eBay, Allegro)
Scientific publications (arXiv, PubMed)
Code repositories (GitHub, npm, PyPI)
Social media (Twitter, Reddit, YouTube)
Faza 4: Advanced Features (W trakcie)
Multi-layer caching system
L1: In-memory cache (lru-cache/node-cache)
L2: Redis cache dla współdzielonych danych
L3: HTTP cache headers (ETag, Cache-Control)
Cache invalidation strategies (TTL, tag-based, manual)
Request optimization
Request deduplication dla równoległych żądań
Batching zapytań (gdy API wspiera)
Intelligent pagination
Field filtering
Rate limiting & circuit breaker
Token bucket rate limiter (bottleneck)
Per-API rate limit tracking
Circuit breaker pattern
Queue management dla throttled requests
Data aggregation
Równoległe wyszukiwanie w wielu platformach
Deduplikacja wyników
Normalizacja formatów odpowiedzi
Ranking i sortowanie zagregowanych wyników
Advanced filtering
Composite filters
Full-text search optimization
Faceted search
Error recovery & resilience
Exponential backoff retry strategy
Fallback to cache on API errors
Graceful degradation
Health checks dla zewnętrznych API
Faza 5: Polish & Optimization
Comprehensive tests
Performance optimization
Documentation
Example integrations
📄 Licencja
MIT License - możesz swobodnie używać i modyfikować ten projekt.
🤝 Contributing
Contributions are welcome! Jeśli chcesz dodać nowe źródło wyszukiwania lub poprawić istniejące:
Fork projektu
Utwórz branch (
git checkout -b feature/new-search-source)Commit zmian (
git commit -m 'Add new search source')Push do brancha (
git push origin feature/new-search-source)Otwórz Pull Request
💡 Use Cases
Research Assistant
Product Comparison
Developer Tools Discovery
Trend Analysis
📦 Instalacja i Konfiguracja
Ta sekcja zawiera podstawowe informacje o instalacji. Szczegółowa dokumentacja funkcjonalności znajduje się w sekcjach powyżej.
Wymagania
Node.js 20.x lub wyższy
npm lub yarn
API Keys (opcjonalne, w zależności od używanych narzędzi)
Redis (opcjonalne, dla L2 cache - zalecane dla produkcji)
Szybki Start
Konfiguracja Cache'owania i Optymalizacji
Przykładowy plik .env
Przykładowe zależności w package.json
Integracja z Klientami AI
Cursor AI: Dodaj do ~/.cursor/config.json:
Claude Desktop: Edytuj plik konfiguracyjny (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json)
Flutter/Dart: Zobacz sekcję Integracja z Flutter/Dart w dokumentacji zasobów.
Większość narzędzi ma darmowe tier API. Serwer działa z dostępnymi narzędziami - narzędzia bez skonfigurowanych kluczy są automatycznie wyłączone.
Status projektu: 🚧 W trakcie implementacji - Faza 1 & 2
Projekt jest aktywnie rozwijany. Podstawowa infrastruktura gotowa, implementacja narzędzi wyszukiwania w toku!
✨ Najnowsze Aktualizacje (2024-2025)
Cache'owanie i Optymalizacja:
✅ Dokumentacja multi-layer caching (L1: in-memory, L2: Redis)
✅ Strategie cache'owania: Cache-Aside, Stale-While-Revalidate, Tag-Based Invalidation
✅ Request deduplication i batching
✅ Rate limiting z bottleneck i p-limit
✅ Circuit breaker pattern dla odporności na błędy
✅ Przykłady implementacji z keyv, ioredis, lru-cache
✅ Integracja z axios-retry i axios-cache-interceptor
✅ Kompleksowa dokumentacja zasobów i najlepszych praktyk
Zasoby:
📚 20+ nowych źródeł dotyczących cache'owania i optymalizacji API
🔧 Przykłady kodu dla wszystkich wzorców projektowych
📖 Konfiguracja środowiska i zależności
🎯 Roadmap z szczegółowym planem implementacji